3.1. 1 Nagios监控平台搭建

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

Nagios和cacti有什么区别呢?简单的来说cacti主要监控流量,服务器状态页面展示;nagios主要监控服务,邮件及短信报警灯,当然也有简单的流量监控界面,二者综合使用效果更好。(附Nagios工作简单逻辑图)

Nagios监控客户端需要借助插件及NRPE软件来实现,NRPE作为中间的代理程序,接收Nagios服务器端发来的请求,另一端在远程主机上指定的相关的监控信息。

 

搭建视频监控平台 网络监控平台搭建_ios

 

1) Nagios服务端安装

同样安装nagios服务需要安装LAMP环境,这里省略,可以参考之前的cacti PHP环境安装方法:官网下载nagios相应版本和插件:

wget http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.2.1/nagios-3.2.1.tar.gz/download 

http://down1.chinaunix.net/distfiles/nagios-plugins-1.4.14.tar.gz

 

/usr/sbin/useradd nagios
tar zxvf nagios-3.2.1.tar.gz
cd nagios-3.2.1
./configure  --prefix=/usr/local/nagios  --with-command-group=nagios
make all
make install //来安装主程序,CGI和HTML文件
make install-init //在/etc/rc.d/init.d安装启动脚本
make install-config //来安装示例配置文件,安装的路径是/usr/local/nagios/etc
make install-commandmode //来配置目录权限
make install-webconf // 配置nagios跟apache整合
2) 安装Nagios-plugins
tar zxvf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.14
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
3) nagios访问控制设置
htpasswd  -c  /usr/local/nagios/etc/htpasswd.users nagiosadmin
输入两次密码即可,登录页面的时候会用到这个密码.
4) Nagios测试访问
重启nagios ,/etc/init.d/nagios restart ;/etc/init.d/httpd restart ;

http://localhost/nagios/ 如下图:

 

搭建视频监控平台 网络监控平台搭建_ios_02

 

点击左侧的Hosts可以看到右侧默认localhost主机的监控,UP表示主机目前运行正常:

 

搭建视频监控平台 网络监控平台搭建_客户端_03

 

点击左侧的Services可以看到右侧默认localhost监控的各个服务的状态,绿色OK表示正常:

 

搭建视频监控平台 网络监控平台搭建_搭建视频监控平台_04

 

5) Nagios案例配置

默认安装完nagios,配置文件主目录在/usr/local/nagios/下,目录各种的功能如下:

bin

Nagios 可执行程序所在目录

etc

Nagios 配置文件所在目录

sbin

Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录

share

Nagios网页文件所在的目录

libexec

Nagios 外部插件所在目录

var

Nagios 日志文件、lock 等文件所在的目录

var/archives

Nagios 日志自动归档目录

var/rw

用来存放外部命令文件的目录

这里先来了解etc/objects目录主要包括监控主机的配置、模板、监控时间段等配置文件。

 

搭建视频监控平台 网络监控平台搭建_配置文件_05

 

简单来添加一个客户端监控的步骤:

cp localhost.cfg  192.168.33.10.cfg
把默认配置文件里面的locahost、127.0.0.1、check_local替换成最新
sed -i 's#localhost#192.168.33.10#g;s#127.0.0.1#192.168.33.10#g;s#check_local#check#g;s#linux-servers#192.168.33.10#g ' 192.168.33.10.cfg
在nagios.cfg 36行后加入cfg_file=/usr/local/nagios/etc/objects/192.168.33.10.cfg
sed -i '36a cfg_file=/usr/local/nagios/etc/objects/192.168.33.10.cfg' /usr/local/nagios/etc/nagios.cfg
最后执行:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg没有报错即可。
默认有报错,因为没有在客户端安装nagios插件及NRPE,需删掉配置文件里disk、swap、process、user、cpu等监控配置段:
define service{
        use                             local-service         
        host_name                       192.168.33.10
        service_description                 Swap Usage
        check_command                   check_swap!20!10
        }

 

搭建视频监控平台 网络监控平台搭建_配置文件_06

 

这里注意* 如果没有配置check_nrpe监控,默认不能监控客户端例如swap、disk、CPU、process等状态,需要在配置文件里删除或者注释掉。

如下是刚刚添加的默认的客户端监控图:

 

搭建视频监控平台 网络监控平台搭建_配置文件_07

 

6)  Nagios客户端插件安装

