Nagios监控平台搭建

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

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

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

wKiom1WrGVCjrmUkAAIMFOk4r_0339.jpg

下面简单说下nagios平台搭建

1. 准备工作

    nagios-3.2.1.tar.gz

    nagios-plugins-1.4.14.tar.gz

    nrpe-2.14.tar.gz

2. 服务端环境搭建

    useradd -s /sbin/nologin nagios

    mkdir /usr/local/nagios

    chown -R nagios.nagios /usr/local/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;

    make install-init;

    make install-config;

    make install-commandmode;

    make install-webconf;

注:

    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整合



    安装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

    nagios访问控制设置

    htpasswd  -c  /usr/local/nagios/etc/htpasswd.users nagiosadmin

    输入两次密码即可,登录页面的时候会用到这个密码.

    Nagios测试访问

    重启nagios 

    /etc/init.d/nagios restart ;

    /etc/init.d/httpd restart ;

    http://IP/nagios/ 


3. 添加一个客户端监控的步骤:

    cp localhost.cfg  192.168.2.99.cfg 

    把默认配置文件里面的locahost、127.0.0.1、check_local替换成最新

    因为没有在客户端安装nagios插件及NRPE,

    需删掉配置文件里disk、swap、process、user、cpu等监控配置段(这里根据个人需求修改)


    cd /usr/local/nagios/etc

    vi nagios.cfg 

    在nagios.cfg 36行后加入cfg_file=/usr/local/nagios/etc/objects/192.168.2.99.cfg

    最后执行:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg没有报错即可。


4. Nagios客户端插件安装

    Nagios客户端安装需要安装两个软件,nagios-plugins-1.4.14.tar.gz和nrpe-2.14.tar.gz

    安装方法如下:

    useradd nagios ;

    tar -xzf  nagios-plugins-1.4.14.tar.gz 

    cd nagios-plugins-1.4.14 

    ./configure --prefix=/usr/local/nagios 

    make &&make install

    tar -xzf nrpe-2.14.tar.gz 

    cd nrpe-2.14 

    ./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/


5. Nrpe客户端配置

    修改vi /usr/local/nagios/etc/nrpe.cfg 修改默认配置段的内容如下,

     allowed_hosts=192.168.2.91(这里是改为服务器监控机的IP)

    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

    启动nrpe客户端命令:

    /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

    Nagios服务器nrpe配置

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

    define command{

         command_name check_nrpe

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

      }

    

    在服务器端对应IP的配置文件中,加入需要监控的项目:

    define service{

            use                             local-service        

            host_name                       192.168.2.99

            service_description             Users_Monitor

            check_command                   check_nrpe!check_users

            notifications_enabled           1

            }

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


    Nagios监控端HTTP关键词


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

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

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

    vim commands.cfg (这里是在监控服务器上的修改)

    definecommand{

        command_name    check_http_word

        command_line  $USER1$/check_http -I $HOSTADDRESS$ -u$ARG1$ -p $ARG2$ -s  $ARG3$   

            }

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

    define service{

        use                             local-service

        host_name                       192.168.2.99

        service_description             Discuz

        check_command                   check_http_word!/forum.php!80!Discuz

        notifications_enabled           1

        }

    通常在修改配置文件的时候最好是在外边命令测试一下 比如:

     /usr/local/nagios/libexec/check_http -I 192.168.2.99 -u /index.php -p 80 -s "Discuz"

     

    Nagios监控Mysql主从报警


    监控Mysql可以用个nagios mysql插件,首先在command.cfg中定义如下配置:

    define command{

            command_name   check_mysql_slave

            command_line  $USER1$/check_mysql -H $HOSTADDRESS$ -S -uroot -p123456

         }

    然后在主机配置文件中定义监控项目:

    define service{

            use                             local-service         

            host_name                       192.168。2.99

            service_description             MYSQL_Slave_Monitor

            check_command                   check_mysql_slave

        }

    配置完毕后 重启nagios服务  查看监控状态

        

    Nagios邮件及短信报警

    安装邮件服务:

    [root@linux objects]# yum  install sendmail* mailx -y

    Loaded plugins: fastestmirror

    说明fastestmirror不能使用 可以禁用这个插件

  1. 1.修改插件的配置文件

  2. # vi  /etc/yum/pluginconf.d/fastestmirror.conf  

  3. enabled = 1//由1改为0,禁用该插件

  4. 2.修改yum的配置文件

  5. # vi /etc/yum.conf

  6. plugins=1//改为0,不使用插件

    重新安装即可

    重启服务

    service sendmail  restart;

    chkconfig  sendmail on

    邮件测试:

    echo "test" | mail  -s  "test"  [email protected] 

   测试OK后

    修改配置文件:

    vi /usr/local/nagios/etc/objects/contacts.cfg  修改为需要发送的邮箱即可

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

你可能感兴趣的:(linux,监控,nagios)