一、环境配置

1、主机信息

主机应用 ip地址 部署环境 版本
zabbix 192.168.8.94 centos7.9 zabbix-6.0LTS

2、安装软件及要求

  1. php要求最低版本为7.2
  2. 数据库版本
  3. MySQL/Percona 8.0.x
  4. MariaDB 10.5.0 -10.6.x
  5. PostgreSQL 13.x
  6. Oracle 19c 21c
  7. Nginx

3、基础环境配置

1.IP地址配置为:192.168.8.94
2.关闭防火墙
**systemctl disable firewalld && systemctl stop firewalld**
3.关闭selinux
setenforce 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数据

  1. #创建初始数据库
  2. mysql -uroot -p
  3. mysql> show databases; #查看默认数据库
  4. mysql> create database zabbix character set utf8 collate utf8_bin;
  5. mysql> create user zabbix@localhost identified by 'password'; (密码可以自行修改)
  6. mysql> grant all privileges on zabbix.* to zabbix@localhost;
  7. # mysql> create database zabbix character set utf8 collate utf8_bin;
  8. # mysql> create user 'zabbix'@'%' identified by 'zab@2022';
  9. # mysql> grant all privileges on zabbix.* to 'zabbix'@'%';
  10. mysql> flush privileges; 刷新权限
  11. mysql> quit;
  12. #导入数据库
  13. 方式一
  14. mysql -uzabbix -p
  15. mysql> source schema.sql;
  16. mysql> source images.sql;
  17. mysql> source data.sql;
  18. mysql> quit
  19. 方式二
  20. cd zabbix-6.0.0
  21. mysql -uzabbix -p zabbix < database/mysql/schema.sql
  22. mysql -uzabbix -p zabbix < database/mysql/images.sql
  23. mysql -uzabbix -p zabbix < database/mysql/data.sql
  24. 方式三
  25. 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、下载、解压

  1. 源码下载地址
  2. https://cdn.zabbix.com/zabbix/
  3. https://www.zabbix.com/cn/download
  4. wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.0.tar.gz
  5. tar -zvxf zabbix-6.0.0.tar.gz

4、创建用户组等,授权

  1. groupadd --system zabbix
  2. useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
  3. mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
  4. chown zabbix:zabbix /usr/lib/zabbix
  5. cd zabbix-6.0.0

5、同步时钟,设置系统时间与网络时间同步

  1. yum -y install ntpdate
  2. ntpdate 0.asia.pool.ntp.org

6、编译安装

方式一、方式二只是编译进去的功能不同。
方式一

  1. # 默认安装方式,安装完成的相关信息,看最后的结果。如下图所示
  2. ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
  3. make install

image.png
方式二

  1. # /app/是一个路径
  2. $ tar -xvf zabbix-6.0.0.tar.gz
  3. $ groupadd --system zabbix
  4. $ useradd --system -g zabbix -d /app/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
  5. $ ./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
  6. $ cd zabbix-6.0.6
  7. $ cp -r ui/ /app/nginx/html/zabbix
  8. $ chmod 777 /app/nginx/html/zabbix/conf
  9. $ cd /app/zabbix
  10. $ mkdir logs
  11. $ chown -R zabbix:zabbix /app/zabbix
  12. $ systemctl restart nginx.service
  13. # 修改/app/zabbix/etc/zabbix_server.conf文件,将对应参数修改如下。
  14. LogFile=/app/zabbix/logs/zabbix_server.log
  15. PidFile=/app/zabbix/logs/zabbix_server.pid
  16. DBHost=10.0.100.120
  17. DBName=zabbix
  18. DBUser=zabbix
  19. DBPassword=******
  20. DBPort=3306

7、据库zabbix用户的登陆密码

  1. # 修改/user/local/etc/zabbix/etc/zabbix_server.conf文件,将对应参数修改如下。
  2. DBPassword=password
  3. DBSocket=/var/lib/mysql/mysql.sock

:::warning 和方式二相比这是极简的方式:
生产环境根据需要调整 :::

8、php修改参数

  1. find / -name php.ini
  2. vim /etc/php.ini
  3. max_execution_time = 300
  4. post_max_size = 16M
  5. max_input_time = 300
  6. date.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/
image.png
image.png
数据库主机:localhost 改为127.0.0.1,配置文件中写的是localhost但是报错
image.png
把配置文件下下来
image.png
将下载的配置文件,放到指定目录
mv zabbix.conf.php /usr/local/nginx/html/zabbix/conf/zabbix.conf.php
点击下一步
image.png
点击完成

image.png

11、配置开机自启动

配置server开机自启动

创建/etc/systemd/system/zabbix-server.service文件,并输入如下内容:
在配置文件中启用:PIDFile=/tmp/zabbix_server.pid ,并使其和如下一致

  1. [Unit]
  2. Description=Zabbix Server
  3. After=syslog.target
  4. After=network.target
  5. [Service]
  6. Environment="CONFFILE=/usr/local/etc/zabbix_server.conf"
  7. EnvironmentFile=-/usr/local/sbin/zabbix_server
  8. Type=forking
  9. Restart=on-failure
  10. PIDFile=/usr/local/logs/zabbix_server.pid
  11. KillMode=control-group
  12. ExecStart=/usr/local/sbin/zabbix_server -c $CONFFILE
  13. ExecStop=/bin/kill -SIGTERM $MAINPID
  14. RestartSec=10s
  15. [Install]
  16. WantedBy=multi-user.target

配置agent开机自启动

创建/etc/systemd/system/zabbix-agentd.service文件,并输入如下内容:
在配置文件中启用:PIDFile=/tmp/zabbix_agentd.pid ,并使其和如下一致

  1. [Unit]
  2. Description=Zabbix monitor agent
  3. After=syslog.target
  4. After=network.target
  5. [Service]
  6. Environment="CONFFILE=/usr/local/etc/zabbix_agentd.conf"
  7. EnvironmentFile=-/usr/local/sbin/zabbix_agentd
  8. Type=forking
  9. Restart=on-failure
  10. PIDFile=/tmp/zabbix_agentd.pid
  11. KillMode=control-group
  12. ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE
  13. ExecStop=/bin/kill -SIGTERM $MAINPID
  14. RestartSec=10s
  15. [Install]
  16. 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 :::