Zabbix系列—①源码编译安装 5.2.6版本(Server服务端),


一、环境说明

本文中使用本地VM虚机部署测试。

OS:CentOS 7.8 (3.10.0-1160.15.2.el7.x86_64)

IP:192.168.168.103

虚机配置:2核CPU、4G内存

注:①系统为最小化安装,部署前已完成系统初始化、内核及安全优化;

②Iptables防火墙已启用,相应服务(如Nginx)端口已添加至Iptables防火墙相关规则中。

软件说明:

5.2版本的安装需要PHP 7.2.x以上版本,且不支持PHP 8.0版本,官方说明:

https://www.zabbix.com/documentation/current/manual/installation/requirements#required_software

目录说明:

本文中省略NGINX/PHP/MySQL/JDK安装过程,关于NGINX/PHP/MySQL安装过程可参照本人之前发布的文章。

CentOS7下编译安装Nginx-v1.20.0:

https://www.toutiao.com/i6961593096903705092/

MySQL系列-二进制包安装(v5.7.34):

https://www.toutiao.com/i6955761888323961381/

CentOS7编译安装php-7.4.16:

https://www.toutiao.com/i6947278581865366052/

特别说明:源码编译安装PHP7.4.20时,configure配置时不要添加"--enable-gd-jis-conv",经本人测试,此参数影响后续将zabbix服务WEB界面设置为中文时会出现乱码。就算按照本文中最后步骤中的设置也无法正常显示中文。

二、配置MySQL

## 创建Zabbix数据库

  1. CREATE DATABASE db_zabbix default charset utf8 collate utf8_bin;  

## 创建Zabbix用户及授权

  1. CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '123456'; 
  2. GRANT ALL PRIVILEGES ON db_zabbix.* to 'zabbix'@'127.0.0.1' IDENTIFIED BY '123456';  
  3. FLUSH PRIVILEGES; 

三、安装Zabbix

1.安装依赖

  1. rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
  2. yum -y install gcc gcc-c++ unixODBC-devel \ 
  3. mysql-devel libcurl libcurl-devel \ 
  4. libevent libevent-devel fping curl-devel \ 
  5. libxml2 libxml2-devel net-snmp-devel net-snmp 

2.创建Zabbix用户组及用户

  1. groupadd zabbix 
  2. useradd -g zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix 

3.下载源码

  1. cd /data/tools 
  2. wget https://cdn.zabbix.com/zabbix/sources/stable/5.2/zabbix-5.2.6.tar.gz 

4.解压编译安装

  1. tar xf zabbix-5.2.6.tar.gz 
  2. cd zabbix-5.2.6 
  3. ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent \ 
  4. --with-mysql --with-net-snmp --with-libcurl --with-libxml2 \ 
  5. --with-unixodbc --enable-java --enable-ipv6 
  6. make && make install 
  7. ## 更改Zabbix安装目录和文件属主属组 
  8. chown -R zabbix.zabbix /usr/local/zabbix/ 

## 参数说明:

  1. --prefix=/usr/local/zabbix:指定zabbix安装路径 
  2. --enable-server:启动server端 
  3. --enable-agent:启动agent端 
  4. --with-mysql:编译连接mysql相关依赖包 
  5. --with-net-snmp:启动snmp相关,用于snmp监控设备 
  6. --with-libcurl:启动curl相关 
  7. --with-libxml2:启动xml相关 
  8. --with-unixodbc:启动odbc相关用于监控数据库 
  9. --enable-java:启动java-agent 用于监控java类,需要安装JAVA环境 
  10. --enable-ipv6:启用IPv6 

5.修改配置文件

## 创建日志目录

  1. mkdir -p /data/logs/zabbix 

## 修改目录权限

  1. chown -R zabbix.zabbix /data/logs/zabbix 

## 修改server配置文件,配置数据库连接等

  1. cd /usr/local/zabbix/etc/ 
  2. cp zabbix_server.conf zabbix_server.conf.bak 
  3. vi zabbix_server.conf  
  4. //找到如下对应的属性项进行修改 
  5. LogFile=/data/logs/zabbix/zabbix_server.log 
  6. PidFile=/data/logs/zabbix/zabbix_server.pid 
  7. DBHost=127.0.0.1 
  8. DBName=db_zabbix 
  9. DBUser=zabbix 
  10. DBPassword=123456 
  11. DBSocket=/usr/local/mysql/mysql.sock 
  12. DBPort=3306 
  13. AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts 

## 修改agent配置文件

  1. cp zabbix_agentd.conf zabbix_agentd.conf.bak 
  2. vi zabbix_agentd.conf 
  3. //找到如下对应的属性项进行修改 
  4. PidFile=/data/logs/zabbix/zabbix_agentd.pid 
  5. LogFile=/data/logs/zabbix/zabbix_agentd.log 
  6. Server=127.0.0.1 
  7. ServerActive=127.0.0.1 
  8. Hostname=Zabbix Server 
  9. Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 

