zabbix 自定义监控项
zabbix报错排查
# 1.检查端口
[root@zabbix ~]# telnet 172.16.1.51 10050
# 2.服务端是否能获取到客户端的监控数据
[root@zabbix ~]# yum install -y zabbix-get-5.0.26
-s:指定主机IP地址
-k:指定监控项名称
[root@zabbix ~]# zabbix_get -s 172.16.1.51 -k system.swap.size[,pfree]
100.000000
[root@zabbix ~]# zabbix_get -s 172.16.1.51 -k system.swap.size[,free]
1073737728
# 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@db01 ~]# tail -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@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=user.count,uptime|grep -Po "\d(?= user)" # 提示有多少个用户登录
## 2.重启zabbix-agent
[root@db01 ~]# systemctl restart zabbix-agent.service
## 3.在服务端获取一下该监控项的数据
[root@zabbix ~]# yum install -y zabbix-get
[root@zabbix ~]# zabbix_get -s 172.16.1.51 -k user.conut
1
页面添加监控项
将主机关联该模板
查看监控数据
给监控项添加触发器
给监控添加报警媒介
给监控项的触发器添加告警动作
告警消息添加
## 故障告警(优化)
标题:
故障{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}
配置收件人
测试
zabbix监控端口
zabbix客户端配置
## 1.获取监控值
[root@db01 ~]# netstat -lntup|grep -w 22|wc -l
2
## 2.修改配置文件
[root@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=port.status[*],netstat -lntup|grep -w $1|wc -l
## 3.重启zabbix客户端
[root@db01 ~]# systemctl restart zabbix-agent.service
## 4.测试
[root@zabbix ~]# zabbix_get -s 172.16.1.51 -k port.status[22]
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
2
## 只需要显示结果,需要添加权限
# 1.修改配置文件
[root@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=port.status[*],sudo netstat -lntup|grep -w $1|wc -l
# 2.进入visudo添加权限
[root@db01 ~]# visudo
%zabbix ALL=(ALL) NOPASSWD: ALL
# 3.重启zabbix客户端
[root@db01 ~]# systemctl restart zabbix-agent.service
# 4.测试
[root@zabbix ~]# zabbix_get -s 172.16.1.51 -k port.status[22]
2
添加监控项
添加图形
添加触发器
测试
[root@db01 ~]# systemctl stop sshd.service
zabbix监控TCP
客户端配置
## 修改配置文件
[root@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=tcp.status[*],sudo netstat -ant|grep -ic $1
## 重启客户端
[root@db01 ~]# systemctl restart zabbix-agent.service
## 测试
[root@zabbix ~]# zabbix_get -s 172.16.1.51 -k tcp.status[listen]
9
操作如上图所示