一、环境配置
1、主机信息
| 主机应用 | ip地址 | 部署环境 | 版本 |
|---|---|---|---|
| zabbix | 192.168.8.94 | centos7.9 | zabbix-6.0LTS |
2、安装软件及要求
php要求最低版本为7.2数据库版本MySQL/Percona 8.0.xMariaDB 10.5.0 -10.6.xPostgreSQL 13.xOracle 19c – 21cNginx
3、基础环境配置
1.IP地址配置为:192.168.8.94
2.关闭防火墙**systemctl disable firewalld && systemctl stop firewalld**
3.关闭selinuxsetenforce 0 && sed -i 's/enforcing/disabled/' /etc/selinux/config
4.创建nginx用户groupadd -f nginx && useradd -g nginx nginx
4.安装LNMP
yum方式
https://www.yuque.com/docs/share/aad2d697-0349-42d8-81d4-95d851168046?#
源码编译安装
源码编译安装LNMP
二、编译安装zabbix
1、创建初始数据库,并导入zabbix数据
#创建初始数据库mysql -uroot -pmysql> show databases; #查看默认数据库mysql> create database zabbix character set utf8 collate utf8_bin;mysql> create user zabbix@localhost identified by 'password'; (密码可以自行修改)mysql> grant all privileges on zabbix.* to zabbix@localhost;# mysql> create database zabbix character set utf8 collate utf8_bin;# mysql> create user 'zabbix'@'%' identified by 'zab@2022';# mysql> grant all privileges on zabbix.* to 'zabbix'@'%';mysql> flush privileges; 刷新权限mysql> quit;#导入数据库方式一mysql -uzabbix -pmysql> source schema.sql;mysql> source images.sql;mysql> source data.sql;mysql> quit方式二cd zabbix-6.0.0mysql -uzabbix -p zabbix < database/mysql/schema.sqlmysql -uzabbix -p zabbix < database/mysql/images.sqlmysql -uzabbix -p zabbix < database/mysql/data.sql方式三zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
2、安装相关依赖(可能存在重复安装、不用在意)
yum -y install libxml2 libxml2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel openldap openldap-devel sqlite-devel oniguruma-develgccopensslopenssl-devellibevent-devel net-snmp-devel
3、下载、解压
源码下载地址https://cdn.zabbix.com/zabbix/https://www.zabbix.com/cn/downloadwget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.0.tar.gztar -zvxf zabbix-6.0.0.tar.gz
4、创建用户组等,授权
groupadd --system zabbixuseradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbixmkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbixchown zabbix:zabbix /usr/lib/zabbixcd zabbix-6.0.0
5、同步时钟,设置系统时间与网络时间同步
yum -y install ntpdatentpdate 0.asia.pool.ntp.org
6、编译安装
方式一、方式二只是编译进去的功能不同。
方式一
# 默认安装方式,安装完成的相关信息,看最后的结果。如下图所示./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2make install

方式二
# /app/是一个路径$ tar -xvf zabbix-6.0.0.tar.gz$ groupadd --system zabbix$ useradd --system -g zabbix -d /app/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix$ ./configure --prefix=/app/zabbix --enable-server --enable-agent --enable-ipv6 --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-jabber --with-ssh2 --with-zlib --with-libpcre --enable-java --with-ldap --with-gnutls$ cd zabbix-6.0.6$ cp -r ui/ /app/nginx/html/zabbix$ chmod 777 /app/nginx/html/zabbix/conf$ cd /app/zabbix$ mkdir logs$ chown -R zabbix:zabbix /app/zabbix$ systemctl restart nginx.service# 修改/app/zabbix/etc/zabbix_server.conf文件,将对应参数修改如下。LogFile=/app/zabbix/logs/zabbix_server.logPidFile=/app/zabbix/logs/zabbix_server.pidDBHost=10.0.100.120DBName=zabbixDBUser=zabbixDBPassword=******DBPort=3306
7、据库zabbix用户的登陆密码
# 修改/user/local/etc/zabbix/etc/zabbix_server.conf文件,将对应参数修改如下。DBPassword=passwordDBSocket=/var/lib/mysql/mysql.sock
:::warning
和方式二相比这是极简的方式:
生产环境根据需要调整
:::
8、php修改参数
find / -name php.inivim /etc/php.inimax_execution_time = 300post_max_size = 16Mmax_input_time = 300date.timezone = Asia/Shanghai
9、启动server与agentd服务
zabbix_server
zabbix_agentd
Zabbix 前端是 PHP 编写的,所以必须运行在支持 PHP 的 Web 服务器上。需要从ui路径下复制 PHP 文件到 Web 服务器的 HTML 文档目录,完成安装,把整个ui目录都拷贝过去并命名为zabbix
cp -r ui /usr/local/nginx/html/zabbix
查看版本
zabbix_server -V
10、前端配置
页面访问zabbix:http://IP/zabbix/setup.php
http://IP/zabbix/

