5.Nagios使用飞信短信报警

tonyty163 Nagios29,2811字数 9127阅读30分25秒阅读模式

Nagios使用飞信短信报警

以下内容摘自官方文档:http://bbs.it-adv.net/viewthread.php?tid=1081&extra=page%3D1&page=1
其中很明确的说明了下载安装的步骤:
[codesyntax lang="text"]
>> 安装 <<
本程序为绿色程序,无需安装,下载解压后即可使用。
1. 根据您的需求,分别下载附件中的windows或者linux版本的机器人主程序(回贴后才能下载噢,请别嫌麻烦),解压(注意:主程序所在目录的路径中不要存在空格,如 c:\Program files\... 这样的目录)
下载:文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

以下内容需要回复才能看到
windows版本: fetion.rar (156.81 KB)
fetion.rar (156.81 KB)
windows版本文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

linux版本: fetion (491.63 KB)
fetion (491.63 KB)
linux版本文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

2. 下载机器人支持库(使用机器人以前版本的朋友可以直接忽略),把压缩包中的文件解压到主程序相同的目录
windows 版本:http://www.it-adv.net/fetion/win32dll_20101113.rar
linux版本:http://www.it-adv.net/fetion/linuxso_20101113.rar (在Redhat4 下编译,其它LINUX发行版的朋友请测试)
linux64位(centos5.4)版本: http://www.it-adv.net/fetion/cenos54X64_20101113.rar (感谢QQ“走過你的風”网友提供。Centos5.4 64位linux系统下,如果用上面提供的linux版本动态库,会提示Segmentation fault,程序异常退出)文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

(为何分开下载?因为机器人主程序经常更新,而支持库不会更新)
注意:linux用户,请不要把支持库中的 lib* 复制到 /usr/lib 下,因为发行版本不同,可能会覆盖您机器中的核心库,导致严重系统问题。您可以把库解压到主程序的相同目录,然后以 LD_LIBRARY_PATH=. ./fetion 来运行)文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

>> 使用说明 <<文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

以下参数提供登录用的账号密码(三种方式,手机号-密码 飞信号-密码 文件--索引)文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

--mobile=[手机号] 登录手机号
--sid=[飞信号] 登录飞信号
--pwd=[密码] 登录密码
--config=[文件名] 存储手机号、密码的文件。
--index=[索引号] 索引文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

以下参数提供接收者
--to=[手机号/飞信号/URI] 接收消息的手机号/飞信号/URI.如果知道对方URI,则只需自己在对方好友列表,无需对方在自己好友列表就能发送。
支持多个号码,中间用,逗号分隔
--msg-utf8=[信息]
发送的消息,UTF8编码
--msg-gb=[信息]
发送的消息,GB编码
--file-utf8=[文件utf8格式]
发送文件内容
--file-gb=[文件gb格式]
发送文件内容
--msg-type=[0/1/2]
发送消息类型:普通消息 长消息 智能短信文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

小工具
--query-cmcc-no 查询移动公司手机段文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

以下为可选项
--debug
显示调试信息
--hide
隐身登录
--exit-on-verifycode
服务器需要进行图形验证时,程序退出(1)或者等待用户手工输入识别信息(程序默认)文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

--proxy-ip=http代理ip
--proxy-port=http代理端口
(机器人需要 HTTP CONNECT代理,大家常用的 ccproxy 是支持的)文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

>> 举例 <<文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

以下为 windows 下举例:
fetion --mobile=13711123456 --pwd=mypwd --to=137xxxxxxxx --msg-gb=测试
fetion --sid=6630321 --pwd=mypwd --to=137xxxxxxxx --msg-gb=测试
fetion --config=sample.conf --index=1 --to=137xxxxxxxx --msg-gb=测试文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

linux下,请使用如下命令:
LD_LIBRARY_PATH=. ./fetion --mobile=13711123456 --pwd=mypwd --to=137xxxxxxxx --msg-utf8=测试
LD_LIBRARY_PATH=. ./fetion --sid=6630321 --pwd=mypwd --to=137xxxxxxxx --msg-utf8=测试
LD_LIBRARY_PATH=. ./fetion --config=sample.conf --index=1 --to=137xxxxxxxx --msg-utf8=测试文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

发送消息中如果需要换行,请用 \n文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

// 以下为 sample.conf 内容,文件内容中, #号为注释行文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

# This config file is for fetion robot tool.
# Usage demo: ./fetion --config=/etc/fetion.conf --index=1
# ID Mobile Password
1 137xxxx 1234234
[/codesyntax]文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

