日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【zabbix】企业微信告警

發布時間:2023/12/31 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【zabbix】企业微信告警 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇基于我的前兩章環境續寫:

1、【zabbix】docker安裝zabbix、yum安裝zabbix-agent

2、【zabbix】MySQL模板創建與監控

企業微信部分

一、首先得有個企業微信號

添加部門

?應用管理創建應用

?

?

?我的企業里面找到企業id,和上面兩條一起,總共三條信息都要用到

測試以下通訊是否正常,微信企業號接口調試工具:

企業微信接口調試工具

?

腳本準備部分?

這里準備了兩份腳本,兩種發送方式,可以自選其一使用!

在宿主機/usr/lib/zabbix/alertscripts/路徑下創建weixin.py

第一種腳本:這里要修改腳本里的這三條信息,也就是上文說到的三條信息

  • corpid='' #企業ID

  • appsecret='' #secret

  • agentid=1000002 #AgentID

  • #!/usr/bin/env python #-*- coding: utf-8 -*- #comment: zabbix接入微信報警腳本import requests import sys import os import json import logginglogging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',datefmt = '%a, %d %b %Y %H:%M:%S',filename = os.path.join('/tmp','weixin.log'),filemode = 'a')corpid='企業ID' #企業ID appsecret='secret' #secret agentid=AgentID #AgentID#獲取accesstoken token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret req=requests.get(token_url) accesstoken=req.json()['access_token']#發送消息 msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstokentouser=sys.argv[1] subject=sys.argv[2] toparty='3|4|5|6' message=sys.argv[3]params={"touser": touser,"toparty": toparty,"msgtype": "text","agentid": agentid,"text": {"content": message},"safe":0 }req=requests.post(msgsend_url, data=json.dumps(params))logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

    第二種腳本:使用微信機器人,這個需要在企業微信里面創建群,在群里創建機器人,之后復制機器人的Webhook:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    ?

    #!/usr/bin/env python #_*_coding:utf-8 _*_ import requests,sys,json,time import urllib3 urllib3.disable_warnings() def SendMessageURL(User,Subject,Messages): ###機器人的Webhook URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" HEADERS = {"Content-Type": "application/json"} Data = { "msgtype": "markdown", "markdown": { "content": "# ...... \n <font color=\"warning\">%s</font> \n <font color=\"info\">%s</font> \n <@%s>"% (Subject,Messages,User), #"mentioned_list" : [User], #"content": \<font color="warning">Subject</font> \n Messages, #"mentioned_list" :[User], ###因為是故障告警群,所以需要@all,這個看自己選擇 "mentioned_list" :[User,"@all"] #"mentioned_mobile_list" : ["13800000000","@all"] } } r = requests.post(url=URL, headers=HEADERS, json=Data, verify=False) print(r.json()) if __name__ == "__main__": SENDTO = str(sys.argv[1]) SUBJECT = str(sys.argv[2]) MESSAGE = str(sys.argv[3]) Status = str(SendMessageURL(SENDTO,SUBJECT,MESSAGE)) print (Status)

    腳本ok了 ,先在宿主機測試一下

    先看下宿主機python版本

    [root@k8s-node2 alertscripts]# python -V Python 2.7.5 python weixin.py HuYiDuo gaojing jingbao

    ok 手機上的企業微信已經收到消息了

    我的zabbix服務端是基于zabbix/zabbix-appliance官方鏡像,版本為4.4.6,

    所以這里就直接把腳本拷貝到容器中去

    cp /usr/lib/zabbix/alertscripts/weixin.py 容器id:/usr/lib/zabbix/alertscripts/

    進入zabbix/zabbix-appliance容器

    docker exec -it 9fc7a9551127f bash

    腳本已經過來了

    ?在容器中再測試一下

    python weixin.py HuYiDuo gaojing jingbao

    喲?報錯了?

    ?看錯誤是缺少了requests,另外python版本是2.7.16

    用pip install requests 下載看看,結果也報錯了,看到這個結果大致思路應該是python版本低了,得升級版本
    由于是在容器中安裝python環境,所以要先確定下系統的發行版

    這里查出來是Alpine Linux,所以這里用不了yum,得用apk

    apk add build-base? ?//安裝?GCC等工具 編譯時的依賴庫 apk add --no-cache -U?zlib-dev? ? //安裝?zlib-devel apk add --no-cache -U?openssl-dev? ?//安裝openssl-devel 手動下載:https://www.python.org/downloads/source/ 命令下載:wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz 解壓:tar -xvf Python-3.7.6.tgz 進入源碼根目錄:cd Python-3.7.6 配置源碼生成makefile ./configure --enable-optimizations --with-ensurepip=install? ?//加上此選項會安裝pip工具 編譯:make? 安裝:make install 由于執行configure時沒有指定安裝路徑(--prefix=/opt/Python),所以安裝到默認路徑/usr/local/bin cd /usr/local/bin ln -s python3.5?python? ?//建立軟連接,方便執行其他: apk add python3 wget https://bootstrap.pypa.io/get-pip.py python3 get-pip.py?

    安裝好后繼續下載requests

    pip install requests

    再測試一下

    成功了

    ?zabbix配置企業微信告警部分

    ?配置報警媒介類型

    收件人: {ALERT.SENDTO} 主題: {ALERT.SUBJECT} 消息: {ALERT.MESSAGE}

    測試報警媒介

    ?消息發送成功

    注:如果這一步之前在服務器及容器里測試消息都成功,但web頁面報警媒介這里測試發送卻報錯就得檢查腳本本身的問題了。

    如:#!/usr/bin/env python? ?這一行是否有對應環境,或者腳本python版本適配問題!

    消息接收成功

    配置動作

    這里先配了個zabbix客戶端狀態的觸發器,待會做測試用

    注:觸發器這一步配置也蠻重要,觸發器配置不好無法觸發,告警信息就會無法送達!

    ?操作里面的發送消息給用戶和用戶群組得自定義創建

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

    這里及下面的發送消息給用戶后來我給拿掉了,直接配成了管理組,這個發送消息給xx的配置自己自定義就好,只要能接收到消息。

    消息內容框里的內容部分,在消息內容:這一行上面把默認標題框里的信息給填上去,這樣告警信息看起來會順眼美觀一些。

    接下來給用戶Admin配置報警媒介,收件人這里我直接填寫的@all

    ?用戶配置完成就可以做測試了

    回到服務器,關閉zabbix-agent

    systemctl stop zabbix-agent

    ?成功接收到故障報警信息

    ?再啟動zabbix-agent

    systemctl start zabbix-agent

    ?成功接收到故障恢復信息

    好了,至此企業微信告警就配置完了!!!

    zabbix全套配置思路也結束了!!!

    總結

    以上是生活随笔為你收集整理的【zabbix】企业微信告警的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。