Zabbix がエンタープライズ WeChat アラームを実装

Zabbix がエンタープライズ WeChat アラームを実装

1. Enterprise WeChat のモバイル版をダウンロードしてインストールします
。 2. アカウントを登録して会社を作成し、従業員を会社に追加します。
3. 私の会社を検索 -> 会社 ID を記録します: ww1d1845f4b25a12fb
ここに画像の説明を挿入します
4. 会社の下に部門を作成し、部門 ID を記録します: 3
ここに画像の説明を挿入します
ここに画像の説明を挿入します

5. アプリケーションを作成し、アプリケーション ID とシークレット (ID: 1000003、シークレット: ItmpP6TjPNvx6aSlvRCYrkgK5BPWiqTrMf3xhKjUnLo) を記録します。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

6. Python スクリプトを作成し、上記で記録した情報を対応する場所に入力します (スクリプトは zabbix-server サーバーにあります)。

[root@zabbix-server ~]# vim /usr/lib/zabbix/alertscripts/wechat.py

スクリプトの内容は次のとおりです。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import urllib,urllib2,json
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
class WeChat(object):
        __token_id = ''
        # init attribute
        def __init__(self,url):
                self.__url = url.rstrip('/')
                self.__corpid = 'ww1d1845f4b25a12fb'
                self.__secret = 'ItmpP6TjPNvx6aSlvRCYrkgK5BPWiqTrMf3xhKjUnLo'
        # Get TokenID
        def authID(self):
                params = {
    
    'corpid':self.__corpid, 'corpsecret':self.__secret}
                data = urllib.urlencode(params)
                content = self.getToken(data)
                try:
                        self.__token_id = content['access_token']
                        # print content['access_token']
                except KeyError:
                        raise KeyError
        # Establish a connection
        def getToken(self,data,url_prefix='/'):
                url = self.__url + url_prefix + 'gettoken?'
                try:
                        response = urllib2.Request(url + data)
                except KeyError:
                        raise KeyError
                result = urllib2.urlopen(response)
                content = json.loads(result.read())
                return content
        # Get sendmessage url
        def postData(self,data,url_prefix='/'):
                url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_id
                request = urllib2.Request(url,data)
                try:
                        result = urllib2.urlopen(request)
                except urllib2.HTTPError as e:
                        if hasattr(e,'reason'):
                                print 'reason',e.reason
                        elif hasattr(e,'code'):
                                print 'code',e.code
                        return 0
                else:
                        content = json.loads(result.read())
                        result.close()
                return content
        # send message
        def sendMessage(self,touser,message):
                self.authID()
                data = json.dumps({
    
    
                        'touser':touser,
                        'toparty':3,
                        'msgtype':"text",
                        'agentid':"1000003",
                        'text':{
    
    
                                'content':message
                        },
                        'safe':"0"
                },ensure_ascii=False)
                response = self.postData(data)
                print response

if __name__ == '__main__':
        a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
        a.sendMessage(sys.argv[1],sys.argv[3])

7. 権限を変更する

[root@zabbix-server ~]# chmod 777 /usr/lib/zabbix/alertscripts/wechat.py
[root@zabbix-server ~]# chown zabbix:zabbix /usr/lib/zabbix/alertscripts/wechat.py

8. zabbix サーバー側でスクリプトのテストを実行します。

[root@zabbix-server alertscripts]# /usr/lib/zabbix/alertscripts/wechat.py ZhangYu test hellohellohello
root@zabbix-server alertscripts]# /usr/lib/zabbix/alertscripts/wechat.py ZhangYu www helphelphelp
ここに画像の説明を挿入します
注: ZhangYu は Enterprise WeChat のユーザー名です。
ここに画像の説明を挿入します
スクリプトが正常に動作していることを示すメッセージがマシン上で受信されました。
ここに画像の説明を挿入します

8. zabbix-server の Web インターフェイスでアラーム メディアを作成します。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
9. アラーム メディアをユーザーに追加します (新しいユーザーを作成するか、管理者アカウント admin を直接使用できます)。このユーザーにアラーム メディアを関連付けさせます。受信者を追加します

注: タイプ (作成されたアラーム媒体)、受信者 (Enterprise WeChat のユーザー)
ここに画像の説明を挿入します
10. Enterprise WeChat アラームを実装するアクションを作成します (トリガーがトリガーされたときに、特定のユーザーにアラームを送信します)
ここに画像の説明を挿入します
アクションの定義: トリガーを使用します。 トリガー、定義ここで使用するのは、nginx の実行状況を監視するために以前に作成したトリガーです。
ここに画像の説明を挿入します
操作の定義: アクションがトリガーされると、設定された操作が実行されます
ここに画像の説明を挿入します
ここに画像の説明を挿入します
。送信されるメッセージの内容:
デフォルトの受信者: Fault {TRIGGER.STATUS}、サーバー: {HOSTNAME1} 発生回数: {TRIGGER.NAME} Fault!
デフォルトのメッセージ:
アラームホスト: {HOSTNAME1}
アラーム時刻: {EVENT.DATE} {EVENT.TIME}
アラームレベル: {TRIGGER.SEVERITY}
アラーム情報: {TRIGGER.NAME}
アラーム項目: {TRIGGER.KEY1}
問題の詳細: {ITEM.NAME} :{ITEM.VALUE}
現在のステータス:{TRIGGER.STATUS}:{ITEM.VALUE1}
イベント ID:{EVENT.ID}

11. 検証
トリガーがトリガーされると、Enterprise WeChat はアラーム メッセージを受信します
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_44178770/article/details/124723021