数据库主机:localhost 改为127.0.0.1,配置文件中写的是localhost但是报错
把配置文件下下来
将下载的配置文件,放到指定目录mv zabbix.conf.php /usr/local/nginx/html/zabbix/conf/zabbix.conf.php
点击下一步
点击完成

11、配置开机自启动
配置server开机自启动
创建/etc/systemd/system/zabbix-server.service文件,并输入如下内容:
在配置文件中启用:PIDFile=/tmp/zabbix_server.pid ,并使其和如下一致
[Unit]Description=Zabbix ServerAfter=syslog.targetAfter=network.target[Service]Environment="CONFFILE=/usr/local/etc/zabbix_server.conf"EnvironmentFile=-/usr/local/sbin/zabbix_serverType=forkingRestart=on-failurePIDFile=/usr/local/logs/zabbix_server.pidKillMode=control-groupExecStart=/usr/local/sbin/zabbix_server -c $CONFFILEExecStop=/bin/kill -SIGTERM $MAINPIDRestartSec=10s[Install]WantedBy=multi-user.target
配置agent开机自启动
创建/etc/systemd/system/zabbix-agentd.service文件,并输入如下内容:
在配置文件中启用:PIDFile=/tmp/zabbix_agentd.pid ,并使其和如下一致
[Unit]Description=Zabbix monitor agentAfter=syslog.targetAfter=network.target[Service]Environment="CONFFILE=/usr/local/etc/zabbix_agentd.conf"EnvironmentFile=-/usr/local/sbin/zabbix_agentdType=forkingRestart=on-failurePIDFile=/tmp/zabbix_agentd.pidKillMode=control-groupExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILEExecStop=/bin/kill -SIGTERM $MAINPIDRestartSec=10s[Install]WantedBy=multi-user.target
重载系统服务:
$ systemctl daemon-reload
设置开机启动:
$ systemctl enable zabbix-server.service
启动服务
$ systemctl start zabbix-server.service
:::warning
1.启动文件中的路径要和编译路径相一致
2.启动前:killall -9 zabbix_server 结束所有进程
:::
报错:1
:::warning
安装zabbix server后发现无法启动,查看zabbix日志出现如下报错:
[Z3001] connection to database ‘zabbix’ failed: [2002] Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
报错很明显,无法连接MySQL数据库,反复检查了zabbix_server.conf确保数据库信息正确,但就是一直提示无法连接数据库。最后发现原因是没有配置DBSocket这个参数导致,如果不配置这个参数,zabbix server可能默认会去找/var/lib/mysql/mysql.sock,但是这个sock不存在,因此死活提示连不上MySQL。
解决办法
先查找MySQL sock进程,然后配置到zabbix_server.conf的DBSocket参数中:
[root@VM_137_216_centos etc]# find / -name mysql.sock /tmp/mysql.sock
正确的配置为DBSocket=/tmp/mysql.sock,最后kill Zabbix server的进程(注意一定要先kill进程),再重启动zabbix server解决。
:::
报错2: :::warning zabbix_server: error while loading shared libraries: libmysqlclient.so.* : cannot open shared object
问题:没有找到链接文件
解决:
方法一:
找到你 mysql 文件夹下的 lib 文件夹
查看是否有 libmysqlclient.so. 文件
然后软连接到 /usr/lib*
cd /mysql/lib
ls
软连接一定要绝对路径
ln -sv /mysql/lib/libmysqlclient.so. /usr/lib*
方法二:CentOS自定义动态链接库目录
[root@n41 zabbix-6.0.0]# find / -name libmysqlclient.so
/usr/local/mysql/lib/libmysqlclient.so
[root@n41 zabbix-6.0.0]# echo /usr/local/mysql/lib/ >> /etc/ld.so.conf
[root@n41 zabbix-6.0.0]# ldconfig
:::
