zabbix 4.4 源码搭建(一)
zabbix-agent 自动发现 (二)
zabbix自定义监控 (三)
zabbix 微信告警 (四)
zabbix 4.4分布式监控 (五)
-微信报警
-注册企业微信
- 企业号注册地址:https://qy.weixin.qq.com/填写企业注册信息,个人也可以申请,不进行认证即可进行告警测试。
-创建应用
-获取各接口值
--agentid=1000003
--corpsecret=w6zg8KEWsJrYy5ihlMjNGxLDdxxxLNH5HMdxxxx
--corpid=wwf9723d00046xxxx
--user=100001
--corpid= 企业里面的id(点击我的企业,最下面可以看到)
--corpsecret= 企业应用Secret(点击报警应用可以看到)
-msg= 内容
-user=应用可见用户的账号(是唯一标识账号,不是姓名)
--agentid=应用id(点击报警应用可以看到)
-配置微信脚本
#上传微信脚本到zabbix_server端alertscripts/
[root@node2 ~]# mv weixin_alert /usr/local/zabbix/share/zabbix/alertscripts/
[root@node2 ~]# chmod +x /usr/local/zabbix/share/zabbix/alertscripts/weixin_alert
#测试脚本
[root@node2 ~]# /usr/local/zabbix/share/zabbix/alertscripts/weixin_alert --corpid=wwf9723d00046xxxx --corpsecret=w6zg8KEWsJrYy5ihlMjNGxLDdxxxLNH5HMdxxxx --msg="告警测试" --user=100001 --agentid=100000303
{"errcode":0,"errmsg":"ok","invaliduser":""}
#执行完手机企业微信中会有消息
-web界面创建报警媒介
-用户绑定媒介
-告警测试
#修改redis动作改为微信告警
-钉钉报警
yum install python-pip
pip install requests #必须装不然报错
pip install --upgrade pip
#!/usr/bin/python
#coding:utf-8
import requests,json,sys,os,datetime
# 机器人的Webhook地址
webhook="https://oapi.dingtalk.com/robot/send?access_token=c0393f5a9c255da6a885512356d65b4d52433
f74965f6dc57de1b94435xxxxxx"
user=sys.argv[1]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
# 在web端用户绑定媒介中通过指定用户注册是的手机号,通知指定人员
user
],
"isAtAll": False
# 设置为1,则@所有人
# "isAtAll": 1
}
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/var/log/zabbixsrv/dingding.log"):
f=open("/var/log/zabbixsrv/dingding.log","a+")
else:
f=open("/var/log/zabbixsrv/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n"
+ str(text))
f.close()
测试语句
mkdir /var/log/zabbixsrv #如果报日志错误请创建目录
./dingding_alert.py xxx alert “故障: redis down 测试信息,请忽略!”web参数
{ALERT.SENDTO} #发送的用户
{ALERT.SUBJECT} #发送的主题
{ALERT.MESSAGE} #发送的内容