zabbix 自定义监控项
zabbix报错排查
# 1.检查端口
[root@zabbix ~]# telnet 172.16.1.5 10050
# 2.服务端是否能获取到客户端的监控数据
[root@zabbix ~]# yum install -y zabbix-get-5.0.26
-s:指定主机IP地址
-k:指定监控项名称
[root@zabbix ~]# zabbix_get -s 172.16.1.54 -k user.count
4
# 3.查看nginx日志
[root@zabbix ~]# tail -f /var/opt/rh/rh-nginx116/log/nginx/error.log
[root@zabbix ~]# tail -f /var/opt/rh/rh-nginx116/log/nginx/access.log
# 4.查看zabbix-server日志
[root@zabbix ~]# tail -f /var/log/zabbix/zabbix_server.log
# 5.查看zabbix-agent日志
[root@zabbix ~]# tail1 -f /var/log/zabbix/zabbix_agentd.log
zabbix基础架构
zabbix-agent: 获取本机上的数据(主动上交给server)
zabbix-server:获取agent上的数据,并保存到数据库上 create.sql.gz
- 1. systemctl stop zabbix-server
- 2. drop database zabbix;
- 3. creaete database zabbix charset utf8 collate utf8_bin;
- 4. zcat create.sql.gz| mysql -uzabbix -p123 zabbix
- 5. rm -f zabbix.conf.php
- 6. http://zabbix.zls.com/setup.php // 重新进入配置页面 zabbix-web:页面展示,从数据库中获取数据,展示到页面上
自定义zabbix监控
# 监控项添加流程
1.创建一个模板
2.给模板添加监控项
3.给监控项画图
4.给监控项添加触发器
5.给监控项的触发器添加告警动作
- 邮箱
- 微信
- 钉钉
自定义监控项的格式
UserParameter=监控项的key名称,获取监控项值的命令或脚本
UserParameter=<key>,<shell command>
UserParameter=user.count,uptime|grep -Po "\d(?= user)"
添加配置文件
# 1.修改配置
[root@do04 ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=user.count,uptime|grep -Po "\d(?= user)"
# 2.重启zabbix-agent
[root@do04 ~]# systemctl restart zabbix-agent
# 3.在服务端获取该项监控的数据
[root@zabbix ~]# zabbix_get -s 172.16.1.54 -k user.count
4
页面添加监控项
自己创建一个监控模板
给模板中添加监控项
将主机关联该模板
给监控项画图
查看监控数据
给监控项添加触发器
优化页面告警
主机名:{HOST.NAME}
IP地址: {HOST.IP}
给监控项的触发器添加告警动作
添加邮件告警(报警媒介类型:发件人和告警方式)
配置邮箱收件人
告警消息添加
# 故障报警
标题:Problem: {EVENT.NAME}
内容:
Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
# 恢复告警
标题:Resolved: {EVENT.NAME}
内容:
Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警地址:{HOST.IP}
告警主机:{HOSTNAME1}
告警时间:{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}已恢复!
告警地址:{HOST.IP}
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
作业
监控端口22、80、443端口
[root@do04 ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=server.ssh_port,netstat -lntup|grep -w 22|wc -l
UserParameter=server.nginx_port,netstat -lntup|grep -w 80|wc -l
UserParameter=server.https_port,netstat -lntup|grep -w 443|wc -l
[root@do04 ~]# systemctl restart zabbix-agent
监控TCP11种状态
[root@do04 ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=ESTABLISHED,netstat -ntup |grep ESTABLISHED -c
UserParameter=SYN_SENT,netstat -ntup |grep SYN_SENT -c
UserParameter=SYN_RCVD,netstat -ntup |grep SYN_RCVD -c
UserParameter=FIN_WAIT1,netstat -ntup |grep FIN_WAIT1 -c
UserParameter=FIN_WAIT2,netstat -ntup |grep FIN_WAIT2 -c
UserParameter=TIME_WAIT,netstat -ntup |grep TIME_WAIT -c
UserParameter=CLOSED,netstat -ntup |grep CLOSED -c
UserParameter=CLOSE_WAIT,netstat -ntup |grep CLOSE_WAIT -c
UserParameter=LAST_ACK,netstat -ntup |grep LAST_ACK -c
UserParameter=LISTEN,netstat -ntup |grep LISTEN -c
UserParameter=CLOSING,netstat -ntup |grep CLOSING -c
[root@do04 ~]# systemctl restart zabbix-agent
标签:grep,自定义,zabbix,UserParameter,监控,告警,EVENT
From: https://www.cnblogs.com/ghjhkj/p/16621459.html