nagios2.X与3.X区别及新版本fetion飞信发短信的方法

简介:
一、Nagios 简单原理:
Nagios  简单地说就是一个平台,其工作都依赖于插件及第三方工具来实现。像plgins 可以检测到服务(pop2,tcp,httpd,mysql)的状态; nrpe可以检测到主机本身信息(swap,sdx,top)的状态; nsca可以检测到windows机器的状态。报警(常用):邮件―sendmailmsnsendmsg;短信-短信网关/飞信。还可以结合mrtg rddtools画出流量报表。
大家看张图吧:
 
二、配置文件区别
安装过程很简单,现在只讲下配置的区别吧。
Nagios 2.X 
所有配置文件都在:/../nagios/etc/ 目录下
主配置文件:nagios.cfg用以指定nagios的基本工作,及使用那些次配置文件
次配置文件:(都需要自己新建)
contactgroups.cfg   联系组配置文件
contacts.cfg        联系人配置文件
hostgroups.cfg      主机组配置文件
hosts.cfg           主机配置文件
services.cfg        服务配置文件(定义多台主机时,这个配置文件可以写N个,只需要在nagios.cfg中再添加一项就可以了)
timeperiods.cfg     监视时段配置文件
cgi.cfg              cgi 脚本配置文件
commands.cfg         定义运行插件配置文件
templates.cfg        报警时间,报警信息配置
 
Nagios 3.X 
主配置文件及cgi.cfg /../nagios/etc/ 目录下
次配置文件在: /../nagios/etc/objects/ 目录下
主配置文件:nagios.cfg用以指定nagios的基本工作,及使用那些次配置文件
次配置文件:(默认安装就有)
contacts.cfg     联系人及组配置文件
templates.cfg    监控项目及报警配置文件
timeperiods.cfg  监视时间配置文件
switch.cfg       交换机配置文件
windows.cfg    windows 配置文件
localhost.cfg     本机配置文件
commands.cfg    定义运行插件配置文件
 
注意区别:
1、   配置文件目录不一样
2、   3.X 配置文件不需要自己新建,默认就有
3、   配置文件改动很大,其中装用户及组写到了一个文件,但不定义报警的时间,只定义收邮件人/接收短信人,其报警时间段写到了templates.cfg文件里;监控主机配置文件直接写到了服务配置文件里,相应的主机组都定义在templates.cfg
4、   2.x swap需要手动添加到commands.cfg    3.X自带
 
