zabbix cpu使用率钉钉告警
编写钉钉告警脚本
# -*- coding: utf-8 -*-
import socket
import requests
import traceback
import sys
contact_list= ["15890155090"]
def get_host_ip():
'''
查询本机ip地址
:return:
'''
try:
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.connect(('8.8.8.8',80))
ip=s.getsockname()[0]
finally:
s.close()
return ip
def main(detail_message="系统出问题了,请及时处理", atMobiles=None, myurl=None, isAtAll=True):
try:
hostname = get_host_ip()
detail_message = 'alert--{hostname}:'.format(hostname=hostname) + detail_message
if not atMobiles:
atMobiles = contact_list
if myurl:
url= myurl
else:
url = "https://oapi.dingtalk.com/robot/send?access_token=47eb52d56d56673e12b4178f6ac27992abc590e6c72c111a0428fe85229658ee"
payload = {
"msgtype": "text",
"text": {
"content": detail_message
},
"at": {
# "atMobiles": atMobiles,
"isAtAll": isAtAll
}
}
requests.post(url, json=payload)
except:
traceback.print_exc()
error = traceback.format_exc()
error = 'alert--send message error {hostname}:'.format(hostname=hostname) + error
payload = {
"msgtype": "text",
"text": {
"content": repr(error)
},
"at": {
"isAtAll": True
}
}
requests.post(url, json=payload)
if __name__ == '__main__':
text = sys.argv[0]
main(detail_message='zabbix-test: {error}'.format(error=text), myurl='https://oapi.dingtalk.com/robot/send?access_token=02887cd7b4a185b227f1839908fed6bf88f8bcb3d6effd2168da1b02f913c004')
查看zabbix脚本存放位置:
> cat /etc/zabbix/zabbix_server.conf |grep AlertScriptsPath # /etc/zabbix/alert.d/
将脚本dingding.py 存放至AlertScriptsPath指向的目录
添加报警媒介类型
给用户添加报警媒介
创建cpu使用率触发器
下图中的表达式中的值,为钉钉报警条件
详细创建cpu使用率触发器步骤,参见:
https://blog.csdn.net/apple9005/article/details/108120832
创建动作