1、下载飞信机器人&准备工作
下载地址:http://www.it-adv.net/
注意:
1.1、下载主程序
首先要下载fetion机器人主程序,由于论坛设定,必须要回复才能看到,所以无法直接通过wget下载
1.2、下载机器人支持库
ReaHat和CentOS用户应使用LINUX X86/32(REDHAT ES4X32)版。
下载链接:http://www.it-adv.net/fetion/linuxso_20101113.rar
51CTO共享的下载链接:http://down.51cto.com/data/209362#
64位系统的用户可以下载64位版
下载链接:http://www.it-adv.net/fetion/cenos54X64_20101113.rar
注:经过实践,64位系统的类库会有Segmentation fault错误
所以还是下载32位版本的,按照顺序安装配置,测试通过
[codesyntax lang="text"]
cd /usr/local/src/tarbag
wget http://www.it-adv.net/fetion/linuxso_20101113.rar
[/codesyntax]
1.3、安装rar for linux
由于下载的是rar包,所以要解压rar包,需安装相关的rar解压工具
下载地址:http://www.rarsoft.com/download.htm
我本地是64位的系统,所以要注意下载64位的包
[codesyntax lang="text"]
cd /usr/local/src/tarbag
wget http://www.rarsoft.com/rar/rarlinux-x64-4.1.1.tar.gz
tar zxvf rarlinux-x64-4.1.1.tar.gz -C ../software
cd ../software/rar/
make
[/codesyntax]
排错
安装完以后执行
rar和unrar命令会出现如下错误:
rar: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by rar)
unrar: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by unrar)
这个时候不要慌张,执行下列命令
yes|cp rar_static /usr/local/bin/rar && yes|cp rar_static /usr/local/bin/unrar
参考:http://yhjhappy234.blog.163.com/blog/static/316328322011102162817732/
这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar是解压程序。它们的参数选项很多,举例说明一下其用法
[codesyntax lang="text"]
rar a all *.jpg
[/codesyntax]
这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar 扩展名将自动附加到包名后。
[codesyntax lang="text"]
unrar e all.rar
[/codesyntax]
这条命令是将all.rar中的所有文件解压出来。
注:
可能部分系统安装时会出现问题,如果觉得麻烦,可以直接在Win下解压好再传至Linux服务器文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

2、安装飞信机器人
2.1、首先,解压下载好的rar包
[codesyntax lang="text"]
cd /usr/local/src/tarbag/
mkdir /usr/local/src/software/fetion/
cp linuxso_20101113.rar ../software/fetion/
cd ../software/fetion/
unrar linuxso_20101113.rar
cp lib* /usr/lib/
[/codesyntax]
2.2、接下来只要把fetion主程序放到一个方便调用的地方,我放的位置是/usr/local/fetion/
[codesyntax lang="text"]
cd /usr/local/src/software/
cp fetion /usr/local/fetion/
[/codesyntax]
经测试,不需要任何多余的文件,只需要fetion主程序即可文章源自运维生存时间-https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/

3、测试安装是否成功
3.1、执行下面命令,得到如下提示即表示安装成功
[codesyntax lang="text"]
./fetion
************************ IMPORTANT STATEMENT ************************
** **
** PLEASE DON'T USE THIS SOFTWARE TO SEND JUNK SHORT MESSAGES. **
** OTHERWISE PLEASE BEAR YOUR OWN CONSEQUENCES. **
** **
** Version:[20101205002-linux] **
*********************************************************************
This program is the console version of China Fetion!
It's free for personal user.
This project website: http://www.it-adv.net/

AUTHOR:KelvinH MSN/EMAIL:shichangguo@msn.com

Usage:
--mobile=[mobile]
--sid=[sid]
--pwd=[pwd]
--config=[config file] *format:index mobile password
--index=[index no in config file,refer to sample.conf]

