Zabbix的部署非常简单,官方提供了Linux软件管理器如YUM、APT源;带操作系统的镜像ISO;虚拟机镜像;容器;源码和对应平台的安装包。
这里通过源码安装Zabbix Server,通过RPM包安装Zabbix Agent。Zabbix Server和Zabbix Agent的版本均为3.4.15。
Zabbix Server需要数据库来存储其收集到的信息,支持MySQL、Oracle、SQLite等数据库,这里选择MySQL。注意,Zabbix要求MySQL的版本在5.0.3-5.7.x,使用InnoDB引擎。注意:Zabbix 4.0之前的版本不支持MySQL 8.0。
Zabbix Web需要Web服务和PHP支持。Web服务器可以使用Nginx和Apache,Apache要求在1.3.12或以上版本;PHP要求在5.4.0或以上版本,同时对PHP的扩展包也有要求,例如GD要求2.0或以上版本,libXML要求2.6.15或以上版本等。
安装Zabbix 3.4的具体环境要求可参考以下链接:https://www.zabbix.com/documentation/3.4/manual/installation/requirements。
实验环境:
- 主机A:操作系统CentOS 7.6.1810,IP地址192.168.0.86,安装Zabbix Server和Zabbix Web
- 主机B:操作系统CentOS 7.6.1810,IP地址192.168.0.88,安装Zabbix Agent
- 主机C:操作系统CentOS 7.6.1810,IP地址192.168.0.110,安装Zabbix Agent
软件版本:
- PHP: 7.1.26
- Nginx: 1.14.2
- MySQL: 5.7.25
- Zabbix Agent:3.4.15
- Zabbix Server:3.4.15
1、源码安装Nginx
Nginx安装路径/usr/local/nginx。
创建虚拟用户www用于运行Nginx:
[root@localhost ~]# useradd -s /sbin/nologin www
安装依赖环境:
[root@localhost ~]# yum install zlib pcre pcre-devel openssl openssl-devel
解压源码包,进入源码目录,执行configure:
[root@localhost nginx-1.14.2]# ./configure --prefix=/usr/local/nginx --user=www --group=www --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre
configure执行完毕无报错,执行:
[root@localhost nginx-1.14.2]# make && make install
至此,Nginx安装完成。
Nginx的配置和启动可以参考:https://www.cnblogs.com/yu2006070-01/p/10207152.html。
2、二进制包安装MySQL
由于通过源码编译安装MySQL耗时过长,所以这里使用二进制包的方式安装MySQL。MySQL安装路径为/usr/local/mysql,数据存储路径为/db/mysql,日志文件路径/usr/local/mysql/logs,PID文件路径/var/run/mysqld/mysqld.pid。
创建虚拟用户mysql用于运行MySQL:
[root@localhost apps]# useradd -s /sbin/nologin mysql
解压二进制包并拷贝到MySQL安装路径:
[root@localhost apps]# tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz [root@localhost apps]# cp -r mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/mysql
创建MySQL数据存储目录并授权:
[root@localhost apps]# mkdir -p /db/mysql [root@localhost apps]# chown -R mysql:mysql /db/mysql
创建MySQL日志目录、日志文件并授权:
[root@localhost apps]# mkdir /usr/local/mysql/logs [root@localhost apps]# touch /usr/local/mysql/logs/mysqld.log [root@localhost apps]# chown -R mysql:mysql /usr/local/mysql/logs
创建PID文件目录并授权:
[root@localhost apps]# mkdir /var/run/mysqld [root@localhost apps]# chown -R mysql:mysql /var/run/mysqld
初始化MySQL:
[root@localhost apps]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/db/mysql
创建MySQL配置文件/etc/my.cnf,内容如下:
[mysqld] datadir=/db/mysql socket=/tmp/mysql.sock pid-file=/var/run/mysqld/mysqld.pid symbolic-links=0 [mysqld_safe] log-error=/usr/local/mysql/logs/mysqld.log [client] socket=/tmp/mysql.sock
- 注意:Zabbix Server默认使用的MySQL socket文件名为mysql.sock,这里一定要设置成mysql.sock
拷贝MySQL服务管理脚本到/etc/init.d目录下:
[root@localhost apps]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
启动MySQL:
[root@localhost apps]# /etc/init.d/mysqld start Starting MySQL. SUCCESS!
3、源码安装PHP
PHP安装路径/usr/local/php。
安装依赖环境:
[root@localhost apps]# yum install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype freetype-devel gd libmcrypt libpng libpng-devel openjpeg openjpeg-devel libjpeg libjpeg-devel libxml2 libxml2-devel zlib curl curl-devel
Zabbix需要PHP以下扩展:
解压PHP源码包并进入源码目录,执行configure(注意启用Zabbix需要的扩展):
[root@localhost php-7.1.26]# ./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-gd --with-png-dir --with-jpeg-dir --with-freetype-dir --enable-bcmath --enable-ctype --enable-xml --enable-xmlreader --enable-xmlwriter --enable-session --enable-sockets --enable-mbstring --with-gettext --with-zlib --with-curl --with-openssl --enable-ftp --enable-pdo --enable-tokenizer --enable-zip
configure执行完毕无报错后执行:
[root@localhost php-7.1.26]# make && make install
命令执行完毕无报错后,将PHP配置文件拷贝到安装目录下:
[root@localhost php-7.1.26]# cp php.ini-production /usr/local/php/lib/php.ini
在php.ini中找到以下内容并修改成指定的值(Zabbix要求):
post_max_size = 16M max_execution_time = 300 memory_limit = 128M max_input_time = 300 date.timezone = Asia/Shanghai
4、配置Nginx支持PHP
Nginx通过PHP-FPM与PHP进行整合。
拷贝PHP-FPM服务管理Unit到systemd目录下:
[root@localhost php-7.1.26]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system
开启PHP-FPM的两个配置文件:
[root@localhost php-7.1.26]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf [root@localhost php-7.1.26]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
启动PHP-FPM:
[root@localhost php-7.1.26]# systemctl start php-fpm
配置Nginx的location,使其支持PHP(PHP文件存储目录为/db/zabbix):
location ~ .php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /db/zabbix$fastcgi_script_name; include fastcgi_params; }
至此,Zabbix需要的LNMP环境配置完成。