1005 linux系统报警软件nagios与飞信结合

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://shawonline.blog.51cto.com/304978/165370
1005 linux系统报警软件nagios与飞信结合<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

内容概要:

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-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />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

 

测试:
如果点击 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 –stdin ,其次需要将已安装 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
安装 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 –R nagios.nagios /usr/local/nagios/fetion

 

1.3.2 测试飞信机器人

/usr/local/nagios/fetion/fetion –h 会列出详细帮助信息
可以用下面一行命令进行测试:
/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
本文出自 “ ShawOnline” 博客,请务必保留此出处 http://shawonline.blog.51cto.com/304978/165370