• Ukieweb

    佳的博客

    曾梦想仗剑天涯,后来工作忙没去。

zabbix创建钉钉机器人报警

申请钉钉机器人:

https://open-doc.dingtalk.com/microapp/serverapi3/iydd5h

获取Webhook地址其格式如下:

https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx

创建群聊

首先钉钉机器人只有在群聊之中才可以创建,所以你就需要创建一个钉钉群,首先你创建一个三个人的群聊,创建完成之后把别人踢出去就可以了,这样就是你和钉钉机器人两个人的群聊,之后在电脑上获取钉钉机器人的webhook备用

编写报警脚本

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Author: bboysoul
import requests
import json
import sys
import os
 
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = ""
 
def msg(text):
    json_text= {
     "msgtype": "text",
        "at": {
            "atMobiles": [
                "你的手机号码"
            ],
            "isAtAll": False
        },
        "text": {
            "content": text
        }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content
     
if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)

上面的api_url就是你的钉钉机器人webhook地址,之后把这个脚本放到机器的alertscripts目录下面具体路径为/usr/lib/zabbix/alertscripts

添加可执行权限

chmod +x dingding.py

因为我是使用docker搭建的,所以上面的操作都要在容器里面操作

docker exec -it zabbix-server /bin/bash

接着安装python-pip和requests库

yum install epel-release
yum install python-pip
pip install requests

创建报警媒介

在下面这个界面创建报警媒介

image.png

填入相关信息

image.png

点击添加添加成功

配置用户

之后点击管理->用户->选择你要告警的用户,这里我是直接使用admin用户了

选择报警媒介,收件人随便写

配置动作

最后我们配置动作

点击配置-> 动作->创建动作

image.png

名称随便写

点击触发器名称选择触发器警示度,之后选择大于等于警告,接着选择添加,点击一起用

选择操作

image.png

默认标题填

服务器:{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}
}

操作细节选择发送消息,群组和用户选择你要发送消息的群组和用户点击添加

之后点击恢复操作

image.png

标题写

服务器:{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}
}

操作也是和上面一样点击新的,添加即可

点击更新操作

标题填

服务器:{HOST.NAME}: 报警确认

消息内容写

{
确认人:{USER.FULLNAME} 
时间:{ACK.DATE} {ACK.TIME} 
确认信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}
}

测试

最后就是测试环节,停掉监控的任何一个主机的zabbix-agent进程,之后我们看有没有收到报警信息,如果没有,可以登录数据库查看alerts表里面error字段的信息

欢迎关注Bboysoul的博客www.bboysoul.com

Have Fun



0
0
下一篇:小玩意:浏览器标签标题变化

0 条评论

老佳啊

85后,大专学历,中原人士,家里没矿。

由于年轻时长的比较帅气,导致在别人眼里,我一直不谈恋爱的原因是清高,实则是自己的小自卑。最大的人生目标就是找一个相知相爱相容的人,共度余生。

和人相处时如果能感受到真诚,会非常注重彼此的关系,对别人没有什么心机,即使有利益冲突,一般也会以和为贵,因为在这个世界上,物质的东西,从来不会吸引到我。

特别迷恋那些大山大水,如果现在还能隐居,可能早就去了。对那些宏伟的有底蕴的人文景观比较不感冒。

从事于IT行业,却一直对厨房念念不忘,由于身材魁梧,总觉得自己上辈子是个将军,可惜这辈子没当兵,也不会打架。