天天看点

CentOS安装Nagios+NRPE

Linux下有2大监控神器cacti+nagios,下面我把我自己搭建nagios的步骤记录下来,以便以后需要的时候看。

首先安装依赖包

#yum install -y httpd mysql mysql-devel mysql-server php php-mysql gcc gcc-c++ gblic gblic-devel gd gd-devel openssl-devel

添加nagios用户,用户组

#groupadd nagcmd

#useradd nagios

#usermod -a -G nagcmd nagios

#usermod -a -G nagcmd daemon(http的user)

下载nagios安装包,解压

开始编译

#./configure --prefix=/etc/nagios \

>--with-nagios-user=nagios \

>--with-nagios-group=nagios \

>--enable-event-broker

#make all

#make install

#make install-init

#make install-commandmode

#make install-config

#make install-webconf(编译安装的httpd会出现错误)

安装nagios-plugins

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

>--with-nagios-group=nagios \

>--with-mysql=/path/to/mysql(监控mysql必须添加此选项)

#make && make install

下面开始安装nrpe

首先确定开发环境

#yum grouplist

确定有Development tools和Development Libraries

如果没有就安装

#yum groupinstall -y "Development tools" "Development Libraries"

开始安装nrpe

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

>--with-nagios-group=nagios \

>--with-nrpe-user=nagios \

>--with-nrpe-group=nagios \

>--enable-command-args \

>--enable-ssl

#make all

#make install-plugin

服务器端不需要开始nrpe服务

下面开始配置客户端

nrpe依赖于nagios-plugins,首先安装nagios-plugins

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

>--with-nagios-group=nagios \

>--with-mysql=/path/to/mysql(监控mysql必须添加此选项)

#make && make instal

下面开始安装nrpe

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

>--with-nagios-group=nagios \

>--with-nrpe-user=nagios \

>--with-nrpe-group=nagios \

>--enable-command-args \

>--enable-ssl

#make all

#make install-plugin

#make install-daemon(安装守护进程)

#make install-daemon-config(安装守护进程配置文件)

修改nrpe.cfg文件

找到allowed_hosts添加你的服务器的IP

启动nrpe

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

下面就可以在服务器端定义主机,定义命令开始监控

定义命令

define command{

        command_name        check_nrpe

        command_line          $USER1$/check_nrpe -H  $HOSTADDRESS$  -c $ARG1$(-c表示在远程执行命令)

}

定义主机

define host {

        use                            linux-server

        host_name                webserver

        alias                          web-server

        address                      192.168.0.4

}

定义服务

define service {

        use                            linux-service

        host_name                  webserver

        service_description    PING

        check_command        check_nrpe!check_ping

}

想要监控什么就在客户端上定义命令,在服务器上填写检测内容就可以了

下面附上nrpe的启动脚本

#!/bin/sh

#

# Source function library

if [ -f /etc/rc.d/init.d/functions ]; then

  . /etc/rc.d/init.d/functions

elif [ -f /etc/init.d/functions ]; then

  . /etc/init.d/functions

elif [ -f /etc/rc.d/functions ]; then

  . /etc/rc.d/functions

fi

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

NrpeBin=/usr/local/nagios/bin/nrpe

NrpeCfg=/usr/local/nagios/etc/nrpe.cfg

LockFile=/var/lock/subsys/nrpe

# See how we were called.

case "$1" in

 start)

    # Start daemons.

    echo -n "Starting nrpe: "

    daemon $NrpeBin -c $NrpeCfg -d

  echo

  touch $LockFile

    ;;

 stop)

  # Stop daemons.

  echo -n "Shutting down nrpe: "

    killproc nrpe

  echo

  rm -f $LockFile

    ;;

 restart)

  $0 stop

  $0 start

    ;;

 status)

  status nrpe

    ;;

 *)

  echo "Usage: nrpe {start|stop|restart|status}"

    exit 1

esac

exit 0