这些操作都是基于已经部署好了zabbix之后 下载zabbix-agent2开始
1.下载zabbix-agent2
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install zabbix-agent2 zabbix-agent2-plugin-* -y
如果没法下载可以使用rpm的包进行上传在安装
pcre2-10.32-3.el8_6.x86_64.rpm
zabbix-agent2-plugin-mongodb-6.0.34-release1.el7.x86_64.rpm
zabbix-agent2-6.0.34-release2.el7.x86_64.rpmzabbix-agent2-plugin-postgresql-6.0.34-release1.el7.x86_64.rpm
2.安装后再zabbix-agent2里面填入参数
#修改配置文件
vim /etc/zabbix/zabbix_agent2.conf
......
Server=你的服务端ip
#80行,指定 zabbix 服务端的 IP 地址
ServerActive=你的服务端ip
#133行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent02
#144行,指定当前 zabbix 客户端的主机名
#启动zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
netstat -natp | grep zabbix
3.接下来就是监控基本项了
监控cpu,我监控cpu使用的是zabbix系统提供的参数 所以不需要创建监控项 点触发器 点创建触发器。
last(/web-192.168.32.5/system.cpu.util[,idle])<=25
我使用的是这个参数他的意思为cpu的闲散利用率是多少 上面公式的含义是指 当闲散的利用率低于25% 即cpu的利用率已经超过75% 报警。
监控磁盘利用率超过75%报警 这个大致与上面差不多就不细说了
监控内存使用率 这里我们用的是自定义监控 在zabbix6.0版本 这个键值计算是有冲突的,我自己试验了很多次 最后还是使用 used /total 来计算内存的使用率并且报警
#!/usr/bin/bash
mem_used=$(free -m | grep '^Mem:' | awk '{print $3}')
mem_total=$(free -m | grep '^Mem:' | awk '{print $2}')
mem_usage=$(echo "scale=2; $mem_used*100/$mem_total" | bc)
echo $mem_usage
这个位置我放在了/etc/zabbix/里面
[root@zbx-agent01 zabbix_agent2.d]# cat mem.conf
UserParameter=mem.usage,/etc/zabbix/mem-free.sh
磁盘读取速度超过50Mib/s报警这些我使用的是自定义报警这里的位置依然是在/etc/zabbix/
[root@zbx-agent01 zabbix]# cat disk_read_speed.sh
#!/bin/bash
# 获取磁盘设备名
DISK=$1
# 读取的扇区数
READ_SECTORS=$(cat /proc/diskstats | grep $DISK | head -1 | awk '{print $6}')
# 获取当前时间戳
CURRENT_TIME=$(date +%s)
# 获取上一次读取的时间戳
LAST_TIME_FILE="/tmp/last_time_${DISK}_read"
LAST_TIME=$(cat $LAST_TIME_FILE)
# 计算时间差
TIME_DIFF=$((CURRENT_TIME - LAST_TIME))
# 如果时间差为 0,则输出 "0.00" 并退出
if [ $TIME_DIFF -eq 0 ]; then
echo "0.00"
exit 0
fi
# 更新上一次读取的时间戳
echo $CURRENT_TIME > $LAST_TIME_FILE
# 计算读取速度 (MiB/s)
READ_SPEED=$(echo "scale=2; ($READ_SECTORS - $(cat /tmp/last_read_sectors_${DISK})) / $TIME_DIFF" | bc)
READ_SPEED_MiB=$(echo "scale=2; $READ_SPEED * 512 / 1024 / 1024" | bc)
# 输出结果
echo "$READ_SPEED_MiB"
# 更新扇区数
echo $READ_SECTORS > /tmp/last_read_sectors_${DISK}