Nagios客户端安装需要安装两个软件,nagios-plugins-1.4.15.tar.gz和nrpe-2.13.tar.gz,安装方法如下:

useradd nagios ;tar -xzf nagios-plugins-1.4.15.tar.gz &&cd nagios-plugins-1.4.15 &&./configure –prefix=/usr/local/nagios &&make &&make install
tar -xzf nrpe-2.13.tar.gz && cd nrpe-2.13 &&./configure --enable-ssl --with-ssl-lib &&make all && make install-plugin && make install-daemon && make install-daemon-config
chown -R nagios:nagios /usr/local/nagios/ ;cd .. ;cp nrpe.cfg /usr/local/nagios/etc/nrpe.cfg

启动nrpe客户端命令:/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

7) Nrpe客户端配置

修改vi /usr/local/nagios/etc/nrpe.cfg 修改默认配置段的内容如下,去掉#号,做相应修改。
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda2
command[check_procs]=/usr/local/nagios/libexec/check_procs -w 50 -c 100
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20 -c 10

8) Nagios服务器Nrpe配置

Nagios 服务器端也需要安装nrpe,同时需要定义Nrpe监控命令,写command.cfg末尾即可:

define command{

        command_name check_nrpe

        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

        }

9) Nagios监控端客户机配置

在192.168.33.10.cfg加入如下配置段,引用客户端nrpe.cfg里面配置的check_load命令,命令一般格式为:check_nrpe!command

define service{
        use                              local-service      
        host_name                       192.168.33.10
        service_description                 Current Load
        check_command                   check_nrpe!check_load
        }

搭建视频监控平台 网络监控平台搭建_客户端_08

 

 

其他同理,添加的方法一样。只要在客户端nrpe.cfg里面添加的监控命令,都可以在服务端引用。

10) Nagios监控端HTTP关键词

在真实的线上环境中,如果要监控HTTP、web、tomcat某个URL关键词,监控网站关键词是否被篡改,如果来实现呢?

这里可以使用默认监控命令check_http命令+相关的参数来实现,如下:

在command.cfg添加如下关键词监控命令:check_http_word,参数解析:-I指定IP或者主机名,-u指定URL,-p指定端口,-s指定关键词。

define command{
        command_name    check_http_word
        command_line    $USER1$/check_http -I $HOSTADDRESS$ -u $$ARG1$ -p $$ARG2$ -s $ARG3$
        }

然后在服务器端监控主机的配置文件里面引用即可,引用的方法如下:

 

搭建视频监控平台 网络监控平台搭建_配置文件_09

 

也可以在服务器端命令行执行如下命令来做测试,例如监控页面不存在ATM关键词,但82端口web服务可以访问,依然会发送报警。

/usr/local/nagios/libexec/check_http -I 192.168.33.11 -u /index.html -p 82 -s "ATM"

 

搭建视频监控平台 网络监控平台搭建_搭建视频监控平台_10

 

如上截图表示,关键词ATM不存在,则nagios在监控页面上会显示CRITICAL紧急。

11)  Nagios邮件及短信报警

使用nagios报警,以前可以用飞信发送报警,但是自从飞信更改接口后,就不方便了,那我们要发短信报警怎么办呢,我们可以139邮箱,机制是nagios给139邮箱发送信息,然后信息会自动发到我们绑定的手机。提前在139上绑定好手机即可。除此之外还可以使用短信猫(收费)设备来发送报警。

默认command.cfg里面已经配置好了邮件报警设置,可以使用默认的配置,使用系统默认的mail发送邮件;还可以自己定义发送的内容格式及发送的邮件smtp服务器端软件。

这里使用默认的配置文件,要能收到短信报警,除了在139.com界面绑定139邮箱之外,还需要在nagios服务器端配置文件修改邮件收件人如下:

修改配置文件:vi /usr/local/nagios/etc/objects/contacts.cfg内容如下:

 

搭建视频监控平台 网络监控平台搭建_客户端_11

 

 

 

同样也可以使用sed命令修改:cd  /usr/local/nagios/etc/objects/ ;
sed  -i  's#nagios@localhost#wgkgood@139.com#g'  contacts.cfg

 

如上配置完毕后,重启nagios服务,可以测试关闭某个服务,过一会就会收到nagios发来的报警邮件。

自此,Nagios相关的配置就到此为止,当然有兴趣的童鞋还可以进一步研究,例如nagios跟cacti如何整合,nagios如何优化等等。