zabbix创建钉钉报警

作者: bboysoul | 来源:发表于2019-03-12 09:16 被阅读36次

    简介

    家里搭建了zabbix去监控主机,邮件报警什么的都太麻烦了,所以直接使用钉钉机器人来提醒,下面是我的记录

    创建群聊

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

    创建报警媒介

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

    填入相关信息

    点击添加添加成功

    配置用户

    之后点击管理->用户->选择你要告警的用户,这里我是直接使用admin用户了
    选择报警媒介,收件人随便写

    配置动作

    最后我们配置动作

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

    名称随便写

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

    选择操作

    默认标题填

    服务器:{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}
    告警地址:{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

    相关文章

      网友评论

        本文标题:zabbix创建钉钉报警

        本文链接:https://www.haomeiwen.com/subject/xrqbyqtx.html