Zabbix自定义监控
#服务器登录用户大于3发送警报
1.确认命令
who | wc -l
2.创建zabbix配置文件,创建自定义key
#在agent端操作
cd /etc/zabbix/zabbix_agentd.d/
touch user_user.conf
vim user_user.conf
UserParameter=user.log,who|wc -l #key为user.user
##保存后重启
systemctl restart zabbix-agent.service
在zabbix_server端实验
zabbix_get -s '192.168.11.12' -p 10050 -k 'user.log'
返回值为1,证明登录用户为1
在web页面创建模板,创建应用集(就像文件夹一样,放一些监控项)
#创建模板
进入模板后找到应用集,创建应用集并输入名称,然后在模板中创建监控项
#然后创建触发器
添加图形
###最后在- 配置–主机–选择需要添加的主机–模板–添加模板
#####监控自定义端口
自定义监控当前主机的cpu,内存的使用率
cd /home/zabbix
vim text.sh
#!/bin/bash
mem_use=$( free -m|grep Mem|awk '{printf "%.2f\n",$3/$2*100}')
#已用内存
cpu_free=$( top -bn1 |sed -n 3p|awk '{printf "%d\n", $8}')
#空闲时间占用cpu的百分比
cpu_use=$( top -bn1 |sed -n 3p|awk '{printf "%d\n", 100-$8}')
#cpu使用多少
case $1 in
mem_use)
echo $mem_use ;;
cpu_free)
echo $cpu_free ;;
cpu_use)
echo $cpu_use ;;
*)
echo "输入有误!!!"
esac
chmod +x text.sh
#修改zabbix-agent的配置文件并重启agent服务
vim /etc/zabbix/zabbix_agentd.conf
330行 UnsafeUserParameters=1 #取消注释,开启自定义脚本
339行 UserParameter=check.mem[*],/home/zabbix/test.sh $1 #定义脚本位置
#重启服务
systemctl restart zabbix-agent
#使用监控服务器进行测试
zabbix_get -s 192.168.11.11 -k check.mem[cpu_free]
web页面展示
然后创建监控项
需要输入单位,信息类型如果有小数点需要选择浮点数
可以进行测试,测试通过后进行添加
添加可视化图形
zabbix自定义监控磁盘
#在agnet端配置
vim /etc/zabbix/zabbix_agentd.conf
UserParameter=cat_disk,df -hT | grep ' /$' | awk '{print $6}' | sed 's/%//g'
#重启
systemctl restart zabbix-agent.service
在server端配置
#配置成功后一定要看可用性,不然没办法发送告警
然后配置机器人告警
#创建机器人脚本
#/usr/lib/zabbix/alertscripts/ 这里是zabbix存放脚本的地址
vim wechat.sh
#!/bin/bash
# 企业微信 Webhook 地址
WEBHOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=3f21916a-1047-4a97-bb61-6fd912489d22"
SUBJECT="$1" # 告警标题
MESSAGE="$2" # 告警内容
JSON_PAYLOAD=$(cat <<EOF
{
"msgtype": "text",
"text": {
"content": "【Zabbix告警】\n标题: ${SUBJECT}\n内容: ${MESSAGE}"
}
}
EOF
)
curl -s -X POST -H "Content-Type: application/json" -d "${JSON_PAYLOAD}" "${WEBHOOK_URL}"
#在这里新建一个wechat告警
#类型使用脚本,消息模板和选项无需填写,创建好后保存
#在用户设置中添加报警媒介
#在配置动作中添加告警动作
#告警主题和消息
#主题
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
#消息
告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
接下来配置恢复操作
#告警主题和消息
#主题
故障恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}已恢复!
#消息
恢复告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
#配置完成后报错就可以告警了