安装环境
组件 | 版本 |
---|---|
Linux | Rocky Linux 8 |
Zabbix | Zabbix 6.0 |
MySql | 8.0.30(根据Zabbix6搭建时的经验,MySql版本太低的话会不兼容Zabbix,但当时的报错找不到了,所以未能在此展示) |
IP | 监控192.168.88.1 && 被监控192.168.88.2 |
安装步骤
#离线安装
https://repo.zabbix.com/zabbix/7.0/rocky/8/x86_64/
下载好对应的rpm包
#在线安装
#编辑配置文件 /etc/yum.repos.d/epel.repo 并添加以下语句
[epel]
...
excludepkgs=zabbix*
#安装版本仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rocky/9/x86_64/zabbix-release-6.0-2.el9.noarch.rpm && yum clean all
#将[zabbix],[zabbix-non-supported]换成阿里云镜像
vim /etc/yum.repos.d/zabbix.repo
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/6.0/rocky/9/$basearch/
#安装Zabbix Server、Web前端、Agent
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent -y
服务说明:
zabbix-server-mysql
: 安装 Zabbix 服务器端软件,并配置为使用 MySQL 作为后端数据库来存储配置信息和监控数据。zabbix-web-mysql:
提供 Zabbix 的前端网页界面,也配置为使用 MySQL 数据库。这是管理员和用户用来查看监控数据、配置报警规则等的图形化界面。zabbix-nginx-conf
: 安装 Zabbix Web 界面所需的 Nginx 配置文件。Nginx 是一个高性能的 HTTP 和反向代理服务器,常用于部署 Zabbix 前端以提高性能和安全性。zabbix-sql-scripts
: 包含用于初始化和升级 Zabbix 数据库结构的 SQL 脚本。这些脚本对于初次安装时创建数据库表结构,以及后续升级时调整数据库结构至关重要。zabbix-selinux-policy
: 提供 Zabbix 相关的 SELinux 策略模块。SELinux 是一个强制访问控制安全系统,这个包确保 Zabbix 各个组件能够在符合 SELinux 安全策略的环境中正确运行。zabbix-agent
: 是部署在被监控主机上的服务,负责收集主机的性能和状态数据,并根据 Zabbix 服务器的请求返回这些信息,是实现监控功能的关键组件。这里安装是将服务端的状态同样作为被监控的客户端进监控。
安装MySQL
此步骤就不叙述了,需要的话请看我前面写的二进制安装MySQL8
二进制安装MySQL8
systemctl enable --now mysql.service
systemctl status mysql
● mysql.service - MySQL server by ymh
Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2025-01-08 10:44:11 CST; 15min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Main PID: 997 (mysqld)
Tasks: 37 (limit: 11175)
Memory: 528.3M
CGroup: /system.slice/mysql.service
└─997 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
1月 08 10:44:11 localhost.localdomain systemd[1]: Started MySQL server by ymh.
启动MySQL为zabbix创建用户
# 登陆数据库
mysql -uroot -plmx
# 创建名为zabbix的数据库,并设置字符集为utf8mb4,排序规则为utf8mb4_bin
create database zabbix character set utf8mb4 collate utf8mb4_bin;
# 创建名为zabbix的用户,并设置其密码为'000000'
create user zabbix@localhost identified by '000000';
# 授予zabbix用户在zabbix数据库上的所有权限
grant all privileges on zabbix.* to zabbix@localhost;
# 设置全局变量log_bin_trust_function_creators为1
set global log_bin_trust_function_creators = 1;
# 退出MySQL
exit
导入初始架构和数据
cp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz .
gzip -d server.sql.gz
mysql -uzabbix -p000000 zabbix < server.sql
#将之前临时放开的log_bin_trust_function_creators禁用
set global log_bin_trust_function_creators = 0;
配置zabbix_server
vim +129 /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
配置zabbix_agent
vim /etc/zabbix/zabbix_agentd.conf
182 Hostname=zabbixserver
配置nginx展示zabbix
vim /etc/nginx/conf.d/zabbix.conf
# 将第2、3行的注释删除,结果如下所示:
server {
listen 8080;
server_name example.com;
...以下省略...
启动相关服务
systemctl restart zabbix-server zabbix-agent nginx php-fpm
初始化zabbix
浏览器访问本机ip地址:8080
配置DB连接可能出现的问题
- 服务器请求客户端未知的身份验证方法。
原因:因为Mysql 8 默认创建用户的身份验证插件是caching_sha2_password
,所以我我们在创建zabbix用户时需要指定身份验证插件为mysql_native_password
。
#解决办法
mysql> drop user zabbix@localhost;
mysql> create user 'zabbix'@'localhost' identified with mysql_native_password by '123123';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> flush privileges;
- 无法确定当前 Zabbix 数据库版本: 找不到表“ dbversion”。
原因:没有将zabbix需要的表导入到mysql中
#解决办法
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/schema.sql
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/images.sql
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/data.sql
- 不支持表的字符集或排序规则
原因:创建zabbix库的时候需要指定编码方式(和第一个问题相似)
#解决办法
mysql> drop database zabbix;
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/schema.sql
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/images.sql
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/data.sql
注意:这里的用户名Admin,A是大写的!
配置zabbix监控web1服务器
安装agent
yum -y install zabbix-agent
修改web1配置文件
vim /etc/zabbix/zabbix_agentd.conf
117 Server=127.0.0.1,192.168.88.2
182 Hostname=web1
启服务
systemctl start zabbix-agent
在web页面中添加对web1的监控
- 主机:安装了agent,被监控的主机
- 主机组:根据需求,将多台主机加入到一个主机组中,方便管理。系统默认已经创建了一些主机组。
- 模板:是监控项的集合。将模板应用到主机,主机就可以直接拥有模板中的所有监控项。系统中默认已经创建了一些模板。
常用监控指标
- Space utilization:以百分比显示的磁盘利用率
- Used space:已用磁盘空间
- Available memory:可用内存
- CPU idle time:CPU空闲时间。不宜过低。
- Load average (1m avg)、Load average (5m avg)、Load average (15m avg):CPU1分钟、5分钟、15分钟的平均负载。这个值不应长期大于核心数。
- Interface eth0: Bits received:网卡接收到的数据量
- Interface eth0: Bits sent:网卡发送的数据量
- Number of processes:系统运行的进程数
- Number of logged in users:已登陆的用户数
自定义监控项
在被控端创建key。被控端被监控的内容叫作key,可以理解为它就是一个变量名,具体的名字自己决定。
在web页面中创建监控项。监控项对应key值。
在被控端创建key
- 创建key的语法
UserParameter=自定义key值,命令
# 命令的执行结果,是key的value
- 创建自定义配置文件。文件名自定义。
vim /etc/zabbix/zabbix_agentd.d/usercnt.conf
UserParameter=usercnt,sed -n '$=' /etc/passwd
systemctl restart zabbix-agent.service
- 验证自定义监控项
# 1. 安装zabbix-get
yum install -y zabbix-get
yum install -y zabbix-get
# 2. 获取监控项的值
#本机执行
zabbix_get -s 127.0.0.1 -k usercnt 46
#在监控端执行
zabbix_get -s 192.168.88.100 -k usercnt
创建模板
应用模板到主机