Nagios+pnp4nagios+rrdtool 安装配置nagios被监控端NRPE配置(二)
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配置(二)的更多相关文章
- 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 ...
- Nagios+pnp4nagios+rrdtool 安装配置为nagios添加自定义插件(三)
nagios博大精深,可以以shell.perl等语句为nagios写插件,来满足自己监控的需要.本文写mysql中tps.qps的插件,并把收集到的结果以图形形式展现出来,这样输出的结果就有一定的要 ...
- Security基础(六):部署Zabbix监控平台、配置及使用Zabbix监控系统、自定义Zabbix监控项目、实现Zabbix报警功能
一.部署Zabbix监控平台 目标: 本案例要求部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备: 在监控服务器上安装LAMP环境 修改PHP配置文件,满足Zab ...
- Spring学习总结(12)——Druid连接池及监控在spring配置
Druid连接池及监控在spring配置如下: <bean id="dataSource" class="com.alibaba.druid.pool.DruidD ...
- Nagios的基本安装配置
//////////////////////nagios//////////////////////nagios原理:http://www.linuxidc.com/Linux/2013-11/927 ...
- 1. Nagios和 NagiosQL安装及配置
目录 1. Nagios 和 NagiosQL简介 2. Nagios+NagiosQL搭建环境说明 3. Nagios.Nagios-plugins和NagiosQL的安装 4. 配置NagiosQ ...
- CentOS 7.4 下安装部署Nagios监控系统详细攻略(三)
Nagios是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户.它是基于GPLv2开发的开源软件,可免费获得及使用. nagios工作原理 nagios的功能是监控服务 ...
- nagios监控系统安装及配置
Nagios通常由一个主程序(Nagios).一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPE.NSCA.NSClient++和NDOUtils)组成.Ngios的监控工作 ...
- nagios 配置 check_traffic 流量监控模块(被监控端)
安装软件包yum -y install net-snmp*chkconfig nrpe onchkconfig snmpd on 使用SCP命令拷贝 check_traffic.sh 到 / usr/ ...
随机推荐
- Windows串口编程
串口基础知识 http://www.cnblogs.com/menlsh/archive/2013/01/28/2880580.html DTU知识 http://blog.csdn.net/xuto ...
- 在DLL中封装的VCL窗体Tab键响应的问题
在DLL中的子窗体不会响应Tab按键的,这个时候就需要手动去指定Tab键的操作,但是前提是主窗体要向这个窗体发送一个消息,一个Tab键按下的消息.基本顺序是这样的: 1. 主窗体用Hook技术捕获Ta ...
- Windows 8 动手实验系列教程 实验6:设置和首选项
动手实验 实验6:设置和首选项 2012年9月 简介 实验3介绍了合约并演示了应用程序如何轻松地与共享和搜索合约实现集成.合约同样包含设置超级按钮,它对活动的Windows应用商店应用的设置进行修改. ...
- Minor GC、Major GC和Full GC之间的区别(转)
在 Plumbr 从事 GC 暂停检测相关功能的工作时,我被迫用自己的方式,通过大量文章.书籍和演讲来介绍我所做的工作.在整个过程中,经常对 Minor.Major.和 Full GC 事件的使用感到 ...
- 使用TWebBrowser时存在内存泄漏问题的解决方案(使用SetProcessWorkingSetSize函数,或者修改OleCtrls.pas源码解决问题)
用TWebBrower不断打开多个网页,多某些版本的操作系统上运行一段时间后,发现占用系统内存达几百M,直到关闭程序后,占用的内存才能释放. 这个问题在网有很多讨论,比较多人的建议办法是用SetPro ...
- RPC 的概念模型与实现解析(转)
今天分布式应用.云计算.微服务大行其道,作为其技术基石之一的 RPC 你了解多少?一篇 RPC 的技术总结文章,数了下 5k+ 字,略长,可能也不适合休闲的碎片化时间阅读,可以先收藏抽空再细读:) 全 ...
- 16位图像Alpha混合的实现(用汇编写的,比MMX还要快)
Alpha 混合的算法很简单,基于下面的公式就可以实现: D := A * (S - D) / 255 + D D 是目标图像的像素, S 是源图像的像素 A 是 Alpha 值, 0 为全透明, 2 ...
- java垃圾回收那点事(二)不同gc策略的heap分配
在前面的文章中曾提到了在java虚拟机启动的时候会对G1,CMS, SerialGC定义不同的heap的类,并且定义不同的policy. CollectorPolicy CollectorPolicy ...
- Android开发 - ActivityLifecycleCallbacks用法初探
ActivityLifecycleCallbacks是什么? Application通过此接口提供了一套回调方法,用于让开发人员对Activity的生命周期事件进行集中处理. 为什么用Activity ...
- OC-Protocol实现业务代理
创建一个Protocol,相当于java的接口,但,有些方法不必实现,例如以下 #import <Foundation/Foundation.h> @protocol MyProtocol ...