系统版本:CentOS 7
MySQL版本:mysql-8.0.20-linux-glibc2.12-x86_64.tar
zabbix版本:zabbix-6.4.14.tar.gz
PHP版本:php-7.4.33
nginx版本:nginx-1.20.2.tar.gz
本实验中数据库使用的版本比zabbix6.4要求的MySQL8.0.30要低,具体支持版本大家可以查看zabbix手册
一、zabbix下载
1、打开zabbix官网,选择下载;
2、这里选择源码安装 Zabbix Sources;
3、zabbix下载完后上传至centos 7 主机;
二、zabbix安装
1、部署 MySQL数据库并初始化
1.1)数据库安装
MySQL数据库详细的安装步骤请查看数据库图文安装教程之MySQL
1.2) 数据库初始化
安装zabbix server之前,需要先准备数据库,这里以Mysql数据库为例进行安装
mysql> create database zabbix character set utf8 collate utf8_bin; #创建zabbix数据库,并设置字符编码为utf8
mysql> create user zabbix@localhost identified by 'zabbix'; #创建zabbix用户和登录密码
FLUSH PRIVILEGES; #刷新权限,使更改生效
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%'; #授权zabbix用户远程登录zabbix数据库权限
1.3) 导入数据
cd /usr/local/src/mysql-8.0.20/bin/
./mysql -uzabbix -pzabbix zabbix < /usr/local/src/zabbix-6.4.14/database/mysql/schema.sql
# 如果是安装zabbix-proxy,不需要导入下面的数据
./mysql -uzabbix -pzabbix zabbix < /usr/local/src/zabbix-6.4.14/database/mysql/images.sql
./mysql -uzabbix -pzabbix zabbix < /usr/local/src/zabbix-6.4.14/database/mysql/data.sql
2、部署 Nginx + PHP 环境并测试
2.1)安装php
2.1.1 使用yum安装php
#安装依赖
yum install epel-release
#启用PHP 7.4 Remi存储库并在CentOS 7上安装PHP 7.4
#配置安装源
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
#设置安装版本
yum-config-manager --enable remi-php74
#安装php及拓展包
yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis
#查看php版本
php -v
#启动php-fpm服务
[root@zabbix ~]# systemctl start php-fpm.service
[root@zabbix ~]# systemctl status php-fpm.service
2.1.2 修改php-fpm的配置文件
[root@zabbix ~]# cd /etc/php-fpm.d/
[root@zabbix php-fpm.d]# ls
www.conf
[root@zabbix php-fpm.d]# vi www.conf
在www.conf文件下注释掉listen = /run/php-fpm/www.sock这段内容,添加listen = 127.0.0.1:9000
2.1.3 修改php的配置文件
修改php.ini
vi /etc/php.ini
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone =Asia/Shanghai
2.2)安装Nginx
Nginx详细的安装步骤请查看Linux安装web服务器图文教程之Nginx
2.2.1 nginx配置
修改nginx的配置文件
vi /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
2.22 添加php测试文件
#定位到nginx/html文件下
[root@zabbix nginx]# cd /usr/local/nginx/html/
#创建web.php页面文件
[root@zabbix html]# vi index.php
<?php
phpinfo();
?>
2.3)重启php-fpm服务和nginx
#重启php-fpm服务
[root@zabbix html]# systemctl restart php-fpm.service
[root@zabbix html]# systemctl status php-fpm.service
#重启nginx
[root@zabbix html]# systemctl restart nginx.service
[root@zabbix html]# systemctl status nginx.service
2.4)测试
在本地浏览器访问192.168.56.101,出现如下页面表示PHP网页解析成功。
3、zabbix环境安装及编译
3.1)创建zabbix用户组
groupadd zabbix
useradd -g zabbix zabbix
3.2)zabbix编译
#进入zabbix解压目录
cd /usr/local/src/zabbix-6.4.14
#安装zabbix依赖包
yum -y install libevent-devel libxml2-devel curl-devel net-snmp-devel mysql-devel libssh2-devel gcc
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
make install
3.3)修改配置zabbix server 文件数据库密码
#修改配置zabbix server 文件数据库密码
[root@zabbix zabbix-6.0.1]# vi /usr/local/zabbix/etc/zabbix_server.conf
DBPassword=zabbix
3.4)启动zabbix服务
[root@zabbix ~]# cd /usr/local/zabbix/sbin/ //进入zabbix编译安装目录的sbin
[root@zabbix sbin]# ls
zabbix_agentd zabbix_server
[root@zabbix sbin]# ./zabbix_server //启动zabbix_server服务
[root@zabbix sbin]# ./zabbix_agentd //启动zabbix_agentd服务
1、启动zabbix服务时报错,服务需要 libmysqlclient.so.18文件,通过命令查看MySQL8.X安装的是“libmysqlclient.so.21”
2、解决方法,安装 mysql-community-libs-compat-5.7.20-1.el7.x86_64.rpm 这个安装包,这个包还依赖 mysql-community-common-5.7.20-1.el7.x86_64.rpm 和 mysql-community-libs-5.7.20-1.el7.x86_64.rpm 在MySQL官网yum仓库下载5.7版本的这3个包,按照依赖关系进行安装。
3、服务启动失败错误日志报错
报错一:密码认证插件问题
[Z3001] connection to database 'zabbix' failed: [2059] Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
解决方法
mysql> ALTER USER 'zabbix'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'Ab123456';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
报错二:数据库版本问题
Use of supported database version is highly recommended.
Override by setting AllowUnsupportedDBVersions=1 in Zabbix server configuration file at your own risk.
解决办法
找到Zabbix服务器配置文件,通常名为zabbix_server.conf。
在配置文件中添加或修改这样一行:AllowUnsupportedDBVersions=1。
#查看端口
netstat -tulnp | grep <port>
3.5)将zabbix前端文件移动到web服务目录下,并授权
[root@zabbix ~]# cp -r /usr/local/src/zabbix-6.4.14/ui/* /usr/local/nginx/html/zabbix
[root@zabbix ~]# chown nginx:nginx /usr/local/nginx/html/zabbix -R
3.6)将zabbix服务添加到systemd
如果每次进入zabbix安装目录启动zabbix服务麻烦,可以将zabbix服务添加到systemd中,具体操作步骤请查看编写systemd单元文件管理zabbix服务
4、zabbix前端配置
在本地浏览器访问192.168.56.101/zabbix
Default language 这里可以设置中文显示;
这里如果无法连接数据库且不报错,检查SELinux是否关闭。
1、临时关闭:输入命令setenforce 0,重启系统后还会开启。
2、永久关闭:输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。
登录zabbix系统(默认用户名:Admin;密码:zabbix)
如图所示就是最终效果: