一、环境配置
1、主机信息
主机应用 | ip地址 | 部署环境 | 版本 |
---|---|---|---|
zabbix | 192.168.8.94 | centos7.9 | zabbix-6.0LTS |
2、安装软件及要求
php要求最低版本为7.2
数据库版本
MySQL/Percona 8.0.x
MariaDB 10.5.0 -10.6.x
PostgreSQL 13.x
Oracle 19c – 21c
Nginx
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 -p
mysql> 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 -p
mysql> source schema.sql;
mysql> source images.sql;
mysql> source data.sql;
mysql> quit
方式二
cd zabbix-6.0.0
mysql -uzabbix -p zabbix < database/mysql/schema.sql
mysql -uzabbix -p zabbix < database/mysql/images.sql
mysql -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/download
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.0.tar.gz
tar -zvxf zabbix-6.0.0.tar.gz
4、创建用户组等,授权
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix
cd zabbix-6.0.0
5、同步时钟,设置系统时间与网络时间同步
yum -y install ntpdate
ntpdate 0.asia.pool.ntp.org
6、编译安装
方式一、方式二只是编译进去的功能不同。
方式一
# 默认安装方式,安装完成的相关信息,看最后的结果。如下图所示
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make 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.log
PidFile=/app/zabbix/logs/zabbix_server.pid
DBHost=10.0.100.120
DBName=zabbix
DBUser=zabbix
DBPassword=******
DBPort=3306
7、据库zabbix用户的登陆密码
# 修改/user/local/etc/zabbix/etc/zabbix_server.conf文件,将对应参数修改如下。
DBPassword=password
DBSocket=/var/lib/mysql/mysql.sock
:::warning
和方式二相比这是极简的方式:
生产环境根据需要调整
:::
8、php修改参数
find / -name php.ini
vim /etc/php.ini
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
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/
数据库主机: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 Server
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/etc/zabbix_server.conf"
EnvironmentFile=-/usr/local/sbin/zabbix_server
Type=forking
Restart=on-failure
PIDFile=/usr/local/logs/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
[Install]
WantedBy=multi-user.target
配置agent开机自启动
创建/etc/systemd/system/zabbix-agentd.service文件,并输入如下内容:
在配置文件中启用:PIDFile=/tmp/zabbix_agentd.pid ,并使其和如下一致
[Unit]
Description=Zabbix monitor agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/etc/zabbix_agentd.conf"
EnvironmentFile=-/usr/local/sbin/zabbix_agentd
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=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
:::