天天看点

基于LNMP部署Zabbix5.0一、LNMP环境二、安装Zabbix Server三、配置Zabbix frontend四、安装Zabbix Agent

一、LNMP环境

本文使用的环境:

  • CentOS 7.9;
  • MySQL 5.7.33;
  • PHP 7.4.0(Zabbix5.0需要7.2.0以上版本的PHP);
  • Nginx 1.14.2;
  • Zabbix 5.0.10。

安装PHP可能需要的依赖包:

# yum -y install mysql-devel gcc gcc-c++ net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gettext gettext-devel m4 autoconf libevent libevent-devel gd gd-devel sqlite sqlite-devel oniguruma oniguruma-devel
           

可供参考的PHP编译选项:

# ./configure --prefix=/usr/local/php-fastcgi --with-mysqli --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-libxml-dir --with-curl --enable-bcmath --enable-shmop --enable-sysvsem  --enable-inline-optimization --enable-mbregex --with-openssl --enable-mbstring --with-gd --enable-gd-native-ttf --enable-sockets --with-xmlrpc --enable-zip --enable-soap --disable-debug --enable-opcache --enable-zip --with-config-file-path=/usr/local/php-fastcgi/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-freetype-dir=/usr/lib64 && make -j4  && make install
           

安装Nginx可能需要的依赖包:

# yum -y install openssl openssl-devel pcre pcre-devel zlib zlib-devel
           

可供参考的Nginx编译选项:

# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-cc-opt=-O3 --with-stream && make && make install
           
PHP和Nginx都使用相同的普通用户,如“www”运行,可以避免一些权限问题,例如Nginx访问PHP的socket文件等。

二、安装Zabbix Server

2.1、导入数据库

首先在MySQL中创建供Zabbix Server使用的库和用户:

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user [email protected]'192.168.0.%' identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@'192.168.0.%';
           

将表结构和数据导入到“zabbix”库中,相关的SQL文件在解压后的源码文件的“database/mysql/”目录中,需要注意三个SQL文件的导入顺序:

# mysql -h 192.168.0.163 -u zabbix -p'zabbix' -P 1234 zabbix < /usr/local/src/zabbix-5.0.10/database/mysql/schema.sql 
# mysql -h 192.168.0.163 -u zabbix -p'zabbix' -P 1234 zabbix < /usr/local/src/zabbix-5.0.10/database/mysql/images.sql 
# mysql -h 192.168.0.163 -u zabbix -p'zabbix' -P 1234 zabbix < /usr/local/src/zabbix-5.0.10/database/mysql/data.sql 
           
导入SQL文件时,必须先将表结构“schema.sql”文件导入。最后导入“data.sql”文件。

2.2、安装Zabbix Server

源码包下载地址:https://www.zabbix.com/download_sources#tab:50LTS。

编译安装Zabbix Server:

# ./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-server --enable-proxy && make && make install
           

编辑Zabbix Server配置文件:

# egrep -v '(^#|^$)' /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/usr/local/zabbix/logs/zabbix_server.pid
SocketDir=/usr/local/zabbix/logs/
DBHost=192.168.0.163
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=1234
StartPollers=5
StartPingers=5
Timeout=4
AlertScriptsPath=/usr/local/zabbix/scripts
LogSlowQueries=3000
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf
StatsAllowedIP=127.0.0.1

           

创建运行用户:

# useradd -M -s /sbin/nologin zabbix
           

创建需要的目录:

# mkdir /usr/local/zabbix/logs
# mkdir /usr/local/zabbix/scripts
# chown zabbix:zabbix /usr/local/zabbix/logs
# chown zabbix:zabbix /usr/local/zabbix/scripts
           

启动Zabbix Server:

# /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
           

三、配置Zabbix frontend

3.1、配置PHP

编辑php-fpm.conf文件:

