主要分两部分进行:

  • 注册企业微信,自建应用,获取与发送消息相关的信息;
  • 编写调用微信API脚本(bash),配置Nagios微信报警;

一、企业微信

  1、注册企业微信:https://work.weixin.qq.com/,登录后在“我的企业”找到CorpID

  2、创建应用,获取应用里,AgentId,Secret

  

  3、在“通讯录”里,查看需要接受报警的部门id或者成员账号(非昵称)

二、服务器端配置

  1、编写调用微信API脚本(bash)命名为set_to_weixin.sh,放在Nagios插件目录下,默认:/usr/local/nagios/libexec,添加可执行权限

 1 #!/bin/bash
 2 get_access_token () {
 3 curl -s https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=CorpID\&corpsecret=Secret >/tmp/$$.txt
 4 access_token=`awk -F "\"" '{print $10}' /tmp/$$.txt`
 5 }
 6
 7 sed_to_weixin () {
 8 curl https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$access_token -d  "{ \
 9    \"touser\": \"xxxxxx\", \  dashuju178.com dongfan178.com
10    \"msgtype\": \"text\", \
11    \"agentid\": 1000000, \
12    \"text\": { \
13        \"content\": \"$1\" \
14    }, \
15    \"safe\":\"0\" \
16 }"
17 }
18
19 main () {
20 get_access_token
21 sed_to_weixin "$*"
22 }
23
24 main "$*"

  注:脚本第3行,替换为自己的CorpID和Secret;

    脚本第9行,替换为自己的成员账号;或者改为toparty后面接部门id;

    脚本第11行,替换为自己的AgentId;

  2、修改commands.cfg,在末尾添加如下配置

1 # For weixin
2 define command{
3 command_name notify-host-by-weixin
4 command_line /usr/local/nagios/libexec/set_to_weixin.sh "host\n-@@-$NOTIFICATIONTYPE$-@@-$HOSTNAME$-@@-$HOSTSTATE$-@@-$HOSTADDRESS$-@@-$HOSTOUTPUT$-@@-$CONTACTALIAS$"
5 }
6 define command{
7 command_name notify-service-by-weixin
8 command_line /usr/local/nagios/libexec/set_to_weixin.sh "service\n-@@-$NOTIFICATIONTYPE$-@@-$SERVICEDESC$-@@-$HOSTALIAS$-@@-$HOSTADDRESS$-@@-$SERVICESTATE$-@@-$SERVICEOUTPUT$-@@-$CONTACTALIAS$"
9 }

  3、修改templates.cfg,在contact名为generic-contact的模板里修改如下两行

1 service_notification_commands   notify-service-by-email,notify-service-by-weixin
2 host_notification_commands      notify-host-by-email,notify-host-by-weixin

  4、重启Nagios

  [root@nagios ~]# /etc/init.d/nagios reload

三、测试

  1、登录Nagios,点击hosts或者services,点击,发送当前通知

  2、登陆企业微信客户端,查看是否收到报警消息。

