zabbix自定义监控项

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

posted @ 2022-08-24 20:28  FYytfg  阅读(113)  评论(0编辑  收藏  举报