--debug *debug mode on
--hide *login fetion in hidden state
--to=[mobile/sid]
--command-path=[command file path]
--robotmode
--daemon(linux only)
--proxy-ip(http proxy ip)
--proxy-port(http proxy port)
--msg-gb=[gb2312/gbk message]
--msg-utf8=[utf8 message]
--msg-type=[0/1/2 sms longsms smartmsg]
--file-gb=[gb2312/gbk file]
--file-utf8=[utf8 file]
--query-cmcc-no
--auto-retry
--exit-on-verifycode
--t3key=[http://www.tui3.com/page/smssend/]
[/codesyntax]
3.2、发送短信测试
测试的参数如下所示,带--debug选项可以查看发送详情
[codesyntax lang="text"]
./fetion --mobile=139******** --pwd=mypass --to=139******** --msg-utf8="system error go to sleep" --debug
[ 23:56:55.644046] [User.cpp] [1924] After connected to 221.176.31.45:8080
[ 23:56:56.668260] [User.cpp] [1464] getPublicIP:107.6.15.235
[ 23:56:56.668287] [User.cpp] [2083] Register renew time:600
[ 23:56:56.668337] [User.cpp] [1270] sending to:13950415178
[ 23:56:56.668354] [User.cpp] [1276] run,using cmcc mobile:13950415178
[ 23:56:56.669028] [User.cpp] [2228] wait send result
SIP-C/4.0 280 Send SMS OK
T: sip:778666014@fetion.com.cn;p=5405
I: 2
Q: 1 M
L: 115
D: Thu, 15 Mar 2012 15:56:56 GMT
XI: 959C5DFD2CDFA2702E20CAD606382916
[/codesyntax]
得到如上提示即表示成功,恭喜你将收到一条短信了

4、编写发送脚本
[codesyntax lang="text"]
vi /usr/local/fetion/sendsms.sh
#!/bin/sh
/usr/local/fetion/fetion --mobile=139******** --pwd=mypass --to=$1 --msg-utf8=$2
[/codesyntax]
此脚本的作用是将收短信人的手机号和短信作为参数,具体飞信机器人的命令参数,查看文档。
写好脚本后测试下,如果能收到短信,说明配置成功。

5、配置nagios
5.1、配置command.cfg
在mail报警代码下边新添加
[codesyntax lang="text"]
################################################################################
#
# notify-host-by-sendmsg/notify-service-by-sendmsg //定义发送飞信报警的命令
#
################################################################################
# 'notify-host-by-sms' command definition
define command {
command_name notify-host-by-sms
command_line /usr/local/fetion/sendsms.sh 13950415178 "Host $HOSTSTATE$ alert for $HOSTNAME$! on '$DATETIME$' " $CONTACTPAGER$
}

# 'notify-service-by-sms' command definition
define command {
command_name notify-service-by-sms
command_line /usr/local/fetion/sendsms.sh 13950415178 "$HOSTNAME$/$HOSTADDRESS$/$SERVICEDESC$/$SERVICESTATE$"
}
[/codesyntax]
这样command.cfg就配置好了
注:
其中139********就是sendsms中的$1,多个电话号码可用逗号分割开
双引号中的内容可随意定义,届时就是服务器故障时发送的短信内容,其中的变量值在resource.cfg。

5.2、配置 templates.cfg
找到define contact {,然后将notify-service-by-sms,notify-host-by-sms插入如下位置
[codesyntax lang="text"]
define contact {
name generic-contact ; The name of this contact template
......
service_notification_commands notify-service-by-email,notify-service-by-sms ; send service notifications via email & sms
host_notification_commands notify-host-by-email,notify-host-by-sms ; send host notifications via email & sms
}
[/codesyntax]
或者添加如下内容
[codesyntax lang="text"]
define contact{
name sendmsg-contact ; The name of this contact template
service_notification_period 24x7 ; service notifications can be sent anytime
host_notification_period 24x7 ; host notifications can be sent anytime
service_notification_options w,u,c,s ; send notifications for all service states, flapping events, and scheduled downtime events
host_notification_options d,u,s ; send notifications for all host states, flapping events, and scheduled downtime events
service_notification_commands notify-service-by-sendmsg ; 使用定义的飞信报警命令
host_notification_commands notify-host-by-sendmsg ; 使用定义的飞信报警命令
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!
}
[/codesyntax]

5.3、配置contacts.cfg
如果采用email和sms同时发送的方式就无需修改了,如果采用只发送sms的话,可以将contacts.cfg的内容修改为如下内容
[codesyntax lang="text"]
vi /usr/local/nagios/etc/objects/contacts.cfg
define contact{
contact_name msgreceiver ; Short name of user
use sendmsg-contact ; 使用上面定义的联系人模板
alias MsgReceiver ; Full name of user

email admin@xxxxxx.com
}
define contactgroup{
contactgroup_name admins-sendmsg
alias SMS Monitor
members msgreceiver ;与上面定义的contact_name对应
}
[/codesyntax]

6、测试故障时是否能够触发短信报警
手动停止http服务
nagios的默认监控周期是5分钟,每一分钟重试1次,重试3次后无法连接上就会发送短信到手机上
所以,最长8分钟短信就如约发到手机上
如果要调整监控的周期,可以修改templates.cfg中的相关参数
[codesyntax lang="text"]
define host{
name linux-server ; The name of this host template
use generic-host ; This template inherits other values from the generic-host template
check_period 24x7 ; By default, Linux hosts are checked round the clock
check_interval 5 ; Actively check the host every 5 minutes
retry_interval 1 ; Schedule host check retries at 1 minute intervals
max_check_attempts 10 ; Check each Linux host 10 times (max)
check_command check-host-alive ; Default command to check Linux hosts
notification_period workhours ; Linux admins hate to be woken up, so we only notify during the day
; Note that the notification_period variable is being overridden from
; the value that is inherited from the generic-host template!
notification_interval 120 ; Resend notifications every 2 hours
notification_options d,u,r ; Only send notifications for specific host states
contact_groups admins ; Notifications get sent to the admins by default
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
}
[/codesyntax]

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
tonyty163
  • 本文由 发表于 16/03/2012 17:10:45
  • 转载请务必保留本文链接:https://www.ttlsa.com/nagios/ngios-fetion-send-sms-notice/
评论  2  访客  1
    • cw199001
      cw199001 9

      文章很有帮助。

    • 来自外部的引用

    评论已关闭!