携手创作,共同成长!这是我参加「掘金日新方案 8 月更文应战」的第4天,点击查看活动详情
zabbix运用企业微信监控报警
1.注册企业微信
运用企业微信报警需求先注册企业微信
企业微信地址:https://work.weixin.qq.com/
填写注册信息即可
注册完成
2.创立报警机器人
2.1.创立运用
运用办理—运用—创立运用
2.2.编辑运用信息
设置机器人log、描绘信息、运用部分
2.3.创立成功
最主要的就是这两个信息
AgentId 1000002
Secret iV9ljCjBVm2BvFWd-t0rZGTakxaH2izz7degTA41naI
3.微信关联企业微信接纳报警内容
点击我的企业—微信插件—找到二维码扫描重视即可接纳企业微信报警信息
扫描二维码重视我的企业接纳报警信息
手机微信查看
3.命令行测验发现微信音讯
3.1.获取企业ID
点击我的企业—企业信息—企业ID
ww48f74fc8ed3a07ba
3.2.获取运用ID和暗码
点击运用办理—找到对应的运用—仿制AgentId、Secret的值
AgentId 1000002
Secret iV9ljCjBVm2BvFWd-t0rZGTakxaH2izz7degTA41naI
3.3.预备Python脚本产生音讯至企业微信
将前两步预备好的企业ID、运用ID、运用暗码等信息填入到Python脚本中
每次运用的时候只需求修正17、18、19行即可
corpid=’xx’ #企业ID appsecret=’xx’ #运用暗码 agentid=xx #运用ID
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#comment: zabbix接入微信报警脚本
import requests
import sys
import os
import json
import logging
logging.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='ww48f74fc8ed3a07ba' #企业ID
appsecret='iV9ljCjBVm2BvFWd-t0rZGTakxaH2izz7degTA41naI' #secret
agentid=1000002 #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=' + accesstoken
touser=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)
3.4.将脚本上传至zabbix-server并测验产生报警内容
1.预备Python环境装置所依赖的模块
装置Python2-pip时依赖epel源提前预备好
[root@zabbix-server ~]# yum -y install python2-pip
2.去清华源找到对应的加速器并装置短少的模块
这个地址有加速器的运用方法https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
[root@zabbix-server ~]# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple request
3.命令行测验并产生内容到微信
[root@zabbix-server ~]# python weixin.py JiangXiaoLong 'ceshi' 'ceshi'
语法格式:python 脚本名 要产生给谁 '标题' '内容'
要产生给谁能够在企业微信部分中找到要产生的人点进去即可看到账号信息
微信查看音讯有没有收到
4.zabbix完成企业微信报警
4.1报警内容
报警内容
产生的
问题产生
当前状况: 未解决❎️
告警主机: {HOSTNAME1}
告警时刻: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
事情ID: {EVENT.ID}
康复的
问题康复
当前状况: 已处理✅
告警主机: {HOSTNAME1}
告警时刻: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
事情ID: {EVENT.ID}
4.2.删去命令行测验生成的报警日志
由于我们测验是以root身份测验的,如果不删去,zabbix报警的时候则无法报警,会提示无权限讲报警信息写入到日志
[root@zabbix-server ~]# rm -rf /tmp/weixin.log
4.3.将报警脚本移动至zabbix报警脚本目录中
1.获取报警脚本寄存路径
[root@zabbix-server ~]# egrep -v '^$|^#' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=30
AlertScriptsPath=/usr/lib/zabbix/alertscripts #这个目录寄存报警脚本
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
2.移动报警脚本至脚本目录
[root@zabbix-server ~]# mv weixin.py /usr/lib/zabbix/alertscripts/
4.4.新建微信报警前言-界说发件人
点击办理—报警前言类型—新增报警前言—填写名称—类型选择脚本—增加三个脚本参数
{ALERT.SENDTO} //发件人
{ALERT.SUBJECT} //标题
{ALERT.MESSAGE} //内容
创立成功
4.5.界说收件人
点击用户—报警前言—增加—类型选择微信报警—收件人能够从企业微信上获取—增加—更新
4.6.停用之前的邮箱报警
4.7.触发主机宕机告警并查收报警音讯
随意找一台监控主机执行poweroff
[root@192_168_81_220 ~]# poweroff
仪表盘现已报警
动作日志中提示现已送达
查看问题产生报警音讯
查看问题康复报警音讯
4.8.触发终端打开数并查收报警音讯
这儿能够看到192.168.81.230这台机器的最大打开终端数量是3个,超越3个就会报警 现已报警 查看报警内容