监控Linux或Unix主机
有两种不同的方法监控linux/Unix主机的服务器和属性:
第一种是使用共享SSH键和check_by_ssh插件来执行远程服务器上的插件.这种方法会导致被监控的服务器负载过高不推荐使用.
第二种是使用NRPE插件,NRPE允许你执行远程服务器上的插件,推荐使用此种方式.
二、NRPE的使用
a)设计NRPE插件的原因是为了远程Linux/Unix主机执行插件,用来监控“本地”类似于CPU负载、内存使用量等等.如果想实现这些功能那么必须在linux/Unix主机中安装NRPE插件.
NRPE插件由两部分组成:
①check_nrpe插件,它使用在本地主机上.
②NRPE守护进程,它在远程监控机上运行.
当Nagios需要从远端监控机上获取监控项状态时
①Nagios将执行check_nrpe插件以及告诉它需要检查什么服务.
②本地check_nrpe插件通过SSL加密连接远端NRPE守护进程.
③NRPE守护检查运行相关插件来检查服务或资源的状态.
④检查结果是通过NRPE守护进程返回给check_nrpe插件,然后返回结果返回到Nagios进程.
2.使用示例
a)直接检查
在远程linux/Unix主机上使用NRPE插件来监控本地资源,如:cpu使用率、内存使用率、swap使用率、当前用户、硬盘使用率、进程状态等等.
b)间接检查
你可以使用NRPE插件间接的检查服务器资源,可能从监控机不能直接到达Nagios主机.
3.安装
为了使用NRPE插件,你需要在监控主机上安装NRPE.
a)先决条件
为了成功安装你需要:
- 在远程主机上有root权限
- 远程主机上有nagios用户
b)假设
你想运行NRPE守护进程没有inetd或者xinetd那么请阅读
- README
- SECURITY
c)远程主机设置
①创建账户
创建账户需要使用root账户
/usr/sbin/useradd nagios
passwd nagios
②安装Nagios插件
创建下载目录
mkdir ~/downloads
cd ~/downloads
通过http://www.nagios.org/download/下载最新版本的Nagios 插件压缩包
wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.6.tar.gz
解压Nagios tarball
tar -zxvf nagios-plugins-1.4.6.tar.gz
cd nagios-plugins-1.4.6
编译安装插件
./configure
make
make install
插件目录权限设置
chown nagios.nagios /usr/local/nagios
插件权限设置
chown -R nagios.nagios /usr/local/nagios/libexec
③安装xinetd
检查系统是否安装xinetd
若如没有安装可通过“yum install xinetd"命令安装
④安装NRPE守护进程
通过http://www.nagios.org/download/下载最新的NRPE源码包
cd ~/downloads
wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nrpe-2.8.tar.gz
解压NRPE
tar -zxvf nrpe-2.8.tar.gz
cd nrpe-2.8
编译NRPE插件
./configure
make all
安装NRPE插件、守护进程和配置文件
make install-plugin
make install-daemon
make install-daemon-config
使用xinetd服务启动NRPE守护进程
make install-xinetd
编辑/etc/xinetd.d/nrpe文件
在only_from添加本机IP地址和Nagios服务器IP地址
格式如下
only_from = 127.0.0.1 <nagios_ip_address>
编辑/etc/services文件
添加NRPE守护进程
格式如下
nrpe 5666/tcp #NRPE
重启xinetd服务
service xinetd restart
⑤测试NRPE守护进程
确保nrpe守护进程在xinetd下运行
netstat -at | grep nrpe
输出如下
tcp 0 0 *:nrpe *:* LISTEN
如果没有上述输出请检查第④步
检查nrpe运行是否正常
/usr/local/nagios/libexec/check_nrpe -H localhost
返回NRPE的版本为运行正常
⑥打开防火墙限制
iptables -I RH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT
保存规则
service iptables save
⑦自定义NRPE命令
你可以通过编辑/usr/local/nagios/etc/nrpe.cg来增加你想要的check命令
d)监控主机设置
在监控主机需要设置如下几步:
- 安装check_nrpe插件
- 创建check_nrpe插件使用Ngios命令定义
- 创建Nagios主机和服务器定义用来监控远程主机
①安装check_nrpe插件
安装需要使用root权限
创建下载目录
mkdir ~/downloads
cd ~/downloads
通过http://www.nagios.org/download/下载最新版的nrpe
wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nrpe-2.8.tar.gz
解压nrpe tarball
tar -zxvf nrpe-2.8.tar.gz
cd nrpe-2.8
编译NRPE插件
./configure
make all
安装NRPE插件
make install-plugin
②NRPE通讯测试
使用命令
/usr/local/nagios/libexec/check_nrpe -H 192.168.0.1
返回NRPE版本为正常
③创建命令定义
为了使Nagios配置文件使用它,你需要创建一个命令定义.
vi /usr/local/nagios/etc/commands.cfg
增加定义项
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
④创建主机和服务定义
创建一些对象的定义用来监控远程Linux/Unix主机.
接下来定义一个新的主机
建议增加linux监控主机时以主机为名称新建配置文件
cp /usr/local/nagios/etc/objects/localhost.cfg /usr/local/nagios/etc/objects/<linuxIP>.cfg
在将nagios.cfg配置中新增一行
vim /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/<linuxIP>.cfg
define host{
use linux-box ; Inherit default values from a template
host_name remotehost ; The name we're giving to this server
alias Fedora Core 6 ; A longer name for the server
address 192.168.0.1 ; IP address of the server
}
接下来定义一些服务
下列定义将监控远程主机上的CPU负载
define service{
use generic-service
host_name remotehost
service_description CPU Load
check_command check_nrpe!check_load
}
下列定义将监控远程主机上当前登录的用户
define service{
use generic-service
host_name remotehost
service_description Current Users
check_command check_nrpe!check_users
}
下列定义将监控远程主机上/dev/hda1的空间用量
define service{
use generic-service
host_name remotehost
service_description /dev/hda1 Free Space
check_command check_nrpe!check_hda1
}
下列服务将监控主机上进程总和
define service{
use generic-service
host_name remotehost
service_description Total Processes
check_command check_nrpe!check_total_procs
}
下列服务将监控主机上僵尸进程数
define service{
use generic-service
host_name remotehost
service_description Zombie Processes
check_command check_nrpe!check_zombie_procs
}
首先使用命令
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
确认配置文件正确
使用
service nagios restart
重启Nagios服务
4.自定义配置
每当想要自定义一个新的服务时需要做两件事情
1.在远程主机上nrpe.cfg中添加一个新的命令定义
2.Nagios定义一个新的服务定义
下列是自定义监控swap使用率的例子
a)远程主机配置
可以使用check_swap插件来监控swap的使用量.
check_swap在/usr/local/nagios/libexec目录下
使用nagios用户登录至远程主机
手动运行check_swap命令来调整警告阀值
下面例子表示如果swap空间小于20%告警“警告”,如果swap空间小于10%告警“严重警告”
/usr/local/nagios/libexec/check_swap -w 20% -c 10%
编辑nrpe配置文件
vi /usr/local/nagios/etc/nrpe.cfg
添加一行新的check_swap命令定义
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
重启NRPE进程即可.
具体信息请移步至