1005 linux
系统报警软件nagios
与飞信结合
内容概要:
nagios
快速安装
nrpe linux/windows
被监控端配置
安装飞信机器人并实现短信报警
关于
Nagios
相关可参考以下站点:
Nagios
官方网站
http://www.nagios.org
安装软件之前先要安装操作系统(这里以
CentOS 5.2
为例),搭建
lamp
环境(可以参考
http://shawonline.blog.51cto.com/304978/162882
其中至
php
安装结束部分)。
系统监控报警软件nagios
前面已经介绍过
cacti
的安装与配置,这里是把
nagios
与
cacti
安装在同一台服务器上的,使用同样的环境设置。
1.1 nagios
快速安装
各平台的快速安装指南
http://nagios.sourceforge.net/docs/3_0/quickstart.html
useradd nagios ;echo "nagios" |passwd nagios --stdin
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache
mkdir ~/src
cd ~/src
wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios- 3.0.3 .tar.gz
wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins- 1.4.12 .tar.gz
tar -xzvf nagios- 3.0.3 .tar.gz
cd nagios- 3.0.3
./configure --with-command-group=nagcmd --with-httpd-conf=/usr/local/apache2/conf/extra/ --enable-embedded-perl
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
cd ~/src
tar -xzvf nagios-plugins- 1.4.12 .tar.gz
cd nagios-plugins- 1.4.12
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make ;make install
chkconfig --add nagios
chkconfig --level 3 nagios on
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
/usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
由于我们是使用编译方式安装的
apache
,所以在
httpd.conf
最后添加一行:
Include /usr/local/apache2/conf/extra/nagios.conf
service nagios start
service httpd restart
测试:
http://localhost/nagios
如果点击
3-D Status Map
提示下载
statuswrl.cgi
,可以安装
Cortona
来解决。
Cortona
的在线安装地址为:
http://www.cortona3d.com/install/iexplore.php
1.2 nrpe
安装与配置
1.2.1
监控端:
安装
nrpe-2.8
cd ~/src
tar -xzvf nrpe-2.8.tar.gz
cd nrpe-2.8
./configure
make all
make install-plugin
如果不作为被监控端可以不运行以下两行:
make install-daemon
make install-daemon-config
vi /usr/local/nagios/etc/objects/commands.cfg
添加如下几行:
define command{
command_name nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
1.2.2
linux
被监控端:
useradd nagios ;echo "nagios" |passwd nagios --stdin
tar -xzvf nagios-plugins- 1.4.13 .tar.gz
cd nagios-plugins- 1.4.13
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make ;make install
chown nagios.nagios /usr/local/nagios/
chown -R nagios.nagios /usr/local/nagios/libexec/
cd ..
tar -xzvf nrpe-2.8.tar.gz
cd nrpe-2.8
./configure
make all
make install-daemon
make install-daemon-config
vi /usr/local/nagios/etc/nrpe.cfg
server_address=192.168.3.1 #
被监控网卡
IP
allowed_hosts=192.168.3.119
#
充许监控服务器
IP
地址
,
多个
IP
用
","
分隔
启动
nrpe
:
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
netstat -atn |grep 5666
tail /var/log/messages
echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.d/rc.local
重启
nrpe
:
kill -9 `pidof nrpe` &&/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
以下是我的
/usr/local/nagios/etc/nrpe.cfg
文件:
pid_file=/var/run/nrpe.pid
server_port=5666
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=127.0.0.1,192.168.0.119
dont_blame_nrpe=0
debug=0
command_timeout=60
connection_timeout=300
command[check_load]=/usr/local/nagios/libexec/check_load -w 20,18,15 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda1
command[check_hda2]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda2
command[check_hda3]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda3
command[check_hda4]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda4
command[check_hda5]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda5
command[check_hda6]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda6
command[check_hda7]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda7
command[check_hda8]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda8
如果还有其他服务器需要安装
nrpe linux
被监控端程序,首先需要创建
nagios
用户:
useradd nagios ;echo "nagios" |passwd nagios �Cstdin
,其次需要将已安装
nrpe
服务器的
/usr/local/nagios
文件夹打包,并解压到目标服务器即可。
1.2.3
windows
被监控端:
安装
NSClient++-Win32- 0.3.1 .msi
开始
-
运行
-services.msc-NSClientpp (Nagios) 0.3.1 .14 2008-03-12 w32
属性
-
登录
-
勾选允许服务与桌面交互
(
这样在服务开启后桌面右下角就会出现控制图标
)
修改
C:\NSClient++\NSC.ini
重启服务
在监控端测试
nrpe
:
/usr/local/nagios/libexec/check_nrpe -H 192.168.3.104
NRPE v2.8
/usr/local/nagios/libexec/check_nt -H 192.168.3.36
I ( 0.3.1 .13 yyyy-mm-dd) seem to be doing fine...
1.3
安装飞信机器人并实现短信报警
nagios
监控端的详细配置这里不作介绍,我们主要来测试飞信报警的功能。
1.3.1
安装飞信机器人
下载
FetionRobot
:
http://www.it-adv.net
安装
FetionRobot
:
tar -xzvf library_linux.tar.tar
cp libACE- 5.6.8 .so /usr/lib
cp libACE_SSL- 5.6.8 .so /usr/lib
cp libcrypto.so. 0.9.8 /usr/lib
cp libssl.so. 0.9.8 /usr/lib
tar -xzvf fetion20090327018-linux.tar.tar
mv install /usr/local/nagios/fetion
chown �CR nagios.nagios /usr/local/nagios/fetion
1.3.2
测试飞信机器人
/usr/local/nagios/fetion/fetion �Ch
会列出详细帮助信息
可以用下面一行命令进行测试:
/usr/local/nagios/fetion/fetion --mobile=15812345678 --pwd=FetionPWD --msg-utf8="
信息内容
" --msg-type=1 --to=15812345678,15912345678
当然,你得先开通你的飞信服务呵!
1.3.3
使nagios
可以发送报警信息
修改
/usr/local/nagios/etc/objects/commands.cfg
,在文件开始部分添加如下几行:
# 'notify-host-by-fetion' command definition
define command{
command_name notify-host-by-fetion
command_line /usr/local/nagios/fetion/fetion --mobile=15812345678 --pwd=FetionPWD --msg-utf8="*$NOTIFICATIONTYPE
$:$HOSTADDRESS$ is $HOSTSTATE$ at $SHORTDATETIME$*" --msg-type=1 --to=15812345678,15912345678
}
# 'notify-service-by-fetion' command definition
define command{
command_name notify-service-by-fetion
command_line /usr/local/nagios/fetion/fetion --mobile=15812345678 --pwd=FetionPWD --msg-utf8="$NOTIFICATIONTYPE$
:*$HOSTADDRESS$/$SERVICEDESC$ is $SERVICESTATE$ at $SHORTDATETIME$*" --msg-type=1 --to=15812345678,15912345678
}
另外,我们不知道这个版本的飞信机器人哪天会突然出问题(我就遇到过这样的问题),所以写个每天定时使用飞信机器人发送
nagios
进程号的信息。
vi /usr/local/nagios/fetion/test_everyD
#!/bin/bash
msg=`service nagios status`
/usr/local/nagios/fetion/fetion --mobile=15812345678 --pwd=FetionPWD --msg-utf8="*$msg \n$(date +%D\ %H:%M)*" --msg-type=1 --to=15812345678,15912345678
chown nagios.nagios /usr/local/nagios/fetion/fetion
chmod 644 /usr/local/nagios/fetion/fetion
echo '00 21 * * * nagios /usr/local/nagios/fetion/test_everyD' >>/etc/crontab
至此我们就可以在各被监控机的配置文件里定义报警阀值,由
nagios
监控机监测并发出报警信息。
By Shaw