NRPE监控插件基础

NRPE总共由两部分组成:
(1).check_nrpe插件,运行在监控主机上。
(2).NRPE daemon,运行在远程的linux主机上(通常就是被监控机)

整个的监控过程如下:
当Nagios需要监控某个远程linux主机的服务或者资源情况时:
1).nagios会运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么.
2).check_nrpe插件会通过SSL连接到远程的NRPEdaemon.
3).NRPE daemon会运行相应的nagios插件来执行检查本地资源或服务.
4).NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理.
注意:NRPE daemon需要nagios插件安装在远程被监控linux主机上,否则,daemon不能做任何的监控.

Nagios被监控端安装

Step1
安装nagios-plugin

useradd -s /sbin/nologin nagios

mkdir /usr/local/nagios

chown -R  nagios.nagios  /usr/local/nagios

tar -zxvf nagios-plugins-1.4.13.tar.gz

cd nagios-plugins-1.4.13

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

make  && make install

这一步完成后会在/usr/local/nagios/下生成两个目录libexec和share

Step2

改变主目录权限

chown  -R  nagios.nagios  /usr/local/nagios

Step3

安装客户端的nrpe

tar -zxvf nrpe-2.12.tar.gz

cd  nrpe-2.12

./configure

make all

make install-plugin

make install-daemon

make install-daemon-config

Step4

配置nrpe信息
vi/usr/local/nagios/etc/nrpe.cfg
将allowed_hosts=127.0.0.1
修改成你的nagios服务器的ip

Step5

启动nrpe

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

验证nrpe

netstat -an|grep 5666   察看是否在5666端口上监听

测试连通性

/usr/local/nagios/libexec/check_nrpe -Hlocalhost

察看是否能返回nrpv版本号,返回则正常!

Step6

vi /usr/local/nagios/etc/nrpe.cfg
可以看到里面监控对象
# The following examples use hardcoded command arguments...
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p/dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -sZ
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

我们为了监控swap
在nrpe.cfg中添加
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
注意:添加监控新项目所用的命令都在客户端的nrpe.cfg中添加

添加之后再次启动nrpe

先杀掉后台进程,然后kill-9 进程号

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

安装服务端nrpe

setp1

tar -zxvf nagios-nrpe_2.8.1.orig.tar.gz
cd nagios-nrpe_2.8.1
./configure --with-nagios-user=nagios --with-nagios-group=nagios
 make all

make install-plugin
然后我们测试下连通性
/usr/local/nagios/libexec/check_nrpe -H 被监控端ip
如果返回nrpe版本号,那么正常!
如果返回拒绝连接!那么telnet ip 5666看是否正常

step2
配置nrpe添加支持:

由于nrpe外构组件,所以必须在nagios服务器端得commands.cfg中定义 [root@localhost etc]# vi /usr/local/nagios/etc/objects/commands.cfg
最下面添加
#check nrpe
define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H$HOSTADDRESS$ -c $ARG1$
        }

step3

配置要监控的linux主机和服务,这里我们集中到了一起 以甜豆为例
[root@localhost etc]# vi /usr/local/nagios/etc/nagios.cfg

中间添加
cfg_file=/usr/local/nagios/etc/objects/servers/td.cfg
配置文件的名字可以自己定义
=================================================

新建td.cfg
[root@localhost etc]# vi /usr/local/nagios/etc/objects/servers/td.cfg

添加
define host{

use             linux-server,hosts-pnp

host_name       td-h2

alias           td

address         x.x.x.x

hostgroups      td

max_check_attempts 10

}

define host{

use             linux-server,hosts-pnp

host_name       td-76

alias           td

address         x.x.x.x

hostgroups      td

max_check_attempts 10

}

define host{

use             linux-server,hosts-pnp

host_name       td-77

alias           td

address        x.x.x.x

hostgroups      td

max_check_attempts 10

}

define host{

use             linux-server,hosts-pnp

host_name       td-78

alias           td

address         x.x.x.x

hostgroups      td

max_check_attempts 10

}

--沿着上面格式,依次定义主机

--定义主机组

define hostgroup{

hostgroup_name  td

alias           td

members         td-h2,td-76,td-77,td-78

}

--定义服务

define service{

use                            local-service,services-pnp        ; Name of service template to use

host_name                       td-h2,td-76,td-77,td-78

service_description             check_tps

check_command                   nrpe!check_tps

}

define service{

use                            local-service,services-pnp        ; Name of service template to use

host_name                       td-h2,td-76,td-77,td-78

service_description             check_qps

check_command                   nrpe!check_qps

}

define service{

use                            local-service,services-pnp        ; Name of service template to use

host_name                       td-h2,td-76,td-77,td-78

service_description             check_connect

check_command                   nrpe!check_connect

}

配置完毕 检测配置文件是否正确

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

正确的话,重新启动nagios

 

监控mysql服务安装插件check_mysql_health 插件,在被监控端

1)、在要监控mysql主机上面建立监控用户,用作mysql监控服务使用。赋权能使用即可,注意安全性

grant select,update,insert,delete on test.* to'my_perfor'@'localhost' identified by 'my_perfor';

2)、在nagios监控服务器上安装check_mysql_health插件.

tar -zxvf check_mysql_health-2.1.7.tar.gz

cd check_mysql_health-2.1.7

./configure --prefix=/usr/local/nagios--with-nagios-user=nagios --with-nagios-group=nagios --with-perl=/usr/bin/perl

make && make install

安装 perl-DBD-MySQL包,同时yum工具会把需要的包都安装上包含perl-DBI

yum install -y perl-DBD-MySQL

安装完毕 可以验证一下查看一下索引情况

./check_mysql_health--socket=/usr/local/mysql/tmp/mysql.sock --port 3306 --username my_perfor --passwordmy_perfor --warning 180 --critical 220 --mode threads-connected

check_mysql_health依赖于软件包 注意64位和32位服务器的区别

yum install -y perl-DBD-MySQL  perl-DBI  # check_mysql_health使用需要这二个发安装包 如下在65位服务器上 安装 mysql版本5.0.8

yum 安装很方便,会安装上依赖的包

没有安装软件包运行 check_mysql_health时报以下错误

缺少 perl-dbd-mysql包,报如下错误

CRITICAL - cannot connect to information_schema.install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains:. /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8) at (eval13) line 3.

Perhaps the DBD::mysql perl module hasn't been fully installed,

or perhaps the capitalisation of 'mysql' isn't right.

Available drivers: DBM, ExampleP, File, Gofer, Proxy, Sponge.

at ./check_mysql_health line 1862

在32位服务器上可能会出现如下问题

在运行./check_mysql_health出现以下错误提示,

[root@file]# ./check_mysql_health    
-bash: ./check_mysql_health: yes: badinterpreter: No such file or directory

解决方法

因为check_mysql_health是用perl写的,将check_mysql_health的第一行由原来的#! yes -w修改为#!/usr/bin/perl,这样就OK了

Nagios+pnp4nagios+rrdtool 安装配置nagios被监控端NRPE配置(二)的更多相关文章

  1. Nagios+pnp4nagios+rrdtool 安装配置nagios(一)

    基于的软件版本 Apache-2.0.63  php-5.3.2 nagios-3.2.3  nagios-plugins-1.4.15  rrdtool-1.4.5 nrpe-2.12 pnp4na ...

  2. Nagios+pnp4nagios+rrdtool 安装配置为nagios添加自定义插件(三)

    nagios博大精深,可以以shell.perl等语句为nagios写插件,来满足自己监控的需要.本文写mysql中tps.qps的插件,并把收集到的结果以图形形式展现出来,这样输出的结果就有一定的要 ...

  3. Security基础(六):部署Zabbix监控平台、配置及使用Zabbix监控系统、自定义Zabbix监控项目、实现Zabbix报警功能

    一.部署Zabbix监控平台 目标: 本案例要求部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备: 在监控服务器上安装LAMP环境    修改PHP配置文件,满足Zab ...

  4. Spring学习总结(12)——Druid连接池及监控在spring配置

    Druid连接池及监控在spring配置如下: <bean id="dataSource" class="com.alibaba.druid.pool.DruidD ...

  5. Nagios的基本安装配置

    //////////////////////nagios//////////////////////nagios原理:http://www.linuxidc.com/Linux/2013-11/927 ...

  6. 1. Nagios和 NagiosQL安装及配置

    目录 1. Nagios 和 NagiosQL简介 2. Nagios+NagiosQL搭建环境说明 3. Nagios.Nagios-plugins和NagiosQL的安装 4. 配置NagiosQ ...

  7. CentOS 7.4 下安装部署Nagios监控系统详细攻略(三)

    Nagios是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户.它是基于GPLv2开发的开源软件,可免费获得及使用. nagios工作原理 nagios的功能是监控服务 ...

  8. nagios监控系统安装及配置

    Nagios通常由一个主程序(Nagios).一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPE.NSCA.NSClient++和NDOUtils)组成.Ngios的监控工作 ...

  9. nagios 配置 check_traffic 流量监控模块(被监控端)

    安装软件包yum -y install net-snmp*chkconfig nrpe onchkconfig snmpd on 使用SCP命令拷贝 check_traffic.sh 到 / usr/ ...

随机推荐

  1. log4j的性能瓶颈定位与性能优化(org.apache.log4j.spi.RootLogger) (转)

    最近执行一个项目调优,发现使用第三方的Json库导致性能差.原以为问题就这么定位到了,结果去掉Json操作后,性能也不见好转. 现象非常诡异:CPU.内存.网络.磁盘使用率均有剩余,而且压力也是足够的 ...

  2. 基于visual Studio2013解决面试题之0304镜像二叉树

     题目

  3. 将n进制的数组压缩成字符串(0-9 a-z)同一时候解压

    比如一个3进制的数组: [1 1 2 2 2 0 0] 用一个字符串表示... 此类题目要明白两点: 1. 打表:用数组下标索引字符.同一时候注意假设从字符相应回数字: int index = (st ...

  4. iOS:获取图片Alpha图片

    -(void)createImages { // Load the alpha image, which is just the same Ship.png image used in the cli ...

  5. android 5.0新特性

    Android Lollipop 面向开发人员的主要功能 Material Design 设计 注重性能 通知 以大屏幕呈现 以文档为中心 连接性能再上一级 高性能图形 音频处理功能更强 摄像头和视频 ...

  6. javascript (十四) dom

    通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素. HTML DOM (文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object M ...

  7. mysql5.6 主从配置

    参考网址:http://www.cnblogs.com/zhoujie/p/mysql1.html http://kerry.blog.51cto.com/172631/277414/ 1.配置主库: ...

  8. VC/MFC 在ListCtl 控件中随鼠标移动提示单元格信息

    BEGIN_MESSAGE_MAP(CTipListCtrl, CListCtrl) //{{AFX_MSG_MAP(CTipListCtrl) ON_WM_MOUSEMOVE() ON_WM_DES ...

  9. VC GDI双缓冲机制绘图防屏幕闪烁实现步骤

    在OnDraw(CDC* pDC) 中添加如下代码 CDC MemDC; //首先定义一个显示设备对象 CBitmap MemBitmap;//定义一个位图对象 //随后建立与屏幕显示兼容的内存显示设 ...

  10. 移动开发的框架(用Firepower,不用listview,超快) good

    我是通过http传送xml后台是阿帕奇的http server,后台可以用delphi或php 都可以.用post 刚才试了试自带的TNetHttpClient,感觉还好,代码封装也不算深,收发数据也 ...