nagios学习笔记【4】--nrpe的安装和使用

来源:互联网 发布:96年nba总决赛数据 编辑:程序博客网 时间:2024/05/29 05:16

首先,从我的理解来看,nagios实现监控主要是两种方式:

(1)通过ssh协议,远程登录到被监控机器上,然后通过执行相关监控命令来得到监控数据;

(2)使用UDP或者TCP协议,首先在被监控服务器上开启一个常驻服务:用于获取监控数据。之后监控主机向被监控机器发送相应的监控请求,被监控机器则调用相关监控命令获取数据并回传给监控主机。


这样看,其实nagios的监控方式的区别就在于负载的消耗。


nagios提供一个插件,叫作check_by_ssh,它是应用共享式SSH密钥执行对远程主机的检测。这种方法会加重监控主机的负载,一般不提倡使用。

nagios提供另一个插件,也就是今天要谈的nrpe。

NRPE的实际运行架构如下:


现在重点谈一下nrpe的安装和配置。

1. NRPE的安装

NRPE的安装分为两个部分:在监控主机上的安装和被监控主机上的安装,具体步骤如下:

(1)准备工作

下载相应的安装文件:

nrpe.2.13.tar.gz   (NRPE的安装文件)

nagios-plugins-1.4.15.tar.gz  (nagios的插件包)


(2)在监控主机上的安装

tar zxvf nrpe-2.12.tar.gz

cd nrpe-2.12

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

make all

make install-plugin

(3)在被监控主机上的安装

groupadd nagios

useradd -g nagios -d /usr/local/nagios -s /sbin/nologin nagios

1)被监控机安装plugin

tar zxf nagios-plugins-1.4.15.tar.gz

cd nagios-plugins-1.4.15

./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios --with-ping-command="/bin/ping" 

make

make install

#查看播件文件是否已安装在这个目录

ls /usr/local/nagios/libexec

2)被监控机安装NRPE

tar zxvf nrpe-2.13.tar.gz

cd nrpe-2.13

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

make all

make install-plugin

make install-daemon

make install-daemon-config

chown -R nagios:nagios /usr/local/nagios

2. NRPE的配置

NRPE的配置也是分为两部分:在监控主机上的配置和被监控主机上的配置,具体如下:

(1)在被监控主机上的配置

vi /usr/local/nagios/etc/nrpe.cfg

allowed_hosts=127.0.0.1,192.168.1.91

#Nagios监控机的地址或域名

修改/etc/hosts.allow增加监控机ip

echo 'nrpe:192.168.1.91' >> /etc/hosts.allow

启动 NRPE 守护进程:

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

可以将此命令加入 /etc/rc.local ,以便开机自动启动。

echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.local

检查 NRPE 是否正常:

在被监控机上

/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1

查看相应的端口:netstat -an |grep 5666

防火墙开启5666 允许局域网IP或固定IP连接

在监控主机上

/usr/local/nagios/libexec/check_nrpe -H $目标主机地址

都应该可以输出 NRPE 的版本: NRPE v2.12

检查可监控的服务

在被监控端的 nrpe.cfg 文件中,可以看到这样的配置:

command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

这是用来检查 CPU 负载的。

如果需要自定参数则使用下面命令

command[check_load]=/usr/local/nagios/libexec/check_load -w $ARG1$ -c $ARG2$

并开启dont_blame_nrpe =1

开启参数将会带来一定的安全风险

被监控机重启nrpe

ps aux|grep nrpe

kill $pid

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

(2)在监控主机上的配置

在监控机commands.cfg 添加nrpe的定义

# 'check_nrpe ' command definition

define command{

command_name check_nrpe

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

}

增加hostA.cfg

在/usr/local/nagios/etc/objects/ 目录下新建文件:hostA.cfg

把A.cfg添加到nagios主机:

echo "cfg_file=/usr/local/nagios/etc/objects/hostA.cfg" >> /usr/local/nagios/etc/nagios.cfg

如果要再添加B机器方法炮制就可以了

hostA.cfg

define host{

use generic-server

host_name A

alias A

address A 的IP

}

define service{

use generic-service

host_name A

service_description load

check_command check_nrpe!check_load

#使用自定参数

#check_command check_nrpe!check_load!6.0,5.0,4.0!15.0,8.0,6.0

}

重启监控机nagios

service nagios reload

访问http://localhost/nagios就可以看到新增的机器了

如何修改nrpe端口

被监控机nrpe.cfg修改server_port为15666

server_port=15666

重启nrpe

监控机commands.cfg增加-p 15666

define command{

command_name check_nrpe

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

}

重启nagios就可以了


附注:

如果nagios的监控服务出现“Connection refused or timed out”的错误信息,需要进行以下检查和修复工作:

在被监控主机上操作:

检查nrpe.cfg中allowed_hosts是否包含监控机ip地址

检查/etc/hosts.allow文件中监控机ip地址nrpe:192.168.1.91

检查iptables

开放5666端口

iptables -L

iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 5666 -j ACCEPT

#注意顺序

iptables -L

service iptables save

service iptables restart