Nagios通过企业微信报警的更多相关文章

  1. Prometheus(五):Prometheus+Alertmanager 配置企业微信报警

    此处默认已安装Prometheus服务,服务地址:192.168.56.200  一.设置企业微信 1.1.企业微信注册(已有企业微信账号请跳过) 企业微信注册地址:https://work.weix ...

  2. Prometheus 企业微信报警/inhibit抑制 /静默(二)

    创建企业微信应用 注册企业微信:访问https://work.weixin.qq.com/,注册企业,随便填,不需要认证 创建应用 创建告警配置 vim /usr/local/prometheus-2 ...

  3. Zabbix4.2.0使用Python连接企业微信报警

    目录 1. 配置企业微信 2. 脚本配置 2.1 安装python依赖的库 2.2 编写脚本 2. 搭建FTP 3. 配置Zabbix监控FTP 3.1 添加FTP模板 3.2 添加报警媒介 3.3 ...

  4. 配置zabbix通过微信报警企业微信报警

    如今势态: 报警的方式可谓是八仙过海各显神通,如电话报警,短信报警,邮件报警,QQ报警,微信报警等等. 电话报警:一般都是使用别的平台的工具,平台给你提供一个接口供你使用,大多数为限量收费款 短信报警 ...

  5. zabbix企业微信报警实现

    企业微信配置 # 注册 企业微信注册地址:https://work.weixin.qq.com 笔者注册的企业微信名称为 5iik # 配置 # 在主干5iik(企业名称)下添加子部门(监控组),并将 ...

  6. zabbix配置企业微信报警

    +++++++++++++++++++++++++++++++++++++++++ 1. 工作中最长使用的就是微信,普及,开源,而且免费!!! 2. 在企业微信中要记录的值: · 部门id · 企业i ...

  7. Zabbix 3.0 配置企业微信报警(注册---测试)

    一.申请企业微信 1.登录企业微信官网,点击企业注册 二.配置企业微信 1.邀请管理员使用企业微信,如果有多个人直接添加新成员 2.管理员收到邀请,下载手机版企业微信,使用微信号登陆即可 3.创建应用 ...

  8. Zabbix4.0报警配置-企业微信报警

    一:前期准备 1.1:企业号注册 https://qy.weixin.qq.com/  微信调用接口说明 http://qydev.weixin.qq.com/wiki/index.php?title ...

  9. Zabbix 3.0 配置企业微信报警(配置zabbix-web)

    一.添加报警媒体类型 Name:自定义 Type:选择script Scripts name:填写脚本名称 Script parameters:脚本参数 --corpid=XXX --corpsecr ...

随机推荐

  1. python魔法方法大全

    1.python魔法方法详解: python魔法方法是可以修改重载的,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而 ...

  2. 《杜增强讲Unity之Tanks坦克大战》2-场景设置

    2  场景设置 2.1 本节效果预览   2.2 项目目录设置 点击Project面板的Create按钮,在根目录下面新建wm文件夹   Wm文件夹用于存放我们自己生成的Prefab和脚本等其他资源, ...

  3. Flink BLOB架构

    Flink中支持的BLOB文件类型 jar包 被user classloader使用的jar包 高负荷RPC消息 1. RPC消息长度超出了akka.framesize的大小 2. 在HA摸式中,利用 ...

  4. SparkRDD编程实战

    通过spark实现点击流日志分析案例 1. 访问的pv package cn.itcast import org.apache.spark.rdd.RDD import org.apache.spar ...

  5. DenseNet——Densely Connected Convolutional Networks

    1. 摘要 传统的 L 层神经网络只有 L 个连接,DenseNet 的结构则有 L(L+1)/2 个连接,每一层都和前面的所有层进行连接,所以称之为密集连接的网络. 针对每一层网络,其前面所有层的特 ...

  6. dvwa——命令注入&文件包含

    命令注入 commond_injection 源码.分析.payload: low: <?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input ...

  7. Redis Jedis简介

    Redis是一种基于内存类型的数据存储工具 Jedis是一个用java写的Redis数据库操作的客户端,通过Jedis,可以很方便的对redis数据库进行操作.Jedis通过Jedis Pool进行R ...

  8. md5sum命令详解

    基础命令学习目录首页 原文链接:https://blog.csdn.net/cbbbc/article/details/48563023 前言 在网络传输.设备之间转存.复制大文件等时,可能会出现传输 ...

  9. 投稿007期|令人震惊到发指的PyObject对象代码设计之美

    前言 最近在重温经典漫画<SlamDunk>的全国大赛篇,其中的一个情形可以很好的诠释虎躯一震这个状态——当樱木看到流川枫一次高难度投篮时内心的感受:“经过两万次射球练习后,樱木首次明白到 ...

  10. T&F 圆桌:儿童智能玩具离我们还有多远?

    “女人和孩子的钱是最好挣的”,这句经典的名句被很多商家奉为信条,这在现实生活中也得到了很好的印证. 各种步行街.商业街.Mall 干的做多的事情就是:围绕着女人和孩子打造创造消费点.步行街.商业街上各 ...