赞
踩
第一章 戴尔PowerVault ME5012 存储服务器做快照计划的基本逻辑
测试搭建Zabbix监控平台,配置Zabbix的钉钉告警功能,实现Zabbix监控告警实时推送到钉钉群聊机器人,使用Webhook的形式实现告警。
1. 新增 需要监控的主机 ;在‘Zabbix Server’主机里添加监控项(简单检查)、触发器。
2. 导入自定义图标;新增拓扑图并添加图标;添加主机之间的链接关联。
3. 新增钉钉告警的报警媒介类型;给用户分配报警媒介类型;新增动作并关联到触发器,触发后操作应用到钉钉告警的消息模板。
4. 编写钉钉告警的Python脚本;测试Zabbix触发钉钉告警的有效性。
右上角创建主机,设置主机的相应参数
右上角创建监控项,类型设置 简单检查,键值使用ping丢包检测
右上角创建触发器,表达式从右边 [添加] 选择监控项
并加入
结果选择 >=
10 ,即丢包率大于登录10%
时就触发
右上角创建图标,上传png/jpg/bmp/jpeg/ico等图片
右上角创建拓扑图,设置好参数后,编辑拓扑图,添加地图元素
,类型选择 主机
,主机选择自定义主机
,图标选择 自定义图片
(截图略)
Ctrl键连选2个图标,添加链接
默认标题为:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
消息内容为:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}
操作框的设置为:
默认标题为:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
消息内容:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
}
操作框的设置为:
### ssh登录Zabbix,找到zabbix运行目录
whereis zabbix
which zabbix
### 进入zabbix的脚本执行目录
cd /usr/lib/zabbix
cd alertscripts
touch dingtalk.py # 新增dingtalk的告警脚本
chmod +x dingtalk.py # 给脚本添加执行权限
vim dingtalk.py # 编辑脚本内容
Python环境预装
/usr/bin/python3 -m pip install requests DingtalkChatbot urllib3
#!/usr/bin/python3 import json import requests import sys import time import hmac import hashlib import base64 import re from dingtalkchatbot.chatbot import DingtalkChatbot secret = "xxxxxxxxxxxxxxxx" # 钉钉机器人的加签字段内容 webhook = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxx" # 钉钉机器人的Webhook字段内容 def dd_robot(msg): dd = DingtalkChatbot(webhook=webhook, secret=secret) dd.send_text(msg=msg, is_at_all=False, at_mobiles=[]) if __name__ == "__main__": msg = str(sys.argv[1]) outputmsg = (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) + " 输出:" + msg) with open("/var/log/zabbix/zabbix_dingtalk.log", "a") as f: f.write(outputmsg + '\n') dd_robot(msg)
(略)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。