当前位置 : 主页 > 操作系统 > centos >

CentOS zabbix深入自定义监控

来源:互联网 收集:自由互联 发布时间:2022-09-02
zabbix深入自定义监控 zabbix多条件触发 监控内存可用的百分比 [root@db01 ~]# free -m|awk 'NR==2{print $NF/$2*100}'66.3131## 此目录可存放所有监控的自定义文件[root@db01 ~]# vim /etc/zabbix/zabbix_agentd.d/me

zabbix深入自定义监控

zabbix多条件触发

监控内存可用的百分比

[root@db01 ~]# free -m|awk 'NR==2{print $NF/$2*100}' 66.3131 ## 此目录可存放所有监控的自定义文件 [root@db01 ~]# vim /etc/zabbix/zabbix_agentd.d/mem.conf UserParameter=mem.available,free -m|awk 'NR==2{print $NF/$2*100}'

image.png

image.png

image.png

image.png

image.png

image.png

目前属于单条件触发器,因为内存低于30%就报警了,在生产中,我们应该是当内存低于30%并且占用了swap空间,然后再报警。

[root@db01 ~]# free -m total used free shared buff/cache available Mem: 1980 522 964 9 493 1306 Swap: 2047 0 2047 [root@db01 ~]# free -m|awk '/^Swap/{print $NF/$2}' 1 [root@db01 ~]# vim /etc/zabbix/zabbix_agentd.d/swap.conf UserParameter=swap.available,free -m|awk '/^Swap/{print $NF/$2}'

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

and #并且 or #或者 last() #比对最新的值 avg() #平均值 diff() #比对上一次文件的内容 nodata() #收不不到数据进行报警nodata(5m) (5m) #表示最近5分钟得到值 (#5) #表示最近5次得到的值

zabbix 5.x以上告警

故障告警

<head> <style type="text/css"> table .guzhang {color: red;} </style> </head> <body> <img src="https://blog.driverzeng.com/zenglaoshi/sos.png" alt=""> <table border="3" bordercolor="black" cellspacing="0px" cellpadding="4px" width="500px"> <tr class="guzhang" bgcolor="#0C1B3D" ><th colspan=2> {TRIGGER.STATUS} 故障!!!故障!!! <div>&#128514; &#128514; &#128514;</div> </tr> <tr > <td bgcolor="#F9B602" width="20%">告警主机</td> <td bgcolor="#F9B602">{HOSTNAME1}</td> </tr> <tr > <td bgcolor="#F9B602">告警别名</td> <td bgcolor="#F9B602">{HOST.NAME} </td> <tr > <tr > <td bgcolor="#F9B602">告警地址</td> <td bgcolor="#F9B602">{HOST.IP}</td> </tr> <tr> <td bgcolor="#F9B602">告警时间</td> <td bgcolor="#F9B602">{EVENT.DATE} {EVENT.TIME}</td> </tr> <tr> <td bgcolor="#F9B602">告警等级</td> <td bgcolor="#F9B602">{TRIGGER.SEVERITY}</td> </tr> <tr> <td bgcolor="#F9B602">告警信息</td> <td bgcolor="#F9B602">{TRIGGER.NAME}</td> </tr> <tr> <td bgcolor="#F9B602">告警项目</td> <td bgcolor="#F9B602">{TRIGGER.KEY1}</td> </tr> <tr > <td class='guzhang2' bgcolor="#FF3333">问题详情</td> <td class='guzhang3' bgcolor="#FF3333">{ITEM.NAME}:&nbsp;{ITEM.VALUE} &#128520; &#128520; &#128520;</td> </tr> <tr> <td bgcolor="#F9B602">当前状态</td> <td bgcolor="#F9B602">{TRIGGER.STATUS}:&nbsp;{ITEM.VALUE1}</td> </tr> <tr> <td bgcolor="#F9B602">事件ID</td> <td bgcolor="#F9B602">{EVENT.ID}</td> </tr> </table> </body>

恢复告警