6.配置Zabbix服务管理脚本

## 复制管理脚本

  1. cd /data/tools/zabbix-5.2.6/ 
  2. cp misc/init.d/tru64/{zabbix_agentd,zabbix_server} /etc/init.d/ 

## 添加脚本执行权限

  1. chmod o+x /etc/init.d/zabbix_* 

## 修改启动脚本中PID文件路径

  1. sed -i "s#PIDFILE=/tmp/zabbix_server.pid#PIDFILE=/data/logs/zabbix/zabbix_server.pid#g" /etc/init.d/zabbix_server 
  2. sed -i "s#PIDFILE=/tmp/zabbix_agentd.pid#PIDFILE=/data/logs/zabbix/zabbix_agentd.pid#g" /etc/init.d/zabbix_agentd 

## 建立软链接

  1. ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/ 
  2. ln -s /usr/local/zabbix/bin/zabbix_* /usr/local/bin/ 

注:若不创建软链接,则需修改脚本中的DAEMON路径,指向zabbix安装目录路径。

7.导入数据

## 登录数据库

mysql -uroot -p

  1. ## 登录数据库 
  2. mysql -uroot -p 
  3. ## 切换至zabbix库 
  4. use db_zabbix; 
  5. ## 导入数据(表结构、图片相关数据、模版相关数据) 
  6. source /data/tools/zabbix-5.2.6/database/mysql/schema.sql; 
  7. source /data/tools/zabbix-5.2.6/database/mysql/images.sql; 
  8. source /data/tools/zabbix-5.2.6/database/mysql/data.sql; 

8.启动zabbix-server及zabbix-agent

  1. /etc/init.d/zabbix_server start 
  2. /etc/init.d/zabbix_agentd start 

四、配置WEB站点

1.拷贝前端文件

  1. mkdir -p /data/www/zabbix 
  2. cd /data/tools/zabbix-5.2.6/ 
  3. cp -a ui/* /data/www/zabbix/ 
  4. chown -R nginx.nginx /data/www/zabbix 

2.配置PHP

①修改php-fpm.conf配置文件

  1. vi /usr/local/php/etc/php-fpm.conf 
  2. //下列参数仅供参考 
  3. [global] 
  4. pid = /usr/local/php/var/run/php-fpm.pid 
  5. error_log = /usr/local/php/var/log/php-fpm.log 
  6. log_level = notice 
  7.  
  8. [www] 
  9. listen = 127.0.0.1::9000 
  10. listen.backlog = -1 
  11. listen.allowed_clients = 127.0.0.1 
  12. listen.owner = nginx 
  13. listen.group = nginx 
  14. listen.mode = 0666 
  15. user = nginx 
  16. group = nginx 
  17. pm = dynamic 
  18. pm.max_children = 10 
  19. pm.start_servers = 5 
  20. pm.min_spare_servers = 5 
  21. pm.max_spare_servers = 10 
  22. request_terminate_timeout = 300 
  23. request_slowlog_timeout = 15 
  24. slowlog = var/log/slow.log 

注:用户组及用户nginx为NGINX服务和PHP服务运行用户,安装服务前创建。

②修改php.ini配置文件

  1. sed -i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php.ini 
  2. sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php.ini 
  3. sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/g' /etc/php.ini 
  4. sed -i 's/short_open_tag = Off/short_open_tag = On/g' /etc/php.ini 
  5. sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini 
  6. sed -i 's/max_input_time = 60/max_input_time = 300/g' /etc/php.ini 
  7. sed -i 's/disable_functions =.*/disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server/g' /etc/php.ini 

③启动php-fpm

  1. systemctl start php-fpm.service 

