nagios微信报警(版本V2)

随着移动互联网技术的高速发展,微信被大家广泛使用,被应用到很多领域。本文将介绍如何让监控神器集成微信报警。

如果要使用微信报警需要用到微信的公众平台。这里写了一个模拟微信公众平台登陆的接口。

只要关注你注册的这个公众号,出现在好友列表中,Nagios就可以发送告警信息到你指定的微信帐号。

微信公众平台的开发模式下有订阅号和服务号,如果升级到服务号当然是方便多了,但不幸的是微信升级到服务号要公司的营业执照代码之类的东东,制造了很多麻烦。模拟网页发送是迫不得而为之^_^(其实使用腾讯提供微信API当然是最好了)。

下面是具体的操作步骤

一.注册微信公众平台。注册地址 https://mp.weixin.qq.com/

二.下载nodejs程序,在程序config/config.coffee中填写刚注册的公众号和密码。

node_wx

本程序有两个功能:1.是模拟登陆 2.是获取好友列表

1.获取好友信息

http://IP:8080/wx/friend

  • {
    • id: 5726745,
    • nick_name: "user1",
    • remark_name: "",
    • group_id: 0
  • }, {
    • id: 618272308,
    • nick_name: "user2",
    • remark_name: "",
    • group_id: 0
  • }, {
    • id: 2026561000,
    • nick_name: "user3",
    • remark_name: "",
    • group_id: 0

}

2.安装nodejs

wget http://nodejs.org/dist/v0.10.26/node-v0.10.26-linux-x64.tar.gz

tar xvzf node-v0.10.26-linux-x64.tar.gz

cp -Rp node-v0.10.26 /usr/local/

PATH=$PATH:/usr/local/node-v0.10.26/bin

(或者用nvm安装很方便)

3.运行接口程序

cd node_wx

node . 运行nodejs程序

(可以用pm2 启用微信接口程序 pm2 start index.js 然后设置开机启动)

三.写一个调用微信接口的SHELL,在此我写了几行SHELL在这里奉上。

weixin.rar

四.Nagios的配置

1.在 objects/commands.cfg中增加如下信息

define command{command_name notify-host-by-weixin command_line /usr/bin/printf "%b" "*****ERS monitor Robot*****\n\n Notification Type: $NOTIFICATIONTYPE$\n Host: $HOSTNAME$\nState: $HOSTSTATE$\n Address: $HOSTADDRESS$\n Info: $HOSTOUTPUT$\n\n Date/Time: $LONGDATETIME$\n" >/usr/local/nagios/var/weixin.out | /usr/local/bin/weixin.sh -f $CONTACTADDRESS1$ }# 'notify-service-by-weixin' command definition define command{ command_name notify-service-by-weixin command_line /usr/bin/printf "%b" "***** ERS monitor Robot*****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" > /usr/local/nagios/var/weixin.out | /usr/local/bin/weixin.sh -f $CONTACTADDRESS1$ }

注意:command_line后面的是在一行中

2.以objects/contacts.cfg中示例信息如下:

define contact{contact_name nagiosadmin ; Short name of useralias Nagios Admin ; Full name of userservice_notification_period 24×7host_notification_period 24×7service_notification_options w,u,c,r,f,shost_notification_options d,u,r,f,sservice_notification_commands notify-host-by-email,notify-host-by-sms ,notify-service-by-weixinhost_notification_commands notify-host-by-email,notify-host-by-sms ,notify-service-by-weixinpager 134123456 ;pager numberemail abc@abc.com ;Email messageaddress1 2447905640 ;微信好友ID号}

保存重启nagios 测试一下 大功告成 !现在Nagios就可以用微信预警了

注明:笔者水平有限,有错误之处欢迎指正!

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2014-10-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构师学习

一文归纳总结分布式架构的那些事!

进入十一月,最火热的话题与期待的日子自然是双十一狂欢购物节了,作为程序员的你除了要清空自己的购物车之外,最关心的是不是双十一架构技术是如何承受亿级用户流量的冲击...

1094
来自专栏张高兴的博客

网络唤醒(WOL)全解指南:原理篇

网络唤醒(Wake-on-LAN,WOL)是一种计算机局域网唤醒技术,使局域网内处于关机或休眠状态的计算机,将状态转换成引导(Boot Loader)或运行状态...

2931
来自专栏飞雪无情的博客

Android 源码目录结构详解

这是Android2.1的源代码的目录结构,可以帮助我们研究Android的源代码。Android源代码的下载请参考官网

1422
来自专栏北京马哥教育

一网打尽当下NoSQL类型、适用场景及使用公司

对比传统关系型数据库,NoSQL有着更为复杂的分类——键值、面向文档、列存储以及图数据库。这里就带你一览NoSQL各种类型的适用场景及一些知名公司的方案选择。 ...

3585
来自专栏静下来

Discuz论坛多功能工具1.0版本发布

Discuz论坛多功能工具(Summer版本)1.0发布。 软件是集合了之前单独工具的功能,增加了发帖的功能,这样也会更加方便点吧。但是没有进过大批量的测试,可...

3844
来自专栏即时通讯技术

一文读懂高性能网络编程中的I/O模型

随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力。本文(和下篇《高性能网络编程(六):一文读懂高性能网络编程中的线程模型》)旨...

1252
来自专栏腾讯Bugly的专栏

关于移动 App H5 页面里的 JavaScript 异常捕获

自 HTML5 标准正式发布之后,其得天独厚的跨平台特性吸引了众多开发者的目光。 伴随着 HTML5 的发展,JavaScript 的重要性也在逐步增加,要说现...

5719
来自专栏杨建荣的学习笔记

由hugepage设置导致的数据库事故(r4笔记第28天)

近期客户需要希望提高业务处理能力,在现有的系统中加入几台weblogic服务器,所以需要增加以下连接数的配置,但是同时他们想对现有系统的设置一些变更,发送了一个...

3094
来自专栏张善友的专栏

通过一组RESTful API暴露CQRS系统功能

命令和查询责任分离(CQRS)是由Greg Young提出的一种将系统的读(查询)、写(命令)操作分离为两种独立子系统的架构模式。命令通常是异步执行的,并存储在...

2135
来自专栏即时通讯技术

脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?

本文接上篇《脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手》,继续脑残式的网络编程知识学习 ^_^。

992

扫码关注云+社区

领取腾讯云代金券