zabbix實現釘釘告警


  • PC端先在釘釘群中添加群機器人,把webhook復制備用:

 

 

 

  • zabbix server上定義的告警腳本存放路徑:
    [root@zabbix_server ~]# egrep -v "^$|#" /etc/zabbix/zabbix_server.conf 
    LogFile=/var/log/zabbix/zabbix_server.log
    LogFileSize=0
    PidFile=/var/run/zabbix/zabbix_server.pid
    SocketDir=/var/run/zabbix
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix
    SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
    Timeout=4
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    ExternalScripts=/usr/lib/zabbix/externalscripts
    LogSlowQueries=3000
    

      

  • 在/usr/lib/zabbix/alertscripts目錄中創建ding.py
    #!/usr/bin/python
    # -*- coding: utf-8 -*- 
    
    import requests
    import json
    import sys
    import os
     
    headers = {'Content-Type': 'application/json;charset=utf-8'}
    api_url = "https://oapi.dingtalk.com/robot/send?access_token=寫自己的"
     
    def msg(text):
        json_text= {
         "msgtype": "text",
            "at": {
                "atMobiles": [
                    "187********"
                ],
                "isAtAll": True
            },
            "text": {
                "content": text
            }
        }
        print requests.post(api_url,json.dumps(json_text),headers=headers).content
         
    if __name__ == '__main__':
        text = sys.argv[1]
        msg(text)
    

      

  • 給ding.py執行權限,並測試一下
    [root@zabbix_server alertscripts]# chmod +x ding.py
    [root@zabbix_server alertscripts]# ./ding.py dingding
    Traceback (most recent call last):
      File "./ding.py", line 4, in <module>
        import requests
    ImportError: No module named requests
    
    [root@zabbix_server alertscripts]# yum -y install epel-release
    [root@zabbix_server alertscripts]# yum -y install python-pip
    [root@zabbix_server alertscripts]# pip install requests
    [root@zabbix_server alertscripts]# ./ding.py dingding
    

      

  • 測試結果

 

  • 創建告警媒介

 

  • 最后不要忘了開啟動作,默認是關閉的,手動開啟

 

  • 優化發送的內容,不要忘了在內容里加關鍵字

  • 服務器:{HOST.NAME} 發生:{TRIGGER.NAME}故障!dingding
    {
    告警主機:{HOST.NAME}
    告警地址:{HOST.IP}
    監控項目:{ITEM.NAME}
    監控取值:{ITEM.LASTVALUE}
    告警等級:{TRIGGER.SEVERITY}
    當前狀態:{TRIGGER.STATUS}
    告警信息:{TRIGGER.NAME}
    告警時間:{EVENT.DATE} {EVENT.TIME}
    事件ID:{EVENT.ID}
    }
  • 添加收件人

  • 在客戶端添加一個新用戶,測試告警結果

 

 

 完成釘釘告警觸發!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM