zabbix微信预警出现的问题
系统环境:centos7.3
zabbix_server: 3.0.3 3.0.6
问题描述
zabbix预警突然不能发送微信,需要修复
排查步骤
1. 检查微信企业平台应用的key是否过期,结果没过期正常使用
2. 检查zabbix日志,发现日志中压根就没有将执行的命令记录到日志中
3. 开启zabbix server日志模式问debug,观察日志,发现zabbix不会将执行脚本的步骤写入日志中。
4. 检查动作中设置是否出错,按照动作中配置信息执行脚本,发现信息是可以发送的。
5. 检查命令执行结果,发现不管对错最后返回值都为0。在不联网的情况下返回值也为0。

6. 定位到问题,修改微信接口脚本,脚本为网上复制的,太简单了懒得写。
#!/bin/bash
CropID='aaaaaaaaaaaaa'
Secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret" #get acccess_token
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken" function body {
local int AppID=xxx
local UserID="@all"
local PartyID=8
local Msg=$(echo "$@")
printf '{\n'
printf '\t"touser": "'"$UserID"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'" $AppID "\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n"
printf '\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'
} /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
7. 配置完成后执行预警信息出现如下问题

发现执行脚本超时。测试在命令行执行时没问题的。最后断开网络执行,无法访问微信接口出现超时。定位到问题,由于zabbix执行脚本时,使用的环境变量并非系统登录时设置的环境变量。
在脚本中加入http代理。成功触发报警。
export http_proxy="http://xxxxxx/"
export https_proxy=https://xxxxxx/
总结
1. 由于使用的是其他网友编译的脚本,并不知道执行步骤及脚本内容无法定位问题出现点。
2. zabbix在执行动作时,如动作是脚本不记录到日志中。
3. zabbix在触发执行脚本动作时,使用的环境变量并非是包含系统自定义环境变量,所需要的需要自行设置。
zabbix微信预警出现的问题的更多相关文章
- zabbix 微信告警配置
作者信息 邮箱:sijiayong000@163.com Q Q:601566386 Zabbix 微信告警 摘要:Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是 ...
- Zabbix微信告警
Zabbix微信告警 摘要 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信 ...
- Zabbix微信报警脚本及写触发记录
一.Zabbix微信报警 默认路径:/usr/lib/zabbix/scripts/weixin.py #!/usr/bin/python # -*- coding: utf-8 -*- import ...
- zabbix微信告警实践
首先你得有个企业号!!!具体操作步骤可以参考http://itnihao.blog.51cto.com/1741976/1733245,里面写的很详细就不重复了. 微信公众号注册并配置完成后,还需要让 ...
- zabbix微信告警(虚拟机脚本测试成功,zabbix上收不到信息)
前言: 使用zabbix直接运行脚本又可以正常接收.但是登录zabbix web界面,测试! 动作显示已送达,但是微信并没有收到信息! 解决: 添加脚本参数,因为不添加脚本参数,调用不了你这个脚本 ...
- zabbix 微信报警
http://blog.csdn.net/wh211212/article/details/52735236 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越 ...
- Zabbix微信个人账号告警
前言: 最近研究zabbix告警,网上看了帖子有各式各样姿势:电话语音告警,邮件告警,短信告警,微信公众号告警等等等..姿势五花八门,真是纠结. 电话语音告警,短信告警首先pass 前者花钱,后者通过 ...
- Zabbix 微信报警Python版(带监控项波动图片)
#!/usr/bin/python # -*- coding: UTF- -*- #Function: 微信报警python版(带波动图) #Environment: python import ur ...
- Zabbix微信报警触发
(1) 企业应用-创建应用 1.除了对个人添加微信报警之外,还可以添加不同管理组,接受同一个应用推送的消息, 成员账号,组织部门ID,应用Agent ID,CorpID和Secret, ...
随机推荐
- Golang的panic和recover
panic 关键字panic的作用是制造一次宕机,宕机就代表程序运行终止,但是已经“生效”的延迟函数仍会执行(即已经压入栈的defer延迟函数,panic之前的). 为什么要制造宕机呢?是因为宕机不容 ...
- linux系统centOS7下搭建redis集群中ruby版本过低问题的解决方法
问题描述: 在Centos7中,通过yum安装ruby的版本是2.0.0,但是如果有些应用需要高版本的ruby环境,比如2.2,2.3,2.4... 那就有点麻烦了,譬如:我准备使用redis官方给的 ...
- 当返回值为json字符串时 如何获得其中的json数组
json数据格式 {"IPPORT":"192.168.0.12","time":"2017-04-05 09:12:06&quo ...
- 解决从pip上下载的最新flask版本不能运行flaskr和最新特性的问题
由于在测试flask的单元测试.所以准备弄个环境,查询官方文档发现flask源码里面有一个example文件夹里面有个flaskr应用 可供测试 看了一下readme文档,大致是这样 / Flaskr ...
- delphi 通过事务插入数据
orsn1.StartTransaction; try qry1.Sql.Clear; qry1.Sql.Text:=' select * from log '; qry1.Open; qry1.In ...
- Bootstrap手风琴效果
前面的话 Bootstrap 框架中 Collapse插件(折叠)其实就是我们常见的手风琴效果.当单击一个触发元素时,在另外一个可折叠区域进行显示或隐藏,再次单击时可以反转显示状态.经典的场景是多个折 ...
- caffe运行错误: im2col.cu:61] Check failed: error == cudaSuccess (8 vs. 0) invalid device function
错误: im2col.cu:61] Check failed: error == cudaSuccess (8 vs. 0) invalid device function 原因:由于Makefil ...
- python 模块之-configparser
python 模块configparser 配置文件模块 import configparser config = configparser.ConfigParser() config[&q ...
- BZOJ4650 NOI2016优秀的拆分(后缀数组)
显然只要求出以每个位置开始的AA串数量就可以了,将其和反串同位置的结果乘一下,加起来就是答案.考虑对每种长度的字符串计数.若当前考虑的A串长度为x,我们每隔x个字符设一个关键点,求出相邻两关键点的后缀 ...
- Python 面向对象 - 内置类方法
内置方法 内置方法 说明 __init__(self,...) 初始化对象,在创建新对象时调用 __del__(self) 释放对象,在对象被删除之前调用 __new__(cls,*ar ...