# cat /usr/local/php-fastcgi/etc/php-fpm.conf
include=/usr/local/php-fastcgi/etc/php-fpm.d/*.conf
# egrep -v '(^;|^$)' /usr/local/php-fastcgi/etc/php-fpm.d/www.conf
[www]
user = www
group = www
listen = /usr/local/php-fastcgi/var/run/php-fpm.sock
listen.owner = www
listen.group = www
listen.mode = 0660
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

           

编辑php.ini文件,修改Zabbix依赖的参数的值:

# cat /usr/local/php-fastcgi/etc/php.ini
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 32M
date.timezone = Asia/Shanghai
mbstring.func_overload=0
           

3.2、Zabbix需要的PHP扩展

3.2.1、gd扩展

一个是gd扩展,需要支持JPEG和FreeType。

首先确保已经安装了“gd”库和“jpeg”、“freetype”库:

# yum -y install gd gd-devel libjpeg libjpeg-devel freetype freetype-devel
           

然后在PHP源码文件中的“ext/”目录下,找到“gd”目录:

# cd /usr/local/src/php-7.4.0/ext/gd/
# /usr/local/php-fastcgi/bin/phpize
# ./configure --with-php-config=/usr/local/php-fastcgi/bin/php-config --with-jpeg --with-freetype && make && make install
           

安装完成,会在“/usr/local/php-fastcgi/lib/php/extensions/no-debug-non-zts-20190902/”目录下生成“gd.so”文件:

# ls /usr/local/php-fastcgi/lib/php/extensions/no-debug-non-zts-20190902/
gd.so  opcache.a  opcache.so
           

最后在“php.ini”文件中启用该扩展,并重启PHP-FPM:

# tail -1 /usr/local/php-fastcgi/etc/php.ini 
extension=/usr/local/php-fastcgi/lib/php/extensions/no-debug-non-zts-20190902/gd.so
           

3.2.2、gettext扩展

同样,在PHP源码文件中的“ext/”目录下,找到“gettext”目录:

# cd /usr/local/src/php-7.4.0/ext/gettext/
# /usr/local/php-fastcgi/bin/phpize
# ./configure --with-php-config=/usr/local/php-fastcgi/bin/php-config && make && make install
           

查看生成的“gettext.so”文件:

# ls /usr/local/php-fastcgi/lib/php/extensions/no-debug-non-zts-20190902/
gd.so  gettext.so  opcache.a  opcache.so
           

在“php.ini”文件中启用该扩展,并重启PHP-FPM:

# tail -1 /usr/local/php-fastcgi/etc/php.ini 
extension=/usr/local/php-fastcgi/lib/php/extensions/no-debug-non-zts-20190902/gettext.so
           

3.3、配置Nginx

Zabbix Frontend相关文件,都在Zabbix的源码文件“ui”目录下:

将其复制一份:

# mkdir /home/wwwroot
# cp -ar /usr/local/src/zabbix-5.0.10/ui/ /home/wwwroot/zabbix
# chown -R www:www /home/wwwroot/ 
           

在Nginx中添加虚拟主机:

# cat /usr/local/nginx/conf/nginx.conf
……
    include vhosts/*.conf;
……
# cat /usr/local/nginx/conf/vhosts/zabbix.conf 
server {
    listen 80;
    server_name  192.168.0.163;
    access_log  /usr/local/nginx/logs/zabbix_access.log main;
    error_log  /usr/local/nginx/logs/zabbix_error.log;
    client_max_body_size 8m;
    root /home/wwwroot/zabbix;
    index index.html index.htm index.php;   
    location ~ \.php$ {
        root              /home/wwwroot/zabbix;
        fastcgi_pass      unix:/usr/local/php-fastcgi/var/run/php-fpm.sock;
        fastcgi_index     index.php;
        include           fastcgi.conf;
    }  
    location ~ /\.
    {
        deny all;
    }   
    location ~ .*\.(bak|jpa|rar|sql|tar|gz|zip|conf|tgz|bz2|log)$ {
        return 405;
    }  
    location ~ /\..* {
        return 405;
    }
}

           

最后,需要重载Nginx配置文件。

3.4、安装frontend

通过浏览器访问Zabbix前端页面,如:http://192.168.0.161/setup.php。

基于LNMP部署Zabbix5.0一、LNMP环境二、安装Zabbix Server三、配置Zabbix frontend四、安装Zabbix Agent
基于LNMP部署Zabbix5.0一、LNMP环境二、安装Zabbix Server三、配置Zabbix frontend四、安装Zabbix Agent
基于LNMP部署Zabbix5.0一、LNMP环境二、安装Zabbix Server三、配置Zabbix frontend四、安装Zabbix Agent
基于LNMP部署Zabbix5.0一、LNMP环境二、安装Zabbix Server三、配置Zabbix frontend四、安装Zabbix Agent
基于LNMP部署Zabbix5.0一、LNMP环境二、安装Zabbix Server三、配置Zabbix frontend四、安装Zabbix Agent
基于LNMP部署Zabbix5.0一、LNMP环境二、安装Zabbix Server三、配置Zabbix frontend四、安装Zabbix Agent

注意:

  • 确保运行Nginx的普通用户,如“www”,对“Zabbix frontend”页面文件所在目录有写入权限,否则将需要手动添加“/home/wwwroot/zabbix/conf/zabbix.conf.php”文件;
  • Zabbix前端登录页面,用于登录的用户名为“Admin”,登录密码为“zabbix”;
  • 如果Zabbix前端页面显示“Zabbix server is not running”,尝试将“/home/wwwroot/zabbix/conf/zabbix.conf.php”文件中“$ZBX_SERVER”的值修改为“localhost”。

四、安装Zabbix Agent

安装Zabbix Agent需要的依赖包:

# yum -y install gcc gcc-c++ make pcre pcre-devel
           

仍然使用之前的“zabbix-5.0.10.tar.gz”,进行编译安装:

# ./configure --prefix=/usr/local/zabbix-agent --enable-agent && make clean && make && make install
           

Zabbix Agent配置文件:

# egrep -v '(^$|^#)' /usr/local/zabbix-agent/etc/zabbix_agentd.conf 
PidFile=/usr/local/zabbix-agent/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix-agent/logs/zabbix_agentd.log
Server=192.168.0.161
ServerActive=192.168.0.161
Hostname=server01
Include=/usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1

           

创建运行用户和logs目录:

# useradd -M -s /sbin/nologin zabbix
# mkdir /usr/local/zabbix-agent/logs
# chown zabbix:zabbix /usr/local/zabbix-agent/logs
           

启动Zabbix Agent:

# /usr/local/zabbix-agent/sbin/zabbix_agentd -c /usr/local/zabbix-agent/etc/zabbix_agentd.conf