zoukankan      html  css  js  c++  java
  • zabbix-钉钉报警媒介

    (1)第三方报警平台(钉钉)

    先指定要发送的群,在群里创建机器人

     添加机器人

     

     可以参考   “说明文档”

    创建测试文档

    vim   ceshi.sh

    curl 'https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51'     #添加自己的webhook
       -H 'Content-Type: application/json'
       -d '{"msgtype": "text",
            "text": {
                 "content": "告警"
            }
          }'
    然后执行测试,如果成功会在钉钉上发送消息

    (2)查看默认脚本存放位置

    命令:cat /etc/zabbix/zabbix_server.conf|grep AlertScriptsPath

    命令:cd /usr/lib/zabbix/alertscripts        #进入默认脚本目录

    注意:这次脚本是用python写的所以需要配置python环境才行

    命令:yum -y  install python-pip             #安装python

    命令:pip install requests              #安装依赖包

    注意:如果安装失败,请配置阿里云yum源

    命令:mkdir ~/.pip        #创建阿里云pip

    命令:vim /root/.pip/pip.conf #写入下以内容

    [global]
    index-url = http://mirrors.aliyun.com/pypi/simple/
    [install]
    trusted-host=mirrors.aliyun.com

     看见这些说明安装成功,然后开始写脚本

    命令:vim /usr/lib/zabbix/alertscripts/dingding.py         #内容如下

    #!/usr/bin/env python
    #coding:utf-8
    #zabbix钉钉报警
    import requests,json,sys,os,datetime
    webhook="https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51"
    user=sys.argv[1]
    text=sys.argv[3]
    data={
        "msgtype": "text",
        "text": {
            "content": text
        },
        "at": {
            "atMobiles": [
                user
            ],
            "isAtAll": False
        }
    }
    headers = {'Content-Type': 'application/json'}
    x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
    if os.path.exists("/usr/local/zabbix/logs/dingding.log"):
        f=open("/usr/local/zabbix/logs/dingding.log","a+")
    else:
        f=open("/usr/local/zabbix/logs/dingding.log","w+")
    f.write(" "+"--"*30)
    if x.json()["errcode"] == 0:
        f.write(" "+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+" "+str(text))
        f.close()
    else:
        f.write(" "+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + " " + str(text))
        f.close()

    命令:chown zabbix.zabbix dingding.py        #添加权限

    命令:mkdir -p  /usr/local/zabbix/logs       #添加消息文件

    命令:touch /usr/local/zabbix/logs/dingding.log    #添加消息文档

    命令:chown -R zabbix.zabbix /usr/local/zabbix/logs/dingding.log       #给消息文档添加权限

    命令:chown -R zabbix.zabbix /usr/local/zabbix/logs            #给消息文件添加权限

    然后在测试一下,是不是在钉钉发送消息

    命令:./dingding.py test 185xxxxxxxx "这个条测试信息,忽略"  

    注意:这个号码意思是你发送的群里有这个号码,引号里的内容是在钉钉的关键字里设置的 

     

    (3)在zabbix网页里设置

    三个参数
    创建报警媒介.  三个参数分别是:ALERT.SENDTO      ALERT.SUBJECT      ALERT.MESSAGE
    {ALERT.SENDTO}
    {ALERT.SUBJECT}
    {ALERT.MESSAGE}

     

     

     

     

     

     

     

     

     接下来配置动作

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

     

    {TRIGGER.STATUS}: {TRIGGER.NAME}

    告警主机:{HOST.NAME}
    主机IP: {HOST.IP}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息:{TRIGGER.NAME}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID: {EVENT.ID}

    下图表示触发5次动作,每隔120秒触发一次,告警发给 admin 用户,用钉钉媒介发送.

    恢复参数

    {TRIGGER.STATUS}: {TRIGGER.NAME}

    告警主机:{HOST.NAME}
    主机IP: {HOST.IP}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息:{TRIGGER.NAME}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID: {EVENT.ID}

    其他默认

     

    测试将虚拟机关机一下,钉钉上弹出警告,ok完成

     

    我要这天再遮不住我眼,要这地再埋不了我心。要这天下众生都明白我意,要那诸佛都烟消云散!

  • 相关阅读:
    大神语录1 如何滑动fragmentmanager里面一个fragment里面的viewgroup---dispatchTouchEvent 、onInterceptTouchEvent 、onTouchEvent
    转载-好的简历
    安卓开发8- 安卓开源项目整理github
    安卓开发7-网络通信-如何使用webservice
    安卓开发6 -Viewpager+fragment更新数据
    leetcode rotatenumber
    Java程序执行时间的简单方法
    LeetCode happyint
    安卓开发5-fragment和activity
    [转]深入理解AsyncTask的工作原理
  • 原文地址:https://www.cnblogs.com/lixaingyang/p/12000575.html
Copyright © 2011-2022 走看看