3.添加zabbix虚拟主机配置文件

  1. vi /usr/local/nginx/conf/vhost/zabbix.conf 
  2. //添加如下内容,仅供参考 
  3. server{ 
  4.     listen 80; 
  5.     server_name 192.168.168.103; 
  6.     root /data/www/zabbix; 
  7.     index index.php index.html index.htm; 
  8.  
  9.     access_log  /data/logs/nginx/zabbix.log  json; 
  10.  
  11.     location ~ \.php(.*)$ { 
  12.         fastcgi_pass   127.0.0.1:9000; 
  13.         fastcgi_index  index.php; 
  14.         fastcgi_param  SCRIPT_FILENAME  /data/www/zabbix/$fastcgi_script_name; 
  15.         include        fastcgi_params; 
  16.     } 
  17.  
  18.     location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { 
  19.         expires 15d; 
  20.     } 
  21.  
  22.     location ~ .*\.(js|css)?$ { 
  23.         expires 1d; 
  24.     } 

## 启动Nginx

  1. systemctl start nginx.service 

五、部署WEB站点

1.进入欢迎界面

在浏览器中打开:http://IP/setup.php 本文中IP为192.168.168.103,

选择默认语言,可以选择"Chines(zh_CN)",此处保持默认,安装完成后再调整为中文界面。点击"Next step"开始安装。

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

2.检查先决条件

确保满足所有软件先决条件。如下图所示,下拉滚动条,检查所有软件是否都是"OK"。若没有出现error,即可点击"Next step"(出现 “Warning”可忽略也可先修复)

具体请参照官方说明:

https://www.zabbix.com/documentation/current/manual/installation/frontend

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

3.配置数据库连接

  • Database type:选择数据库类型,本文中使用的是MySQL,因此保持默认即可。
  • Database host:选择数据库的主机,可以指定主机名或者是IP地址,根据实际情况填写即可。本文中web服务器和数据库部署在同一个节点,且授权用户也是仅允许本地127.0.0.1访问,因此该项值改为127.0.0.1。
  • Database port:指定数据库的连接端口,默认值为0,表示使用默认值,以MySQL为例,默认值自然是3306。
  • Database name:指定数据库的名称,默认值为zabbix,根据实际情况填写。本文中数据库名为db_zabbix。
  • User:指定连接数据库的用户名,默认值为zabbix,根据实际情况填写。本文中用户名为zabbix。
  • Password:指定连接数据库的密码,强烈建议不要使用官方默认的密码,而是自定义一个安全度比较高的,生产环境中建议用类似于密码生成器之类的工具定期更换用户名密码。
Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

4.Zabbix服务器详细信息

  • Host:指定zabbix server的主机名或者IP地址,默认值为localhost,由于web服务器和zabbix server部署在一起,因此localhost这个默认值也可以不修改。
  • Port:指定zabbix server的端口,默认值为10051,这个是zabbix server进程的默认端口,使用默认值即可。
  • Name:这个Name其实就是给zabbix server起一个名字,当然也可以不填,默认值应该和Host同名。本文中自定义了一个名称,名为"Test Monitor"。
Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

5.GUI用户界面设置

  • Default time zone:默认时区,根据实际情况选择,本文中保持默认。
  • Default theme:默认主题样式,根据实际情况选择,本文中保持默认。
Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

6.安装前摘要

检查配置参数。如果一切正常,则“Next step”,否则“Back”更改配置参数。

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

7.完成安装

如下图所示,前端安装成功。安装成功的同时,会创建一个"

/data/www/zabbix/conf/zabbix.conf.php"配置文件,该文件记录了刚刚安装zabbix前端时定义的配置信息。感兴趣可以登录zabbix web服务器进行查看。

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

8.登录zabbix前端页面

如下图所示。默认用户名:Admin,密码:zabbix

9.Zabbix前端首页

登录后的默认首页界面,可按右上角的“Edit Dashboard”编辑首页,调整仪表板显示位置及删除不需要显示的仪表板。

六、简单配置

1.修改WEB管理员的默认密码

## WEB页面左侧边栏,点击"Use settings"

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

## 点击"Change password"修改密码

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

## 输入2次新密码,并点击"Update"按钮更新密码

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

## 用户信息更新成功,如下图所示。

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

2.修改界面语言为中文

## WEB页面左侧边栏,点击"Use settings"→“User”→“Language”,从下拉列表中选择“Chinese(zh_CN)”

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

## 点击"Update"按钮更新设置

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

## 更新成功后,页面即为中文

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

## 但查看监控数据页面发现出现乱码(方框),如下图所示

## 问题的原因是zabbix默认的字体文件不支持中文,所以中文字符的显示成了乱码。查看zabbix的web目录下include/defines.inc.php文件中对于字体的定义:

Zabbix系列—①源码编译安装 5.2.6版本(Server服务端)

## 可以看到zabbix使用了自己定义的字体文件,而没有使用linux的系统字体。路径位于web目录下的assets/fonts目录。

## 解决方法:我们可以从windows的字体目录下或者从互联网获取黑体的字体文件simhei.ttf,windows下的字体文件位于:C:\Windows\Fonts 。将字体文件通过sftp上传到服务器上zabbix的web目录下assets/fonts目录内。然后把黑体的字体文件符号链接为zabbix的默认字体:DejaVuSans.ttf

  1. cd /data/www/zabbix/assets/fonts 
  2. mv DejaVuSans.ttf DejaVuSans.ttf.bak  
  3. ln -sf simhei.ttf DejaVuSans.ttf 

## 刷新页面之后,中文字体显示正常

相关内容