本文部分内容引用自《Zabbix 企业级分布式监控系统》一书。
上一章我们完成了对系统性能的监控,本章我们完成对监控指标的阈值设置,告警触发;
上一章链接:【Zabbix4.0搭建使用】2. 监控系统性能
在Zabbix中,阈值设置和告警触发都有专有的名词,分别称为触发器(trigger)
和动作(action)
;
一、创建触发器
模板、主机中都可以配置触发器,触发器是可以继承的,继承关系是模板>>主机;
在模板中配置的Trigger 会应用至所有继承了该模板的主机,如果想针对不同的主机设置不同的阈值,就需要单独在主机中设置阈值了。
触发器表达式
二、设置告警媒介
配置告警发送告知邮箱
-
配置邮件发送源
在管理-报警媒介类型中进行配置。
注意:需要开启POP和SMTP才行。部分邮箱还要开启一个授权客户端登录的授权码,有授权码的话,上面密码那里就填授权码。 -
配置接收邮件的邮箱
每个用户都可以配置自己的邮箱,在配置-用户中,新增一个用于接收告警邮件的邮箱地址。
配置告警推送至钉钉
- 创建钉钉自定义机器人
- 记录好Webhook 地址
- 手动测试api能否推送消息
curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx' \
-H 'Content-Type: application/json' \
-d '{"msgtype": "text",
"text": {
"content": "我就是我, 是不一样的烟火"
}
}'
- 上传脚本至
/etc/zabbix/alertscripts
[root@soft-pro-monitor alertscripts]# chmod +x dingding_alert.py
#!/usr/local/bin/python3
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXXXXXXXXXXXX"
#需要更换你机器人的地址
def msg(text):
json_text= {
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
"13107731207",
"158xxxx1234" #需要@群里谁
],
"isAtAll": False #是否全部@,True为是,False为否
}
}
print(requests.post(api_url,json.dumps(json_text),headers=headers).content)
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
- 测试脚本
[root@soft-pro-monitor alertscripts]# python3 dingding_alert.py test
b'{"errcode":0,"errmsg":"ok"}'
[root@soft-pro-monitor alertscripts]#
- Zabbix中配置钉钉告警媒介
三、设置动作
Trigger
和告警媒介
都配置好了,我们开始配置动作(action)
.
都配置好以后,实际效果如下:
感谢阅读,有兴趣的小伙伴可以关注我的公众号DevOps探索之旅
,大家一起学习进步