三、插件的问题
许多人在装nrpe的时候都会遇到CHECK_NRPE: Error - Could not complete SSL handshake错误。解决方法
石头大哥([url]http://www.itnms.net/discuz/[/url])的翻译如下:
简单说一下,大概的内容,不是严格翻译。
     1.  
确认check_nrpe  nrpe daemon的版本一定要一致。
     2.  
确认 check_nrpenrpe deamon端同时启用或者禁用ssl支持。
     3.  
确认nrep.cfg可以被nrpe(或者nagios,反正是执行nrep或者xinetd/inetd程序的)用户正常读取。
     4.  
有关伪随机设备的问题。这个只会在solaris 8上出现,需要一个补丁Sun patch 112438
     5.  
确定nagios主机在xinetd ly_from中,如果没有使用xinetd,则要确认nrpe.cfg中的配置。
另外,赠送l两个,
1. 
检查一下你的Windows或者Linux自带的防火墙,是否把端口给filter掉了。
2. 
nrpe的的log打开,可以发现更多有用的信息。

四、飞信机器(fetion)新版 结合nagios短信报警方法
旧版是fetion-200804X 采用的sms直接发短信的方法。这种方法很简单。
 
新版我用的fetin-20080522X
安装方法:
参考hiadmin
1 、软件环境(centos 5为例)
官网地址:[url]http://www.it-adv.net/[/url]
支持库安装:
需要Glibc2.4以上的版本
2 、安装过程
下载包地址 LINUX X86/32(REDHAT ES4X32):支持库 最新程序fetion20080522004-linrh4.tar.gz
其中支持库和安装包内容如下:
# tar zxvf libraryrh4x32.tar.gz 
libACE-5.6.5.so
libACE_SSL-5.6.5.so
libcrypto.so.0.9.7a
libssl.so.0.9.7a

# tar zxvf fetion20080522004-linrh4.tar.gz
我将fetion放在/../nagios/ libexec/sms
把支持库复制到/usr/lib/目录下,并作软链接如下:
cp lib*so* /usr/lib/
ln -s /usr/lib/libcrypto.so.0.9.7a /usr/lib/libcrypto.so.4
ln -s /usr/lib/libssl.so.0.9.7a /usr/lib/libssl.so.4
设定lib库配置文件
#vi /etc/ld.so.conf
#
增加一条
/usr/lib/
#
保存退出后,执行
#ldconfig
fetion 的目录结构:
.\Readme.txt: 
本说明文件
.\fetion
:主程序
.\sound\*.wav:
各种音效文件,您可以用自己喜欢的文件替换
.\plugins\plugin_*: 
插件程序,您可以修改插件以达到自己的各性化需求
完成之后测试,安装是否成功;执行
#cd install
# ./fetion -h
 Usage:
    fetion -h
        -h: help
    fetion -u mobile -p pwd [-b batchfile] [-EN] [-d]
    fetion -u mobile -p pwd [-b batchfile] [-EN] [-d]
        -u: Fetion user account(only supports mobile phone No.)
        -p: Account password
        -b: Batch file name
        -d: Debug and write logs to [mobile]-debug.log
        -EN: English
3 、实际测试
测试帐号:13888888888
密码:123456 (如果密码中含有特殊字符,请使用单引号)
如果发送成功。那么fetion安装过程就OK
 
五:fetion 组合nagios
1 Fetion以后台方式启动:nohup /usr/local/nagios/libexec/sms/fetion -u 13888888888 -p 123456 >/dev/null 2>1 &
2 、写一个perl脚本(本脚本由gzmaster小弟提供)
Sms.pl (/../nagios/libexec/sms/sms.pl)
#!/usr/bin/perl -w
 
use strict;
use Data::Dumper;
use LWP::UserAgent;
my $mesg = shift;
$mesg =~ s/\//|/g;
my @number = ( 接收手机号,接收手机号);
foreach my $number ( @number ) {
        #print "send sms to $number \n";
        my $send_sms_url = "http://localhost:40000/API/buddy/sms/" . $number . "/" . $mesg . '?rand=0.7394060082921254';
        my $request = HTTP::Request->new(GET => $send_sms_url);
        my $ua = LWP::UserAgent->new;
        $ua->timeout( 5 );
        $ua->agent("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; Maxthon 2.0)");
        my $response = $ua->request($request);
        my $content = $response->content();
}
    3 、修改相应的配置文件
修改用户及组:contacts.cfg
添加:
define contact{
        contact_name                    sms-members
        use                             sms-mail-contact
        alias                           Nagios Admin SMS
        pager                          138888888888
       }
 
define contactgroup{
        contactgroup_name       admins-and-lijs
        alias                   Nagios Administrators
        members                 sms-members
        }
修改报警选项:templates.cfg
 
define contact{
        name generic-contact               
 service_notification_period     24x7  
host_notification_period    24x7        
 service_notification_options    w,u,c,r,f,s
host_notification_options       d,u,r,f,s
 service_notification_commands notify-service-by-email; service-notify-by-sms
      host_notification_commands     notify-host-by-email
        register                        0    
        }
 
define contact{
        name                            sms-mail-contact
        service_notification_period     24x7                  
        host_notification_period        24x7               
        service_notification_options    w,u,c,r,f,s      
        host_notification_options       d,u,r,f,s  
        service_notification_commands  service-notify-by-sms
        host_notification_commands     notify-host-by-email
       register                        0                 
        }
 
修改调用脚本:commands.cfg
#host-notify-by-sms  
define command {
       command_name      host-notify-by-sms
       command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nHost: $HOSTNAME$\nState:
 $HOSTSTATE$\nWAN_IP: $HOSTALIAS$\nLAN_IP: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/local/nagios/lib
exec/sms.pl 710880931 "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
        }
 
#service notify by sms 
define command {
       command_name     service-notify-by-sms
             command_line     /usr/local/nagios/libexec/sms/sms.pl '** $NOTIFICATIONTYPE$ alert - $HOSTNAME$  $SERVICEDESC$ is $SERVICESTA
TE$ info: $SERVICEOUTPUT$'
        }
 
测试下nagios情况。然后再测试报警。就OK


本文转自守住每一天51CTO博客,原文链接:http://blog.51cto.com/liuyu/95300,如需转载请自行联系原作者
相关文章
|
5月前
|
安全 Linux Shell
Python 动态更新Linux系统root账号密码并发送通知短信
Python 动态更新Linux系统root账号密码并发送通知短信
61 0
|
10天前
|
API
电脑上控制所有软件,比如说微信自动发消息,QQ
电脑上控制所有软件,比如说微信自动发消息,QQ
|
5月前
|
PHP
PHP公众号开发给用户发微信消息提醒功能
该内容是一个关于如何在时间紧迫的情况下,通过微信客服消息接口实现用户资金到账或成员变动时发送微信通知的项目总结。
50 2
|
监控
zabbix设置微信告警,亲测可用!!!
zabbix微信告警 前面写了一个zabbix微信告警的,用的我的企业号,后来发现用的人太多消息都超过限制了,应大家要求发布个可以用主机企业号的发送程序,填自己的企业号就可发送微信告警消息!使用go语言开发(感谢老司机提供的微信sdk) 首先你得有个...
2464 0
|
Web App开发 监控 Linux