配置 Zabbix(TCP 10051、10050).note
# 两个重要的组件包:
Zabbix Server: 默认端口 TCP 10051,部署在Zabbix服务器上,用于接收Agent采集的数据
Zabbix Agent:默认端口 TCP 10050,部署在被监控机器上,用于采集数据(Zabbix服务器上一般都配置)
# 防火墙只需要放行 Server端入站TCP 10051、10050,Agent端入站 TCP 10050一、配置 Zabbix:
# 环境:
一台 Linux Server
一台 Linux Client1、配置 Zabbix 服务端:
(1)安装软件包:
apt install -y apache2 php8.2-fpm php8.2-mysql mariadb-server zabbix-agent zabbix-server-mysql zabbix-frontend-php (2)修改网站根目录为 /usr/share/zabbix,并开启php:
a2enconf php8.2-fpm
a2enmod proxy_fcgi
vim /etc/apache2/sites-enabled/000-default.conf
vim /etc/apache2/apache2.conf
systemctl restart apache2
(3)配置 mysql 数据库:
3.1、创建数据库和用户:
数据库和用户名称都能自定义
mysql
# 建议指定编码创建数据库(否则zabbix可能无法运行):
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@'%' identified by 'Skills39';
flush privileges; //重启mysql服务也一样
exit3.2、解压zabbix数据库文件,导入 Zabbix 表:
# 只需要解压这三个文件:

# 先将 Zabbix 自带的表解压:
cd /usr/share/zabbix-server-mysql
gunzip data.sql.gz
gunzip images.sql.gz
gunzip schema.sql.gz# 导入 Zabbix 表(必须按照下面的顺序来导入):
mysql zabbix < schema.sql
mysql zabbix < images.sql
mysql zabbix < data.sql
# 如果要加上凭据:
mysql -uroot zabbix < schema.sql(4)配置 php:
vim /etc/php/8.2/fpm/php.ini
# date.timezone 要求与本机时区相同
# max_input_time Zabbix最小要求为300
# max_execution_time Zabbix最小要求为300
# post_max_size Zabbix最小要求为16M



systemctl restart php8.2-fpm
(5)指定mysql密码,给予写入权限,启动 zabbix-server:
chmod -R 777 /etc/zabbix
vim /etc/zabbix/zabbix_server.conf
systemctl restart zabbix-server
(6)允许高版本的数据库:
# 配置 zabbix_server.conf 允许高版本的数据库:
# 在debian 12.11 中,Zabbix最高支持的mysql版本为 101099,而debian 12.11中的mysql版本为 101111,因此启动是会报错的
vim /etc/zabbix/zabbix_server.conf
2、客户端访问 Zabbix:

输入mysql地址数据库和用户名:

默认,下一步:

确认信息无误,点击下一步:


默认用户Admin(区分大小的,admin用户登不进去),密码zabbix


二、Zabbix监控客户端主机:
如果题目没有要求,尽量配置 zabix-agent2,因为它不需要等待这么久
(1)客户端配置:
# 安装软件包:
apt install -y zabbix-agent
## zabbix-agent2 的配置也跟下面一样,只不过要重启 zabbix-agent2# 编辑 配置文件:
vim /etc/zabbix/zabbix_agent.conf
# Hostname 需要与下面Zabbix Web中定义的 Hostname相同


(2)Zabbix 服务器上添加主机:

设置主机名,该名称必须要和上面客户端定义的 Hostname 相同:

添加templates,否则哪怕配置正确也无法监测客户端:



往下滑:

Groups选择 Linux Servers:

指定客户端IP地址:


点击添加,等待 1分钟左右,就能够连接上了:


client1 使用的是 zabbix-agent2,与上面配置一样(zabbix-agent2配置好之后无需等待,立即就是Available的)

三、zabbix 监控服务:
1、Zabbix监控nginx:
在被监控机器上安装nginx:
apt install -y nginx在网页调用默认nginx模板监测:



点击update
·查看:
等待大约一分钟

·如果要解决 stub status page 的404,就需要配置 nginx:

我们可以查看nginx的日志来知道它是访问 /basic_status 来检测状态的,因此我们需要新建一个 /basic_status 虚拟目录

vim /etc/nginx/sites-enabled/default
# 它只是虚拟目录,该目录不需要真实存在
再次查看zabbix:

四、报错解决:
1、zabbix网页乱码:

·原因:
# apache2 没有开启 php8.2-fpm 或 proxy_fcgi:·解决方法:
a2enconf php8.2-fpm
a2enmod proxy_fcgi
systemctl restart apache2
2、点击next setup 报错:

·原因:
# php8.2-fpm的配置不符合zabbix的最小要求·解决方法:
# zabbix服务器上:
vim /etc/php/8.2/fpm/php.ini
# date.timezone 要求与本机时区相同
# max_input_time Zabbix最小要求为300
# max_execution_time Zabbix最小要求为300
# post_max_size Zabbix最小要求为16M



systemctl restart php8.2-fpm
3、报错 无法创建配置文件:

·原因:
# Zabbix的配置文件默认生成到 /etc/zabbix 目录下,而此时zabbix没有写入权限就会报错·解决方法:
chmod -R 777 /etc/zabbix //给予写入权限4、客户端通过zabbix引导后点击完成报错“权限拒绝”:

·原因:
# 与上一个原因类似,上一个原因是因为目录没有创建文件的权限,解决后,能够创建文件了,但是zabbix对于它自己创建出来的配置文件没有访问权限·解决方法:
chmod -R 777 /etc/zabbix5、zabbix-server 服务启动不了:
·原因:
我们 vim /log/var/zabbix-server/zabbix_server.log 能够查看到zabbix不支持当前mysql版本,它最高支持版本为 101099,而当前mysql版本为 101111
·解决方法:
# 配置 zabbix_server.conf 允许高版本的数据库:
vim /etc/zabbix/zabbix_server.conf
或者安装mysql时,指定版本,安装 10.10.99 以下的版本
6、Zabbix Server not running:

·原因:
1、/etc/zabbix/zabbix_server.conf 文件中没有指定 mysql 用户的密码
2、zabbix-server 服务默认是没有启动的·解决方法:
vim /etc/zabbix/zabbix_server.conf
systemctl restart zabbix-server

7、在安装zabbix时出现 Unsupported charset or collation for tables时:

五、删除 Zabbix:
# 停止服务:
systemctl stop zabbix-server
systemctl stop zabbix-agent# 删除数据库(删除mysql时也会自动删除数据库):
mysql
drop database zabbix;
drop user 'zabbix'@'%';# 删除软件包:
apt purge -y zabbix-server-mysql
apt purge -y zabbix-agent
apt purge -y mariadb-server
apt autoremove -y