日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【zabbix】企业微信告警

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

本篇基于我的前兩章環(huán)境續(xù)寫:

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

2、【zabbix】MySQL模板創(chuàng)建與監(jiān)控

企業(yè)微信部分

一、首先得有個企業(yè)微信號

添加部門

?應(yīng)用管理創(chuàng)建應(yīng)用

?

?

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

測試以下通訊是否正常,微信企業(yè)號接口調(diào)試工具:

企業(yè)微信接口調(diào)試工具

?

腳本準備部分?

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

在宿主機/usr/lib/zabbix/alertscripts/路徑下創(chuàng)建weixin.py

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

  • corpid='' #企業(yè)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='企業(yè)ID' #企業(yè)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']#發(fā)送消息 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)

    第二種腳本:使用微信機器人,這個需要在企業(yè)微信里面創(chuàng)建群,在群里創(chuàng)建機器人,之后復(fù)制機器人的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 手機上的企業(yè)微信已經(jīng)收到消息了

    我的zabbix服務(wù)端是基于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

    腳本已經(jīng)過來了

    ?在容器中再測試一下

    python weixin.py HuYiDuo gaojing jingbao

    喲?報錯了?

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

    用pip install requests 下載看看,結(jié)果也報錯了,看到這個結(jié)果大致思路應(yīng)該是python版本低了,得升級版本
    由于是在容器中安裝python環(huán)境,所以要先確定下系統(tǒng)的發(fā)行版

    這里查出來是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 由于執(zhí)行configure時沒有指定安裝路徑(--prefix=/opt/Python),所以安裝到默認路徑/usr/local/bin cd /usr/local/bin ln -s python3.5?python? ?//建立軟連接,方便執(zhí)行其他: apk add python3 wget https://bootstrap.pypa.io/get-pip.py python3 get-pip.py?

    安裝好后繼續(xù)下載requests

    pip install requests

    再測試一下

    成功了

    ?zabbix配置企業(yè)微信告警部分

    ?配置報警媒介類型

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

    測試報警媒介

    ?消息發(fā)送成功

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

    如:#!/usr/bin/env python? ?這一行是否有對應(yīng)環(huán)境,或者腳本python版本適配問題!

    消息接收成功

    配置動作

    這里先配了個zabbix客戶端狀態(tài)的觸發(fā)器,待會做測試用

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

    ?操作里面的發(fā)送消息給用戶和用戶群組得自定義創(chuàng)建

    服務(wù)器:{HOST.NAME}發(fā)生: {TRIGGER.NAME}故障! 消息內(nèi)容: 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監(jiān)控項目:{ITEM.NAME} 監(jiān)控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態(tài):{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID} ---------------------------------------------------- 服務(wù)器:{HOST.NAME}: {TRIGGER.NAME}已恢復(fù)! 消息內(nèi)容: 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監(jiān)控項目:{ITEM.NAME} 監(jiān)控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態(tài):{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 恢復(fù)時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持續(xù)時間:{EVENT.AGE} 事件ID:{EVENT.ID} ---------------------------------------------------- 服務(wù)器:{HOST.NAME}: {TRIGGER.NAME}已更新! 消息內(nèi)容: 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監(jiān)控項目:{ITEM.NAME} 監(jiān)控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態(tài):{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 恢復(fù)時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持續(xù)時間:{EVENT.AGE} 事件ID:{EVENT.ID}

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

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

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

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

    回到服務(wù)器,關(guān)閉zabbix-agent

    systemctl stop zabbix-agent

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

    ?再啟動zabbix-agent

    systemctl start zabbix-agent

    ?成功接收到故障恢復(fù)信息

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

    zabbix全套配置思路也結(jié)束了!!!

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。