Nagios

Nagios

监控原理:

Nagios监控linux 时,linux 启动nrpe 进程,Nagios发起对nrpe监控请求。

windows 装NSClient++  ,Nagios用check_nt 来探测windows信息

NSClient++ 同时也提供 check_nrpe来检测, 也可以启动NSCA进程。Nagios被动来检测


一:需求环境:

1:安装LAMP环境:监控机ip假定为192.168.2.20

2:添加nagios运行所需要的用户和组:

# groupadd  nagcmd

# useradd -G nagcmd nagios

# passwd nagios

 

把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:

    # usermod -a -G nagcmd apache

3:编译安装nagios:

 # tar zxf nagios-4.1.1.tar.gz 

# cd nagios-4.1.1

# ./configure --with-command-group=nagcmd --enable-event-broker 

# ./configure --sysconfdir=/etc/nagios --with-command-group=nagcmd --enable-event-broker

# make all

# make install

# make install-init

# make install-commandmode

# make install-config


# make install-webconf

默认nagios会在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件:


注意:因为我是编译安装的httpd,所以改为如下

# cp sample-config/httpd.conf /etc/httpd/extra/nagios.conf

在httpd.conf文件打开对nagios 支持

Include /etc/httpd/extra/nagios.conf


创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用: 

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

注意:因为我是编译安装的httpd,所以改为如下

# /usr/local/httpd/bin/htpasswd -c /etc/nagios/htpasswd.users nagiosadmin


以上过程配置结束以后需要重新启动httpd:

LoadModule cgid_module modules/mod_cgid.so

LoadModule actions_module modules/mod_actions.so

 

# service httpd restart

 

4:编译、安装nagios-plugins

nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。

# tar xf nagios-plugins-2.1.1.tar.gz

# cd nagios-plugins-2.1.1

# ./configure --with-nagios-user=nagios --with-nagios-group=nagios

# make && make install

 

5、配置并启动Nagios

 

(1)把nagios添加为系统服务并将之加入到自动启动服务队列:

# chkconfig --add nagios

# chkconfig nagios on

 

(2)检查其主配置文件的语法是否正确:

#  /usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg 

 

二:被监控端安装NRPE,假定被监控机ip为192.168.2.3

  1:先添加nagios用户,安装nagios插件

     # useradd -s /sbin/nologin nagios

     # tar xf nagios-plugins-2.1.1.tar.gz 

     # ./configure --with-nagios-user=nagios --with-nagios-group=nagios

     # make && make install

 

  2:安装nrpe,他的默认端口为5666

     # tar xf nrpe-2.15.tar.gz

     # cd nrpe-2.15

     # ./configure --with-nrpe-user=nagios \

     --with-nrpe-group=nagios \

     --with-nagios-user=nagios \

     --with-nagios-group=nagios \

     --enable-command-args \

     --enable-ssl \

     --sysconfdir=/etc/nrpe

     # make all

     # make install-plugin

     # make install-daemon

     # make install-daemon-config

 

 3: 修改 /etc/nrpe/nrpe.conf 文件。

   allowed_hosts=192.168.2.20          要允许服务器IP监控

   server_address=192.168.2.3  被监控机自己IP


 4: 手动启动 nagios

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

 配置nrpe的启动脚本如下:

 

#!/bin/bash

# chkconfig: 2345 88 12

# description: NRPE DAEMON

NRPE=/usr/local/nagios/bin/nrpe

NRPECONF=/etc/nrpe/nrpe.cfg

 case "$1" in

        start)

                echo -n "Starting NRPE daemon..."

                $NRPE -c $NRPECONF -d

                echo " done."

                ;;

        stop)

                echo -n "Stopping NRPE daemon..."

                pkill -u nagios nrpe

                echo " done."

        ;;

        restart)

                $0 stop

                sleep 2

                $0 start

                ;;

        *)

                echo "Usage: $0 start|stop|restart"

                ;;

        esac

exit 0

 

 三:服务器监控端口安装NRPE插件:

 1: # tar xf nrpe-2.15.tar.gz

     # cd nrpe-2.15

    # ./configure 

  --with-nrpe-user=nagios 

  --with-nrpe-group=nagios      

  --with-nagios-user=nagios      

  --with-nagios-group=nagios      

  --enable-command-args      

  --enable-ssl --sysconfdir=/etc/nrpe

     # make all

     # make install-plugin

 

2:探测:能否与被监控机通讯

  [root@centos ~]# /usr/local/nagios/libexec/check_nrpe -H 192.168.2.3

  NRPE v2.15

 

注意:通过NRPE监控远程Linux主机要使用chech_nrpe插件进行,其语法格式如下:

check_nrpe -H <host> [-n] [-u] [-p <port>] [-t <timeout>] [-c <command>] [-a <arglist...>]

 

四:配置文件设置:

1:在linux被监控机:/etc/nrpe.conf 定义监控具体的执行命令

command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /

定义个监控名[check_sda1]执行后面/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /。    [check_sda1]自己随便定义名。后面会被调用。

 

2:Nagios 监控机:

define command {

      command_name check_nrpe  定义命令名为check_nrpe,这个名可以自己取。下面调用名

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

       }

说明:定义个check_nrpe命令,并定义一个参数$ARG1$

 

define service{

        use                             generic-service

        host_name                       nginx

        service_description             check_sda1

        check_command                   check_nrpe!check_sda1

        }

说明:调用上面定义的check_nrpe这个命令名,并把check_sda1传递给$ARG1$

 





你可能感兴趣的:(mysql,nagios,phpadmin)