<head> <style type="text/css"> table .guzhang { color: red; } </style> </head> <body> <img src="https://blog.driverzeng.com/zenglaoshi/huifu.png" alt=""> <table border="1" bordercolor="black" cellspacing="0px" cellpadding="4px" width="500px"> <tr bgcolor="#49c208"><th colspan=2> {TRIGGER.STATUS} 哈哈哈哈哈哈,好了 <div>&#128512; &#128512; &#128512;</div> </tr> <tr > <td bgcolor="lightgreen" width="20%">恢复主机</td> <td bgcolor="yellow">{HOSTNAME1}</td> </tr> <tr> <td bgcolor="lightgreen">恢复别名</td> <td bgcolor="yellow">{HOST.NAME} </td> <tr > <td bgcolor="lightgreen">恢复地址</td> <td bgcolor="yellow">{HOST.IP}</td> </tr> <tr> <td bgcolor="lightgreen">恢复时间</td> <td bgcolor="yellow">{EVENT.DATE} {EVENT.RECOVERY.TIME}</td> </tr> <tr> <td bgcolor="lightgreen">恢复等级</td> <td bgcolor="yellow">{TRIGGER.SEVERITY}</td> </tr> <tr> <td bgcolor="lightgreen">恢复信息</td> <td bgcolor="yellow">{TRIGGER.NAME}</td> </tr> <tr> <td bgcolor="lightgreen">恢复项目</td> <td bgcolor="yellow">{TRIGGER.KEY1}</td> </tr> <tr > <td bgcolor="#49c208">恢复详情</td> <td bgcolor="#49c208">{ITEM.NAME}:&nbsp;{ITEM.VALUE} &#9889; &#9889; &#9889;</td> </tr> <tr> <td bgcolor="lightgreen">当前状态</td> <td bgcolor="yellow">{TRIGGER.STATUS}:&nbsp;{ITEM.VALUE1}</td> </tr> <tr> <td bgcolor="lightgreen">事件ID</td> <td bgcolor="yellow">{EVENT.ID}</td> </tr> </table> </body>

zabbix的自愈模式

有些时候,我们的服务宕机了,或者有些服务停掉了,那么我们可以先尝试让他启动,看是否能起的来,为了不影响用户的体验,先把服务起起来,然后再去排查,是什么原因故障的。

那么此时我们就需要用到zabbix的自愈模式,这个...叫起来很好听,说白了,就是在让zabbix-server通过远程执行命令的方式,在agent上执行命令,启动服务。

## 修改配置文件 [root@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf EnableRemoteCommands=1

image.png

image.png

image.png

image.png

测试

[root@db01 ~]# systemctl stop sshd.service

image.png

image.png

image.png

zabbix告警升级机制

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

计算方式:1)开始于 ,这个是相对一但触发监控,则立即发送消息2)1-2步骤是给运维组发送消息,每隔5分钟发送一次,总共2个步骤,所以发送2次3)3-4步骤是给运维经理组发送消息,每隔5分钟发送一次,总共2个步骤,所以发送2次4)4-5步骤是给运维总监组发送消息,每隔5分钟发送一次,总共2个步骤,所以发送2次5)每次的开始时间是如何计算的呢,第一个立即开始:1-2,3-4,4-5动作时间间隔是5分钟,所以在触发告警发送时间计算是5m+5m+5m=15m

聚合图形

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

zabbix微信报警

## 服务端 # 1.安装python的pip [root@zabbix ~]# yum install python3-pip -y # 2.安装python requests库 [root@zabbix ~]# / # 3.进入zabbix存放告警脚本目录 [root@zabbix ~]# cd /usr/lib/zabbix/alertscripts/ # 4.编写微信告警脚本 [root@zabbix alertscripts]# vim wixin.py #!/usr/bin/python3 #-*- coding: utf-8 -*- import requests import json import sys import os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=878fb1ed-9f5c-4bc3-921e-1c5cbb69992d" #这个是企业微信机器人生成的webhook地址,修改为你的即可。 def msg(text): json_text= { "msgtype": "text", "text": { "content": text }, } print(requests.post(api_url,json.dumps(json_text),headers=headers).content) if __name__ == '__main__': text = sys.argv[1] msg(text) # 5.添加执行权限 [root@zabbix alertscripts]# chmod +x wixin.py

微信群添加群机器人

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

测试

[root@db01 ~]# systemctl stop sshd.service

image.png

上一篇:【Prometheus+Grafana系列】监控MySQL服务
下一篇:没有了
网友评论