前言
zabbix安装时,官网是以apache作为web服务器的,大概是因为zabbix是php写成的,而php和apache搞基也不是一天两天的了。但是如果要使用nginx做反向代理的话,使用apache就不如直接使用nginx做web服务器来得快了。所以本文就简单介绍下如何使用LNMP来搭建zabbix服务器。
废话不多说,我们start。
正文
同我上一篇LAMP的文章类似,我们需要准备基本的组件--nginx、mysql、php-fpm。下面我一个一个说。
LNMP环境准备
-
nginx
配好epel源,然后yum安装就可以。yum install -y epel-release yum install -y nginx
然后编辑/etc/nginx/conf.d/zabbix.conf,输入:
server { listen 8088; server_name _; root /usr/share/zabbix; location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param PHP_VALUE " max_execution_time = 300 memory_limit = 128M post_max_size = 16M upload_max_filesize = 2M max_input_time = 300 date.timezone = Asia/Shanghai always_populate_raw_post_data = -1 "; fastcgi_buffers 8 256k; fastcgi_buffer_size 128k; fastcgi_intercept_errors on; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } }
2. mysql
同样可以通过epel源来安装。
yum install yum-utils -y
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
sudo yum install mysql-community-server -y
setenforce 0
systemctl start mysqld
然后我在这里遇到了若干坑,有点乱,所以以后再填吧。先默认它起来了。
3. php-fpm
这个东西是个动态语言的解析器,是fastcgi标准的实现。类似于java的servlet和python的uWSGI。只有跑了这个东西,才可以去解析php的动态文件。
我们先安装php-fpm。
yum install -y php71 php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-bcmath
如果有报错,就使用--skip-broken参数跳过。
yum install -y php71 php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-bcmath --skip-broken
修改php-fpm配置文件/etc/php-fpm.d/www.conf
#指定php-fpm用户为nginx
user = nginx
group = nginx
#指明服务端口为本机9000端口
listen = 127.0.0.1:9000
#添加下列选项
listen = /var/run/php-fpm/php-fpm.sock
listen.mode = 0660
listen.owner = nginx
listen.group = nginx
至此,准备工作完成。
安装zabbix
-
配置zabbix源并安装相关组件。
rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm yum install -y zabbix-server-mysql zabbix-proxy-mysql zabbix-web-mysql zabbix-server
2. 对zabbix-server的配置文件进行适当修改。
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=123456
3. 进入到mysql,建立zabbix库、zabbix用户,并赋予其响应权限。
mysql -uroot -p
create database zabbix character set utf8 collate utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '123456';
ALTER USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL privileges ON zabbix.* TO 'zabbix'@'localhost';
flush privileges;
然后退出。
4. 导入zabbix数据库。
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
输入密码,等待完成。
-
运行zabbix-server
systemctl start zabbix-server systemctl enable zabbix-server
6. 启动php-fpm和nginx
systemctl enable --now nginx
systemctl enable --now php-fpm
7. 查看运行的socket文件,如果不存在,就要找到其路径,然后在/var/run/php-fpm/php-fpm.sock(配置文件中写的路径)做软链接到你所查询到的socket文件路径。
[root@ali-nginx zabbix]# ll /var/run/php-fpm/php-fpm.sock
srw-rw---- 1 nginx nginx 0 Mar 27 14:45 /var/run/php-fpm/php-fpm.sock
8. 修改zabbix文件的权限,将其属主修改为zabbix。
chown -R nginx:nginx /var/lib/php/session
chown -R nginx:nginx /etc/zabbix/web
9. 然后就可以通过ip:port形式来访问了。安装完毕之后,默认账号Admin, 密码zabbix。
注意:LNMP和LAMP最大的区别,就在于Nginx代替Apache做web服务器。所以,php、nginx、zabbix相关文件都应该设置nginx作为属主。
引用文章:https://blog.ansheng.me/article/install-and-configure-zabbix-on-centos.html