(九)Zabbix_监控报警无法通过微信发送信息

(九)Zabbix监控报警无法通过微信发送信息

背景:通过脚本测试脚本正常发送信息,zabbix服务器web端也能够正常报警并执行动作。

思路:查看日志

一、通过动作日志查看错误信息,分3中情况

1、第一种情况脚本无参数

(1)下图是web端的动作日志报警

(2)下图是脚本测试报警

根据上2图发现报错的信息一样,这样不难发现是脚本没有添加参数造成的(此脚本也是从网上下载未做相应的更改)

如下脚本内容,供参考:

#!/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":"名称",

"toparty":"1",

"msgtype":"text",

"agentid":"1000002",

"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')

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 =  'ww917369a0329fb487'

corpsecret = 'jf5EqJGlQQTQvkdynDrz24vbhlsvQXfVJp9B2vImQKA'

accesstoken = gettoken(corpid,corpsecret)

senddata(accesstoken,user,subject,content)

2、第二种情况脚本只有一个参数

(1)脚本测试如下:

[[email protected] alertscripts]# ./bjhweixin.py test

Traceback (most recent call last):

File "./bjhweixin.py", line 51, in <module>

subject = str(sys.argv[2])

IndexError: list index out of range

3、第三种情况脚本只有二个参数

(1)脚本测试如下:

[[email protected] alertscripts]# ./bjhweixin.py test test

Traceback (most recent call last):

File "./bjhweixin.py", line 52, in <module>

content = str(sys.argv[3])

IndexError: list index out of range

二、操作

1、为报警媒介类型添加脚本参数

三、总结

虽然最后发现解决此问题很简单就是忘了添加脚本参数,但是对初学者还是比较生疏,特别对python语言不是很了解的同学。仅供参考。

时间: 2024-10-09 00:08:40

(九)Zabbix_监控报警无法通过微信发送信息的相关文章

在程序中添加监控-给自己的微信发送特定消息

# -*- coding: utf-8 -*- # @Author : Felix Wang # @time : 2018/7/19 11:15 def toMyWechat(content): import itchat itchat.auto_login(hotReload=True) itchat.send(content, toUserName='filehelper') toMyWechat('程序运行出错!') toMyWechat('爬虫运行完毕!') 原文地址:https://w

php 用户向微信发送信息

1:制作微信菜单栏 <?phpheader("Content-type: text/html; charset=utf-8");function request_post($url = '', $param = ''){    if (empty($url) || empty($param)) {        return false;    }    $postUrl = $url;    $curlPost = $param;    $ch = curl_init(); /

Python-WXPY实现微信监控报警

概述: 本文主要分享一下博主在学习wxpy 的过程中开发的一个小程序.博主在最近有一个监控报警的需求需要完成,然后刚好在学习wxpy 这个东西,因此很巧妙的将工作和学习联系在一起. 博文中主要使用到的技术设计到Python,Redis,以及Java.涉及到的技术看似很多,但是主要的语言是基于Python进行开发的. 架构涉及主要采用了 生产者消费者的涉及模式,使用Redis作为消息队列进行解耦操作. 主要架构涉及如下: 接下来开始介绍一下程序的实现过程,主要讲解wxpy -> python.re

九爷带你了解 通过微信企业号发送 zabbix 报警

最近飞信不能用了-zabbix报警无法收到短信 - 其实搭建的方法很简单,微信官网的API文档也非常详细了.只是之前网上没有找到具体的文档..自己饶了不少弯路.. 刚开始用微信公众平台试了下..有一个非官网的sdk..可以模拟登陆..但是需要关注的用户48小时内和公众号有过互动-这个显然是不行的-不然每天早上起床还得记得往自己的公众号上面发个消息 -..才能收到发出来的报警消息. 相关链接:http://wechat-python-sdk.readthedocs.org/zh_CN/master

合nagios+cacti+微信、飞信实现网络监控报警

系统环境:rhel6.3         selinux disabled  和 iptables     整合cacti和nagios是利用了cacti的一个插件nagiosfor cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios的结果展示出来. 一.nagios监控本地主机 注释掉localhost.cfg,新增加hosts.cfg,services.cfg [[email protected]

使用shell脚本监控少量服务器并发送微信告警信息

01. 概括 1.0 脚本更新地址Git更新地址:shell_monitor_script.sh文章原文地址:使用shell脚本监控少量服务器并发送微信告警信息 1.1 前提:平台系统:linux系统下接收信息:微信企业号 1.2 脚本说明需要修改微信接口脚本对应参数的修改:包括IP,告警阈值等 1.3 脚本使用该脚本监控包括Disk.CPU.MEM.LOAD等主机资源,以及docker服务和docker容器.将该脚本附件假定放于:/home/mai/.check_host.sh.那么在定时任务

alertmanager报警添加企业微信监控报警

Prometheus机器:172.27.143.155alertmanager机器:172.27.143.150 一.上面配置了Prometheus和grafana服务在155机器上面接下来配置 alermanager服务1.wget https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertmanager-0.20.0.linux-amd64.tar.gz 2.tar zxf alertmanager-0

监控报警开发之zabbix语音电话报警方案联想

前言: 我相信大家的公司都是有noc的成员,noc是在做什么的,现在基本定义为盯着监控,严重的告警会给你打电话,催你解决,并把这些事情定期做总结. 一般这种的工作都是指派外包人员做的. 我现在已经开发了一套报警的平台接口,供应公司api层面的邮件接口调用,其实他现在面向的最大的客户还是zabbix,不知道最近抽什么风,邮件的接收量比上个月都了2w封,现在已经到9w了. 有朋友说,为何不做一些修剪,因公司现在用的zabbix1.8 ,而且二次开发的度有些大,避免不必要的错误,尽量都是在外围层面逛游

Zabbix对客户端监控+报警

环境说明: node1:zabbix服务器 IP地址:172.16.4.100 node2:zabbix客户端 IP地址:172.16.4.101 配置环境:监控node2主机的网卡流量(流入.流入),以及报警和报警升级 文章概览 1.使用zabbix监控客户端主机    1.1 客户端设置    1.2 定义主机组    1.3 定义主机    1.4 定义应用集    1.5 定义监控项目    1.6 定义出图2.报警设置    2.1 触发器    2.2 示警媒介Medias: