本文出自 “曹坏水” 博客,请务必保留此出处http://cao2012.blog.51cto.com/366908/1132113

NRPE是Nagios的一个功能扩展,它可在远程Linux和UNIX主机上执行插件程序。通过在远程服务器上安装NRPE构件及Nagios插件程序来向Nagios监控平台提供该服务器的一些本地情况,如CPU负载、内存使用、硬盘使用等。这里将Nagios监控平台称为Nagios服务器端,而将远程被监控的服务器称为Nagios客户端。

下图为NRPE构件监控远程主机本地信息的运行原理:

NRPE总共由两部分组成:

--check_nrpe插件,位于监控主机上

--NRPE daemon,运行在远程被监控的Linux主机上

当监控远程Linux/UNIX主机服务或资源时,流程如下:

1、nagios会运行check_nrpe这个插件,并且会告诉它需要检查什么;

2、check_nrpe插件会连接到远程的NRPE daemon,所用的方式是SSL;

3、NRPE daemon会运行相应的nagios插件来执行检查动作;

4、NPRE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理。

注意:NRPE daemon需要nagios插件安装在远程的Linux主机上,否则daemon不能做任何的监控。

通过NRPE的检测分为两种:

1)直接检测:检测的对象是运行NRPE的那台Linux主机的本地资源,原理如下:

直接使用NRPE插件监控远程Linux/UNIX主机的本地或者私有资源。例如:CPU负载,内存使用,SWAP空间使用,硬盘等运行状况。

2)间接检测:当运行Nagios的监控主机无法访问到某台被监控主机,但是运行NRPE的机器可以访问得到的时候,运行NRPE的主机就充当一个中间代理,将监控请求发送到被监控对象上。

其实这种情况一般出现在监控主机与被监控主机不在同一段网络内。日常企业里一般不非出现这样情况,所以下面我所做的都是直接检测。

Nagios监控客户端的安装

添加用户名

[root@testdb ~]# useradd -s /sbin/nolgin nagios

安装Nagios的插件nagios-plugin

[root@Nagios ~]# tar -zxvf nagios-plugins-1.4.16.tar.gz

[root@testdb ~]# cd nagios-plugins-1.4.16

[root@testdb nagios-plugins-1.4.16]# ./configure

注意:如果你 RedHat AS4 版本的服务器要添加--enable-redhat-pthread-workaround 选项。

[root@testdb nagios-plugins-1.4.16]# make && make install
 
安装NRPE
[root@testdb ~]# tar zxvf nrpe-2.13.tar.gz 
[root@testdb ~]# cd nrpe-2.13
[root@testdb nrpe-2.13]# ./configure
输出下图的结果:

可以从上图中看出NRPE的端口是5666

下一步是make all,输出如下图截图所示:

安装check_nrpe插件

[root@testdb nrpe-2.13]# make install-plugin

其实被监控机不需要安装这个插件,这里我只是为测试!
安装deamon
[root@testdb nrpe-2.13]#make install-daemon
安装配置文件
[root@testdb nrpe-2.13]#make install-daemon-config
将NRPE deamon作为xinetd下的一个服务运行,在这个情况下xinetd就必须先安装好,一般系统都会默认安装了。
安装xinetd脚本
[root@testdb nrpe-2.13]#make install-xinetd
配置NRPE
[root@testdb ~]#vi /etc/xinetd.d/nrpe

#注意:在only_from添加Nagios监控服务器的IP地址。修改后如上图所示!

添加服务端口

[root@testdb ~]#vi /etc/services

#在文件末尾添加

nrpe 5666/tcp

重启服务并验证安装

[root@testdb ~]#/etc/init.d/xinetd restart

[root@testdb ~]# netstat -at|grep nrpe

tcp        0      0 *:nrpe                      *:*                         LISTEN

[root@testdb ~]# netstat -an|grep 5666

tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN

修改权限
[root@testdb ~]# chown -R nagios:nagios /usr/local/nagios/
测试NRPE是否正常工作
前面安装了check_nrpe这个插件用于测试,现在就是用的时候,执行
/usr/local/nagios/libexec/check_nrpe -H localhost,如下图所示:

也就是在本地用check_nrpe连接nrpe daemon是正常的。

/usr/local/nagios/libexec/check_nrpe –h查看这个命令的用法
可以看到用法是check_nrpe –H 被监控的主机 -c要执行的监控命令
注意:-c后面接的监控命令必须是nrpe.cfg文件中定义的.也就是NRPE daemon只运行nrpe.cfg中所定义的命令。
 
修改Nagios客户端NRPE的配置文件,如下图所示:

由于-c后面只能接nrpe.cfg中定义的命令,也就是说现在我们只能用上面定义的这五条命令.我们可以在本机实验一下.如下图所示:

Nagios服务器的部署

安装NRPE

[root@Nagios ~]# cd /usr/local/src/

[root@Nagios src]# tar zxvf nrpe-2.13.tar.gz

[root@Nagios src]# cd nrpe-2.13

[root@Nagios nrpe-2.13]# ./configure && make all

[root@Nagios nrpe-2.13]# make install-plugin

[root@Nagios nrpe-2.13]# make install-daemon

[root@Nagios nrpe-2.13]# make install-daemon-config

[root@Nagios nrpe-2.13]# make install-xinetd

配置NRPE

[root@Nagios ~]# vi /etc/xinetd.d/nrpe 如下图示:

#注意:在only_from添加要监控的主机IP地址,中间以空格隔开。
 
添加服务端口 
 
[root@Nagios ~]# vi /etc/services
#在文件末尾添加,如果不添加端口,nrpe 将不能正常运行
nrpe 5666/tcp #nrpe
[root@Nagios~]# /etc/init.d/xinetd restart
[root@Nagios ~]# netstat -na | grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:*
 
修改命令定义文件
 
由于命令定义文件里默认没有 check_nrpe 命令,所以需要先定义后使用。
[root@Nagios ~]# vim /usr/local/nagios/etc/objects/commands.cfg
#nrpe set 在文件末尾添加下面命令定义
define command{
command_name check_nrpe
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
 
修改Nagios服务器hosts.cfg和services.cfg文件,如下图所示:
hosts.cfg

services.cfg:

登陆验证配置

查看配置文件是否正确

[root@Nagios ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

重新加载配置文件

[root@Nagios ~]# /etc/init.d/nagios reload

用 浏览器登陆验证,如下图所示:

#这篇文章是根据Nagios官方文档和网上一些资料撰写的!附件已上传。

Nagios的安装配置与应用之五监控远程Linux服务器的更多相关文章

  1. jprofiler_监控远程linux服务器的JVM进程(实践)

    几天前写了一篇文章,jprofiler_监控远程linux服务器的tomcat进程(实践),介绍了使用jprofiler怎样监控远程linux的tomcat进程,这两天想了想,除了可以监控tomcat ...

  2. jprofiler_监控远程linux服务器的JVM进程(转 非常棒)

    几天前写了一篇文章,jprofiler_监控远程linux服务器的tomcat进程(实践),介绍了使用jprofiler怎样监控远程linux的tomcat进程,这两天想了想,除了可以监控tomcat ...

  3. 搭建基于Nagios的监控系统——之监控远程Linux服务器

    上一篇介绍了如何安装Nagios Core,这一篇跟大家分享一下如何将一台远程的Linux服务器加入纳入监控范围. 第一部分:在远程Linux上安装Nagios Plugins和NRPE   第一步: ...

  4. jprofiler_监控远程linux服务器的tomcat进程(实践)

    一.软件列表: windows和linux的jprofiler的版本必须一致 1.jprofiler_linux_9_1_1.tar.gz 2.jprofiler_windows_x64 9_1_1 ...

  5. nagios的安装配置

    主要参考博客:http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html 实验环境:centos6.4     最小化安装系统 **** ...

  6. Nagios学习笔记四:基于NRPE监控远程Linux主机

    1.NRPE简介 Nagios监控远程主机的方法有多种,其方式包括SNMP.NRPE.SSH和NCSA等.这里介绍其通过NRPE监控远程Linux主机的方式. NRPE(Nagios Remote P ...

  7. 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器

    阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 我在阿里云购买的服务器配置 CPU:1核 内存:2G 系统盘:40G 公共镜像:CentOS 6.5 64位 公网带宽:1Mbps ...

  8. Jvisualvm监控远程linux下Tomcat

    Jvisualvm监控远程linux下Tomcat 1.编辑tomcat/bin/catalina.sh 加入下面这段代码,中间无换行: CATALINA_OPTS="$CATALINA_O ...

  9. 搭建基于Nagios的监控系统——之监控远程Windows服务器

    分享了如何监控Linux服务器,我们来看看使用Nagios如何监控Windows服务器. 第一部分:配置被监控的Windows服务器   首先,访问 http://sourceforge.net/pr ...

随机推荐

  1. html dom的加载

    操作HTML DOM文档的一个难题是,你的JavaScript代码可能在DOM完全载入之前运行,这会导致你的代码产生一些问题.页面加载时浏览器内部操作的顺序大致是这样的: 1. HTML被解析. 2. ...

  2. OC12_自动释放池

    // // Dog.h // OC12_自动释放池 // // Created by zhangxueming on 15/6/18. // Copyright (c) 2015年 zhangxuem ...

  3. (转)如何在高并发分布式系统中生成全局唯一Id

    又一个多月没冒泡了,其实最近学了些东西,但是没有安排时间整理成博文,后续再奉上.最近还写了一个发邮件的组件以及性能测试请看 <NET开发邮件发送功能的全面教程(含邮件组件源码)> ,还弄了 ...

  4. Adapter模式

    Adapter模式主要用于将一个类的接口转换为另外一个接口,通常情况下再不改变原有体系的条件下应对新的需求变化,通过引入新的适配器类来完成对既存体系的扩展和改造.实现方式主要包括: 1.类的Adapt ...

  5. flex&bison 1

    .   {ECHO;}-----单独的flex使用中有效 .   { yyerror();}--------flex和bison交叉使用,即使不调用yyerror函数,也会报错的 error: syn ...

  6. 关于fputs和fgets的几个细节

    C语言中两个标准IO fputs和fgets都是针对行来进行数据的读取的!这里关于这两个IO函数我有几个小细节想在这里和大家分享一下,希望能够对大家产生帮助! 首先贴上这两个函数的函数声明,下面以这两 ...

  7. bootstrap响应式网页设计的9条基本原则!

    bootstrap响应式网页设计是针对多屏幕问题的一个很好的解决方案,但从印刷的视角来看有点困难.没有固定的页面尺寸,没有毫米或英寸,没有任何的物理限制,无从下手. 为了desktop和mobile单 ...

  8. 用AJAX自定义日历

    需求分析 在一些购物网站中,都会有促销活动,这些活动都在日历上标注出来,如何通过Ajax让日历 通过读取数据库中的信息,正确的把促销活动标注在日历上,本文通过自定义日历来实现这 个问题. 技术难点 日 ...

  9. php session的应用举例

    本文原始链接:http://www.jbxue.com/article/9281.html 1,session可以保存任意类型的数据.因为是保存在服务器上的(即已经序列化). 2,session运行机 ...

  10. 修改ECSHOP注册只需要email,并且使用email作为账号

    现在很多主流的电商网站都直接用email作为会员账号,好处是省得用户既要想一个用户名,又要填邮箱,邮箱对于电商网站的重要性不用多提,因此用email作为会员的唯一标识是很合理的做法,本文给出针对ECS ...