linux 微信告警消息secret,Linux----------zabbix监控-微信、钉钉告警

[toc]

一,zabbix配置微信告警

写先声明:本人完全python小白,脚本内容有许多看不懂,这都不影响接下来的操作,写这个就是为了复习记忆,也多谢官网推荐的,用于WeChat报警的python脚本,主要是图文教程,配合作者火星小刘的README和脚本,更容易学习. https://blog.csdn.net/wenhs5479/article/details/90514159 注意事项等,作者火星小刘的README中有,下面开始教程正文

1.1 设置微信企业号

1.2.1 设置微信通讯录

登录后台

134d541ee1b609408513501d7efbfaf3.png

通讯录中添加部门和人员

925a0ec96adbf567fdcadb76ef1672a1.png

记录部门ID

f2f6a2c74b76243517c749861f8286d0.png

1.2.2 创建新的应用

effac85deb32651e4aa855a2fb124323.png

创建应用

b9c1b4c3072bb9717d613b0e9ead0f6e.png

设置应用接受人

2880034b6b1be0c96b65839ccb3cf228.png

查看监控服务,记录应用ID

1de2b421564a43b9aede80f03c752411.png

1.2.3 应用权限管理

6ec01b0a2917c9d805097f3df991875a.png

1.2.4 收集微信相关信息

1.记录应用ID (点击应用于小程序-监控服务)

2.记录CorpID与Secret (点击我的企业-企业信息)

3.记录子部门(运维部)ID (点击通讯录-运维部-设置)

1.3 微信脚本

1.3.1 安装依赖

(一)

yum -y install python-pip python-wheel python-setuptools

yum upgrade python-setuptools

pip install requests

pip install --upgrade requests

(二)

wget https://pypi.python.org/packages/c3/38/d95ddb6cc8558930600be088e174a2152261a1e0708a18bf91b5b8c90b22/requests-2.18.3.tar.gz

tar zxvf requests-2.18.3.tar.gz

cd requests-2.18.3

python setup.py build

python setup.py install

1.3.2 下载安装脚本

git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git

cp Zabbix-Alert-WeChat/wechat.py /etc/zabbix/alertscripts

chmod +x /usr/local/etc/scripts/wechat.py

chown zabbix.zabbix /usr/local/etc/scripts/wechat.py

1.3.3 填写微信脚本参数

#!/usr/bin/python2.7

#_*_coding:utf-8 _*_

#auther:火星小刘(出自这位大佬的GitHub库,链接在开头)

import requests,sys,json

import urllib3

urllib3.disable_warnings()

reload(sys)

sys.setdefaultencoding('utf-8')

def GetTokenFromServer(Corpid,Secret):

Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"

Data = {

"corpid":Corpid,

"corpsecret":Secret

}

r = requests.get(url=Url,params=Data,verify=False)

print(r.json())

if r.json()['errcode'] != 0:

return False

else:

Token = r.json()['access_token']

file = open('/tmp/zabbix_wechat_config.json', 'w')

file.write(r.text)

file.close()

return Token

def SendMessage(User,Agentid,Subject,Content):

try:

file = open('/tmp/zabbix_wechat_config.json', 'r')

Token = json.load(file)['access_token']

file.close()

except:

Token = GetTokenFromServer(Corpid, Secret)

n = 0

Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token

Data = {

"touser": User, # 企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。

"totag": Tagid, # 企业号中的标签id,群发使用(推荐)

"toparty": Partyid, # 企业号中的部门id,群发时使用。

"msgtype": "text", # 消息类型。

"agentid": Agentid, # 企业号中的应用id。

"text": {

"content": Subject + '\n' + Content

},

"safe": "0"

}

r = requests.post(url=Url,data=json.dumps(Data),verify=False)

while r.json()['errcode'] != 0 and n < 4:

n+=1

Token = GetTokenFromServer(Corpid, Secret)

if Token:

Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token

r = requests.post(url=Url,data=json.dumps(Data),verify=False)

print(r.json())

return r.json()

if __name__ == '__main__':

User = sys.argv[1] # zabbix传过来的第一个参数{ALERT.SENDTO}

Subject = str(sys.argv[2]) # zabbix传过来的第二个参数{ALERT.SUBJECT}

Content = str(sys.argv[3]) # zabbix传过来的第三个参数{ALERT.MESSAGE}

Corpid = "企业Id" # CorpID是企业号的标识

Secret = "在应用里面" # Secret是管理组凭证密钥

Tagid = "zabbix" # 通讯录标签ID(这个没搞懂,随便写的通讯录标签名)

Agentid = "自己修改" # 应用ID

Partyid = "2" # 部门ID,如果是1,则是技术部,那么技术部下面的,都可以收到告警,显然不合适

Status = SendMessage(User,Agentid,Subject,Content)

print Status

1.4 添加zabbix示警媒介

5facd6c876b87e60a3cefb7e14177f0e.png

1.5 添加用户-示警媒介

收件人为微信企业号通讯录内的用户账号

91b6880638b849fedce4c9dfb7d4b39b.png

1.6 添加到动作

282e5ded857a9130c2c01939b208ee4b.png

1.7 自行测试

二、钉钉告警

2.1 配置钉钉

下载钉钉后创建群组

添加机器人实现报警

424dab257ca00ec1edc2499e9c7713b0.png

2.2 编写告警脚本

#!/usr/bin/python

# -*- coding: utf-8 -*-

import requests

import json

import sys

import os

headers = {'Content-Type': 'application/json;charset=utf-8'}

#api_url后跟告警机器人的webhook

api_url = "上图中的webhook的链接"

def msg(text):

json_text= {

"msgtype": "text",

"text": {

"content": text

},

"at": {

"atMobiles": [

"手机号" #@群里的一个人

],

"isAtAll": False #@所有人为True,

}

}

print(requests.post(api_url,json.dumps(json_text),headers=headers).content)

if __name__ == '__main__':

text = sys.argv[1]

msg(text)

//赋予执行权限

chown zabbix.zabbix ding.py

chmod +x ding.py

测试

[root@zabbix scripts]# ./ding.py 这是测试

{"errcode":0,"errmsg":"ok"}

[root@zabbix scripts]# ./ding.py 这是测试

{"errcode":0,"errmsg":"ok"}

2.3 添加示警媒介

24563cea2f74c676dbf8cab6875151b9.png

2.4 添加用户-示警媒介

和上方微信告警一样,只需要修改通知介质

2.5 添加到动作

和上方微信告警一样,只需要修改固定那几个参数

2.6 自行测试

f068f3f5127876dc53b57f9c4984595d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值