zabbix微信报警

目录

一、配置企业微信

二、微信关联企业微信接收报警内容

三、配置zabbix_server

四、Web页面配置


一、配置企业微信

1.注册企业微信

企业微信注册地址:

https://work.weixin.qq.com/https://work.weixin.qq.com/

使用微信报警需要先注册企业微信,填写注册信息即可

2.注册完成后,创建总部门名称,然后在总部门名称里创建子部门,加入成员

 3.创建应用,通过这个应用发送报警信息

 

4.收集信息,后边脚本里需要使用

① AgentId对应脚本里的agentid

② Secret对应脚本里的corpsecret

③ 账号对应脚本里的touser

④ 部门ID对应脚本里的toparty

⑤ 企业ID对应脚本里的corpid

 

 

 

 二、微信关联企业微信接收报警内容

扫描二维码关注我的企业接收报警信息

 

 三、配置zabbix_server

1.上传软件包

链接: https://pan.baidu.com/s/18mgYXNGAJItFDoQcOnNdLg?pwd=ut31

提取码: ut31

[root@localhost alertscripts]# ls
simplejson-3.8.2.tar.gz
[root@localhost alertscripts]#
[root@zabbix alertscripts]# tar zxf simplejson-3.8.2.tar.gz
[root@zabbix alertscripts]# cd simplejson-3.8.2/
[root@zabbix simplejson-3.8.2]# python setup.py build && python setup.py install
#这个命令会报一个错,不用管它
[root@zabbix simplejson-3.8.2]# cd ..

2.准备脚本发送消息到企业微信

以下代码来源网络,我做了简单的修改,如有侵权,请联系我删除

[root@zabbix alertscripts]# vim zabbix.py
#!/usr/bin/python
#_*_coding:utf-8 _*_


import urllib,urllib2
import json
import sys
import simplejson

reload(sys)
sys.setdefaultencoding('utf-8')


def gettoken(corpid,corpsecret):
    gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
#    print  gettoken_url
    try:
        token_file = urllib2.urlopen(gettoken_url)
    except urllib2.HTTPError as e:
        print e.code
        print e.read().decode("utf8")
        sys.exit()
    token_data = token_file.read().decode('utf-8')
    token_json = json.loads(token_data)
    token_json.keys()
    token = token_json['access_token']
    return token

def senddata(access_token,user,subject,content):

    send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    send_values = {
        "touser":'Zhangxin',    #企业号中的用户帐号
        "toparty":"2",    #企业号中的部门id。
        "msgtype":"text",
        "agentid":"1000007",    #企业号中的应用id。
        "text":{
            "content":subject + '\n' + content
           },
        "safe":"0"
        }
#    send_data = json.dumps(send_values, ensure_ascii=False)
    send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
    print(send_data)
    send_request = urllib2.Request(send_url, send_data)
    response = json.loads(urllib2.urlopen(send_request).read())
    print str(response)


if __name__ == '__main__':
    user = str(sys.argv[1])
    subject = str(sys.argv[2])
    content = str(sys.argv[3])
    corpid =  'wwf31f289e42649a46'   #企业号的标识ID
    corpsecret = '3CtjHoP8QuCkMpAmrIKkLiuCZMZ0ihSpWMSKzHANgxiN'  #应用程序的密钥
    accesstoken = gettoken(corpid,corpsecret)
    senddata(accesstoken,user,subject,content)

 注意脚本存放位置!!(之前因为位置不对找了半小时原因,注:修改配置文件里的媒介报警位置不会生效!!!)

[root@localhost alertscripts]# egrep -v '^$|^#' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBName=zabbix
DBUser=root
DBPassword=root
StartPollers=30
StartPingers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=128M
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts    #这个目录存放报警脚本
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/sbin/fping
LogSlowQueries=3000
JavaGateway=10.0.0.33
JavaGatewayPort=10052
StartJavaPollers=5
[root@localhost alertscripts]#
#如位置不对,移动报警脚本至脚本目录
[root@localhost alertscripts]#mv zabbix.py /usr/lib/zabbix/alertscripts/

 可以手动测试

[root@zabbix alertscripts]# chmod +x zabbix.py
[root@zabbix alertscripts]# ./zabbix.py 1 zabbix hello
{"text": {"content": "zabbix\nhello"}, "safe": "0", "msgtype": "zabbix", "touser": "ZhangXin", "agentid": "1000007", "toparty": "2"}
{u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}

看到返回值是OK,警告可以忽略

四、Web页面配置

1.创建报警媒介

管理--报警媒介类型--创建报警媒介

类型选择脚本

脚本名称和server脚本名称保持一致

参数:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

 添加完参数之后,把启用打开,点击更新

 创建成功

 2.定义收件人,把媒介贴到用户上

管理--用户--Admin

 类型选择刚写入的媒介报警名称,收件人写部门成员的账号,点击更新

 

 

 添加完成,更新

 3.动作配置

配置--动作--Trigger actions--创建动作

 添加条件

 

 添加操作

主题:

{TRIGGER.STATUS}: {TRIGGER.NAME}

消息:     

告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

 

 添加恢复消息细节

主题:

{TRIGGER.STATUS}: {TRIGGER.NAME}

消息:

告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

 

操作完以上之后,不要忘记点击更新! 

 

更新操作添不添加都可以

4.测试

现在必须有被监控的主机,已经添加进了监控的zabbix_agentd主机

[root@localhost ~]# systemctl stop zabbix-agent.service

 等待几分钟,在监测的仪表盘里将会看到错误提示

 

 再看企业微信,也已经发过来了。(不用管内容 这是我之前测试的,电脑登录没有记录了。内容可自行添加设置。)

 

 回到被刚刚关掉agentd的主机上,再开启

[root@localhost ~]# systemctl start zabbix-agent.service

 可以看到恢复操作已经有提示了

 

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
Zabbix 是一个企业级分布式开源监控解决方案。 Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。 Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。 Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使用。主要讲解8个主题:1.     通过SNMP防火墙设备的监控2.     通过SNMP交换机设备的监控3.     对Windows的性能、服务、用户登陆监控4.     对Linux的性能、用户登陆情况进行监控5.     生产中常用的服务进行监控,如nginx,httpd,mysql,ceph,bind等6.     Zabbix分布式的部署和监控7.     常见的zabbix三种报警方式8.     使用grafana对zabbix中的数据进行展示

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ziy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值