软件如下:
CentOS 5.2,安装时怕又出现这依赖那依赖的,把develop tools选上,省事,硬盘也有地方。
nagios-3.0.3
nagios-plugin-1.4.13
gnokii,一个gnokii-0.6.28cvs,另一个0.6.12,分别测试的。
CentOS自带的httpd-2.2,看网上好多介绍都是用源码装httpd,我嫌麻烦。
一.建组建帐号
useradd apache
useradd nagios
usermod -G nagcmd nagios
usermod -G nagcmd apache
二.编译nagios-3.0.3
make all
make install
make install-init
make install-commandmode
make install-config
三.配置WEB接口
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin ;创建一个登录WEB的帐号
四.装nagios-plugin-1.4.13
make
make install
五.将nagios加入服务并启动,同时启动apache
chkconfig nagios on
验证nagios的安装
如果出现下面的提示就OK了
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight check
[root@host nagios]#
启动nagios和apache服务
service httpd start
六.禁用selinux
我登录WEB页面好几次都无法通过验证,仔细看了一下说明发现是selinux的问题。
这么改完不需要重启系统就可生效,Getenforce可看到permissive。但一重启就又得来一次,我的CentOs上也没别的,直接disable吧
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
现在可以用http://IP/nagios来登录了,用户名nagiosadmin。不过这时什么设备、服务都没监控,就是个花架子。
我第一次安装成功时直接用http://ip登录的,之后再装,每次打开都是apache的默认页面,后来在论坛里“不是神不会猜的”jerrywjl指导了一下,才登录成功。不过百思不得其解,第一次装的时候就老老实实地把步骤记下来了,以后都是把命令copy到屏幕上装的,为啥就不一样了?还是jerrywjl说了,肯定有不一样的地方,机器不会骗我们。不管如何,能用就行。
七.定义联系人和联系人组。我定义了三个人,两个组。前两个人在第一组里,第三个人在第二组里。
define contact{ ;
contact_name user1
use generic-contact
alias Nagios Admin
service_notification_commands service-by-sms,notify-service-by-email ;短信和邮件告警。
##service-by-sms是我用来发短信的命令,默认情况下,这个命令是commands.cfg里没有的。
##所以加完这个配置后,在commands.cfg定义这个命令之前,nagios是无法正常restart的。
## 当然如果没有service-by-sms和host-by-sms,nagios还是随便restart的。废话真多。^_^
host_notification_commands host-by-sms,notify-host-by-email
email [email]user1@domain.com[/email]
pager 133 ;手机号码
}
### 定义第二个联系人
define contact{ ;
contact_name user2
use generic-contact
alias Nagios Admin
service_notification_commands service-by-sms,notify-service-by-email
host_notification_commands host-by-sms,notify-host-by-email
email [email]user2@domain.com[/email]
pager 137xxxxxxxx
}
#### 定义第三个联系人
define contact{ ;
contact_name user3
use generic-contact
alias Nagios Admin
service_notification_commands service-by-sms,notify-service-by-email
host_notification_commands host-by-sms,notify-host-by-email
email [email]test@sina.com[/email]
pager 139
}
#### 定义联系人组
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members user1,user2
}
define contactgroup{
contactgroup_name test_group
alias Test
members user3
}
八.设置被监控的windows服务器。
找了个NSClient++-Win32-0.3.5.msi的安装包,直接装上,服务里就带了NSC++的服务,登录方式允许与桌面交互。
又照着网上的把文件注释都去掉。只有CheckWMI.dll和RemoteConfiguration.dll前面的注释保留。
网上N多资料都写着建议加password,可是加完了怎么用一直没人说,每个文章连标点符号都一样,shit!!!天下文章一大抄害死人啊!
password=123456 ;这个密码在nagios的主机配置文件中这么用,check_command xxxxxx -s 123456
allowed_hosts=192.168.0.0/16 ;允许nagios服务器访问,也可以定义主机,比如:allow_hosts=192.168.1.250/32
port=12489
启动服务。windows服务器图标右下角出现有两个重叠的加号,当然有的服务器没出来,不知道为啥,反正12489端口通了,能用就行!
九.修改nagios参数,注释本机配置文件,取消注释 windows.cfg。要是有多个主机配置文件就继续在nagios里加,主机配置文件的格式跟windows.cfg一样就行了。
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
cfg_file=/usr/local/nagios/etc/objects/test/winhosts.cfg ;配置文件路径自定义,随便!
nagios.cfg里有一行配置command_check_interval=-1,据说这个值是nagios根据自身情况自定义检查时间,尽可能快地检查。但我没发现,我把它改成10s,20s都没用,我最后只好在windows.cfg和其他hosts.cfg里自己加了。看看哪位有空帮忙解答一下。
修改/user/local/nagios/etc/objects/windows.cfg。监控CPU、监控内存,监控进程。看了网上N多2.9的资料,发现3.0.3省了很多东西,真庆幸。里面有很多参数都省略了,但是想用到怎么办,也是自己加了。我在测试时就加了normal_check_interval、max_check_attempts和congtact_groups这三个
use windows-server ; Inherit default values from a template
host_name 192.168.0.1 ; 因为我们平时工作交流时描述主机都用IP地址描述,这里就懒得改了,一招烩了吧!
alias sunfeng's laptop ; A longer name associated with the host
address 192.168.0.1 ; IP address of the host
}
define service{
use generic-service
host_name 192.168.0.1
max_check_attempts 5 ;检查多少次,依然有问题时告警。nagios3.0.3配置里是没有这行的,默认就是3。好像2.x版本的有,不过我没用过2.x。
normal_check_interval 15 ;监控周期。有的文档里描述这行的单位是秒,但我试出来的是分钟。这行默认配置里也没有,默认好像是10分钟。
service_description Uptime
check_command check_nt!UPTIME -s 123456 ;嘿嘿,windows的NSC++密码用上了!
}
define service{
use generic-service
host_name 192.168.0.1
max_check_attempts 3
normal_check_interval 15
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90 -s 123456
}
define service{
use generic-service
host_name 192.168.0.1
service_description CMD
normal_check_interval 1 ; ;每分钟检查一次进程。我就是为了试验,一般时候用不着这么短的间隔
max_check_attempts 1 ;我觉得进程这个东西要是没了,马上就出事了,所以宁可误报也不能让它自己慢悠悠地查3次再告警。但有资料说不建议这么做,我忘了具体原因了。
contact_groups admins ;这行也是默认情况下没有的。可填可不填,我只是为了区分下面那个组。;出错就给test_group组里的user3发短信发邮件。
check_command check_nt!PROCSTATE!-d SHOWALL -l CMD.EXE -s 123456 ;监控cmd.exe我照着网上的文档试着监控explorer.exe,全小写,或者写成Explorer.exe都能监控到,但是CMD或者firefox等用户进程,不管资源管理器里显示的大小写如何,这里必须写成大写,否则就检测失败。
}
define service{
use generic-service
host_name 192.168.0.1
service_description firefox
normal_check_interval 1
max_check_attempts 1
contact_groups test_group ;出错就给test_group组里的user3发短信发邮件。
check_command check_nt!PROCSTATE!-d SHOWALL -l FIREFOX.EXE -s 123456
}
十.配置sendmail,这部分除了邮箱地址,我基本是完全copy的,就是CU里一个兄弟贴的,管用。编辑/etc/sendmail/access。
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
### add by me
connect:[url]http://mail.xxxx.cn[/url] RELAY
connect:nagios@localhost RELAY
connect:192.168.0 RELAY
connect:user1@localhost RELAY
connect:user2@localhost RELAY
connect:user3@localhost RELAY
connect:user1@xxxx.cn RELAY
connect:user2@xxxx.cn RELAY
connect:user3@xxxx.cn RELAY
我后来发现个问题,范例都是Connect,而我抄的时候都写成connect了,照样能用。我不熟悉sendmail,不知道啥原因,本来打算测试一下,没倒出空来。
不好意思,没写完就误点发帖了,继续编辑中......
chmod 777 /var/spool/mqueue
测试sendmail
/var/spool/mqueue is empty
Total requests: 0
[root@host nagios]#
OK!
收到邮件,又成功!
十一.短信猫安装。接短信猫到串口,我接的串口2。
先安装光盘里的minicom的rpm包。
运行minicom -s,弹出个图形界面。图形界面截图放这里没法排序,文字不好描述,网上文章一大堆,都管用,抄吧。^_^
选择: Serial port setup 后出现下级界面。按A,修改端口为ttyS1,按E,修改端口速率9600。选择exit,初始化短信猫,进入at指令界面。
输入at,弹出OK,表示短信猫工作正常。
at+cmgs=13912345678 (输入后命令行多出“>”前缀)
>Test by user1……
输入完后按ctrl+z 退出, 界面显示OK,手机上应该能收到短信。
十二 gnokii工具,发短信用的。我从 http://www.gnokii.org下载的rpm包,这个网站没有源码包,不知道为啥。直接rpm -ivh gnokii-0.6.28cvs-20081209.i386.rpm就安装完了。
vi /etc/gnokiirc
port = /dev/ttyS1
model = AT
##同时需要注释掉mode = 6510
serial_baudrate = 9600
use_locking = no ;据说这个为yes时无法同时给多人发送短信,没试过。
#### use_locking
执行
有些网站不知道从哪抄来的,中间都是一个“-”,看了帮助才知道又被误导了。唉,懒点都不行。附个图吧,估计都贴在后面了。
第一遍装忘了注释mode=6510,结果没成功,以为RPM包有问题,卸载!从别的网站弄了个源码,gnokii-0.6.12。好多网站又是make、make install,好在我这次先看文档了,没被误导。是gmake&gmake install。
cd gnokii-0.6.12
./configure --prefix=/usr/local/gnokii/ --without-x --disable-xdebug ;我没有x,跟x有关的都不要!
gmake
gmake install
把源码包下的gonkiirc复制到/etc目录下,修改内容跟RPM包的一样。
注意:rpm包安装后gnokii的可执行文件在/usr/bin目录下,可以在任何路径下执行gnokii。而源码安装后的可执行文件在/usr/local/gnokii/目录下,用时必须指定绝对路径。
注意修改gnokii的路径,别copy。
我用源码包和rpm包分别安装后,都成功收到短信。我自己的观察,rpm包的版本高,执行速度看起来好像也快一点。
十三.把gnokii功能绑定到nagios
vi /usr/local/nagios/etc/objects/commands.cfg,添加如下代码
command_name host-by-sms ; ;这就是用到前面编辑congtacts.cfg里的那个短信告警名
command_line /bin/echo -n "$NOTIFICATIONTYPE$ $HOSTNAME$/$HOSTADDRESS$ : host is $HOSTSTATE$ $SHORTDATETIME$" | /usr/bin/gnokii –sendsms $CONTACTPAGER$ 2>&1 > /dev/null
}
define command{
command_name service-by-sms ;这个也是
command_line /bin/echo -n "$NOTIFICATIONTYPE$ $HOSTNAME$/$HOSTADDRESS$ : Service is $SERVICEDESC$ $SERVICESTATE$ $SHORTDATETIME$" | /usr/bin/gnokii –sendsms $CONTACTPAGER$ 2>&1 > /dev/null
}
这个最初是从一个不知道从哪翻出来的网站copy过来的,结果那位大哥最后一行少了个“}”,害得我找了20分钟。而且里面的gnokii的路径不对,带的参数也不对......我又琢磨了半小时,最后从../nagios/etc/var/nagios.log里看出来的。copy害死人啊,不过不copy我就撞墙了,不管怎么说还是得感谢人家。因为我最后还是用rpm包装的gnokii,所以懒一把,配置文件里没指定绝对路径。
折腾完这一小时,发现还是无法下发短信,后来还是在../nagios.log里看到是权限的问题。用ll命令看一下,都是root有权限
/usr/bin/gnokii root root
nagios服务和依赖的工具都以nagios帐户权限执行,必须对串口可读写,必须可执行gnokii。据说有人装完这些权限就正常,可我的不正常,不知道咋据说的,改。
chown –R nagios:nagios /dev/ttyS1
切换到nagios帐户下执行
收到短信,成功!
service nagios restart
登录后关闭CMD.EXE,给user1和user2发邮件+短信,关掉firefox给user3发邮件+短信。Congratulation!!!
邮件内容如下:
Notification Type: PROBLEM
Service: C:/ Drive Space
Host: user's notebook
Address: 192.168.0.11
State: WARNING
Date/Time: Thu Dec 11 18:15:21 CST 2008
Additional Info:
c:/ - total: 7.81 Gb - used: 6.66 Gb (85%) - free 1.15 Gb (15%)
短信的内容也差不多。nagios3.0.3默认情况下,在unknow、critical、warning、recovery都会发短信和邮件。
再贴张图。中间那个橙色的unkonwn状态的目标是因为我监控的一个进程名中间有空格!!!谁知道怎么写?帮忙解答一下。
还有个问题,nagios的页面多久自动刷新一次?是有状态更新后再刷么?
此外,我点左面的那个3-D Status Map时老提示我下载statuswrl.cgi,不知道是不是因为apache不是用源码包装的原因。
还剩两项工作:
网上还有用飞信的说明,结果我注册了一下午飞信愣是没注册上,老是系统繁忙.....明天看看情况,争取把飞信搞定,省点短信费吧!
第二个是监控Linux服务器,我还没腾出空来去看,继续努力!!!
再废话一句:../nagios/bin/nagios -v ../nagios/etc/nagios.cfg这个命令真管用,出错看得最明白的一个了!!好使。
写完了想起来,我要是都弄好了,今年过年要是再出现2001年时短信拥塞,我的nagios+短信猫不就成了孬狗+死猫了么?继续祈祷吧.......
------------------------------------------------
还有个关于htpasswd命令的用法,还是照抄惹的祸,据说用htpasswd -c htpasswd.users可以增加数个帐号,结果我添一个就把前面填过的给清掉了,添来添去只有一个帐号。后来看了一下帮助,用参数n、m、d、p都可以增加。增加完以后,在../nagios/etc/cgi配置文件中,在nagiosadmin后面填上新的帐号,restart nagios服务就O了。
Nagios飞信linux系统免费短信报警配置
一、 前言:
1、 nagios是一个非常好的系统监控工具,现在我的nagios系统已经正常运行,使用短信猫和邮件可以报警。使用飞信可以节约我们的短信猫和短信费用。
2、 飞信首先手机要开通中国移动的飞信业务。目前使用飞信发送短信是免费的。需要把接受短信的手机和飞信发送手机加为好友。
3、 下载飞信的linux客户端程序.解开包后只有一个文件sms。不错。这个就是飞信发送短信的程序啦。现在的飞信还是不能用的。因为它需要libace的glibc库的支持。
二、 飞信linux程序下载:
1、 飞信官方网站:http://www.it-adv.net/
2、 飞信官方命令下载:sms
http://www.it-adv.net/fetion/fetion_linux_20080402.tar.gz
3、 飞信官方lib库下载:
32位官方lib库:http://www.it-adv.net/fetion/library32.rar
64位官方lib库:http://www.it-adv.net/fetion/library64_linux.tar.gz
三、 飞信程序测试:
1、 飞信命令测试:
# wget http://www.it-adv.net/fetion/fetion_linux_20080402.tar.gz
# tar xvfz fetion_linux_20080402.tar.gz
# cp sms /usr/bin
# sms -h
sms -f mobile -p pwd -t mobile1,.. -m message -a message -d
sms -f mobile -p pwd -t mobile1,.. -i file_name[utf8] -a invite_message -d 1
-f:Fetion mobile account(only supports mobile phone No.)
-p:Account password
-t:Destination mobile list
-m:Message
-i:File name(only supports utf8)
-a:Auto send invite using invite_message.
-d:Debug on.
如果没有安装lib库,将会提示 缺少libACE.so.5.4.7包
四、 解决缺少lib库的方法:
说明: 在centOS5下装提示需要libACE.so.5.4.7这个库,千万不要自己去安装ACE包,很麻烦,官方已经给了liunx的下载版本:
1.先检查一下缺少的lib文件
[root@nagios libexec]# ldd sms
linux-gate.so.1 => (0x00b00000)
libACE.so.5.4.7 => not found
libACE_SSL.so.5.4.7 => not found
libssl.so.0.9.8 => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x02a05000)
libm.so.6 => /lib/libm.so.6 (0x00cd4000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x029f7000)
libc.so.6 => /lib/libc.so.6 (0x00b92000)
/lib/ld-linux.so.2 (0x001c3000)
2.下载lib库:
32位官方lib库:http://www.it-adv.net/fetion/library32.rar
64位官方lib库:http://www.it-adv.net/fetion/library64_linux.tar.gz
3、安装lib库
[root@nagios library32]# ls
libACE.so.5.4.7 libACE_SSL.so.5.4.7 libcrypto.so.0.9.8 libssl.so.0.9.8
[root@nagios library32]# cp *.* /lib/
[root@nagios library32]# cp *.* /usr/lib/
4、测试sms:
[root@nagios libexec]# ./sms
************************ IMPORTANT STATEMENT ************************
** **
** PLEASE DON'T USE THIS SOFTWARE TO SEND JUNK SHORT MESSAGES. **
** OTHERWISE PLEASE BEAR YOUR OWN CONSEQUENCES. **
** **
** [version:2008-4-2] **
*********************************************************************
This program is for sending short messages via CMCC Fetion!
[url=http://www.fetion.com.cn/]http://www.fetion.com.cn/
AUTHOR:KelvinHan MSN/EMAIL:shichangguo@msn.com 2008/3/8
Usage:
sms -f mobile -p pwd -t mobile1,.. -m message -a message -d
sms -f mobile -p pwd -t mobile1,.. -i file_name[utf8] -a invite_message -d 1
-f:Fetion mobile account(only supports mobile phone No.)
-p:Account password
-t:Destination mobile list
-m:Message
-i:File name(only supports utf8)
-a:Auto send invite using invite_message.
-d:Debug on.
五、 Nagios飞信测试:
1、 需要注册一个可以使用飞信的手机号码,测试期间可以自己发送给自己做测试。
2、 给别的手机发飞信,需要给把手机绑定为好友。
3、 飞信环境解决了,发短信测试一下
136933XXXXX为发飞信的注册手机号码
136833XXXXX、36733XXXXX 为接收飞信短信的手机号码
[root@nagios libexec]# ./sms -f 136933XXXXX -p password -t 136833XXXXX -m hello,this is test
也可以要发的消息在一个文本文件里,如 message.txt
./sms -f 136933XXXXX -p password -t 136833XXXXX,136733XXXXX -i message.txt
如果接收短信的手机号码在你的好友列表里,就会发送成功。
如果不在好友列表里,发送是不成功的。如果你想让程序邀请他们加入,那么就用 -a 参数
sms -f 136933XXXXX -p password -t 136833XXXXX,136733XXXXX -m 你好,飞信 -a UBUNTU
这样,对方就会收到移动发的确认短信。
六、 Nagios配置:
1、 nagios命令配置commands.cfg:
more /usr/local/nagios/etc/commands.cfg
define command{
command_name notify-service-by-sms
command_line /usr/bin/sms -f 13901111111 -p 562128 -t $CONTACTPAGER$ -m "$HOSTNAME$ $SERVICEDESC$ is $SERVICESTATE$
on $TIME$ result is $SERVICEOUTPUT$" $CONTACTPAGER$
}
2、 nagios发送配置contacts.cfg:
[root@nagios ~]# more /usr/local/nagios/etc/contacts.cfg
define contact{
contact_name sa
alias system admin
host_notification_period 24x7
service_notification_period 24x7
host_notification_options d,r,
service_notification_options c,w,r
service_notification_commands notify-service-by-email,notify-service-by-sms
# service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
# email [email]1234@sina.com[/email]
pager 158010775111
}
[root@nagios ~]#
转帖:http://www.chinaunix.net/jh/141/1326927.html