Nagios监控远程主机
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; line-height: 150%; font-size: 13.5pt; font-family: "Calibri", "sans-serif" }
h1 { margin-top: 17.0pt; margin-right: 0cm; margin-bottom: 16.5pt; margin-left: 0cm; text-indent: 56.2pt; line-height: 240%; page-break-after: avoid; font-size: 22.0pt; font-family: "Calibri", "sans-serif" }
h2 { margin-top: 13.0pt; margin-right: 0cm; margin-bottom: 13.0pt; margin-left: 0cm; line-height: 172%; page-break-after: avoid; font-size: 18.0pt; font-family: "Calibri Light", "sans-serif" }
h3 { margin-top: 13.0pt; margin-right: 0cm; margin-bottom: 13.0pt; margin-left: 0cm; line-height: 172%; page-break-after: avoid; font-size: 16.0pt; font-family: "Calibri", "sans-serif" }
h4 { margin-top: 14.0pt; margin-right: 0cm; margin-bottom: 14.5pt; margin-left: 0cm; line-height: 156%; page-break-after: avoid; font-size: 14.0pt; font-family: "Calibri Light", "sans-serif" }
p.MsoHeader,li.MsoHeader,div.MsoHeader { margin: 0cm; margin-bottom: .0001pt; text-align: center; line-height: 150%; border: none; padding: 0cm; font-size: 9.0pt; font-family: "Calibri", "sans-serif" }
p.MsoFooter,li.MsoFooter,div.MsoFooter { margin: 0cm; margin-bottom: .0001pt; line-height: 150%; font-size: 9.0pt; font-family: "Calibri", "sans-serif" }
span.MsoIntenseEmphasis { color: #5B9BD5; font-weight: bold; font-style: italic }
span.1Char
{ font-weight: bold }
span.2Char
{ font-family: "Calibri Light", "sans-serif"; font-weight: bold }
span.3Char
{ font-weight: bold }
span.4Char
{ font-family: "Calibri Light", "sans-serif"; font-weight: bold }
span.Char { }
span.Char0 { }
p.alt0,li.alt0,div.alt0 { margin: 0cm; margin-bottom: .0001pt; text-indent: 28.0pt; line-height: 150%; background: #E7E6E6; border: none; padding: 0cm; font-size: 13.5pt; font-family: "Calibri", "sans-serif" }
.MsoChpDefault { font-size: 10.0pt; font-family: "Calibri", "sans-serif" }
.MsoPapDefault { line-height: 150% }
div.WordSection1 { }
ol { margin-bottom: 0cm }
ul { margin-bottom: 0cm }
Nagios监控远程主机
Nagios 主要用于监控一台或者多台本地主机及远程的各种信息,包括本机资源及对外的服务等。默认的Nagios 配置没有任何监控内容,仅是一些模板文件。若要让Nagios 提供服务,就必须修改配置文件,增加要监控的主机和服务,下面将详细介绍。
|
文件名或目录名 |
用途 |
|
cgi.cfg |
控制CGI访问的配置文件 |
|
nagios.cfg |
Nagios 主配置文件 |
|
resource.cfg |
变量定义文件,在些文件中定义变量,以便由其他配置文件引用,如$USER1$ |
|
objects |
objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象 |
|
objects/commands.cfg |
命令定义配置文件,其中定义的命令可以被其他配置文件引用 |
|
objects/contacts.cfg |
定义联系人和联系人组的配置文件 |
|
objects/localhost.cfg |
定义监控本地主机的配置文件 |
|
objects/printer.cfg |
定义监控打印机的一个配置文件模板,默认没有启用此文件 |
|
objects/switch.cfg |
定义监控路由器的一个配置文件模板,默认没有启用此文件 |
|
objects/templates.cfg |
定义主机和服务的一个模板配置文件,可以在其他配置文件中引用 |
|
objects/timeperiods.cfg |
定义Nagios 监控时间段的配置文件 |
|
objects/windows.cfg |
监控Windows 主机的一个配置文件模板,默认没有启用此文件 |
为了能更清楚的说明问题,同时也为了维护方便,建议将nagios各个定义对象创建独立的配置文件:
· 创建hosts.cfg文件来定义主机和主机组以及服务
· 用默认的contacts.cfg文件来定义联系人和联系人组
· 用默认的commands.cfg文件来定义命令
· 用默认的timeperiods.cfg来定义监控时间段
· 用默认的templates.cfg文件作为资源引用文件

NRPE 总共由两部分组成:
·check_nrpe 插件,位于监控主机上
·NRPE daemon,运行在远程的Linux主机上(通常就是被监控机)
按照上图,整个的监控过程如下:
当Nagios 需要监控某个远程Linux 主机的服务或者资源情况时:
1.Nagios 会运行check_nrpe 这个插件,告诉它要检查什么;
2.check_nrpe 插件会连接到远程的NRPE daemon,所用的方式是SSL;
3.NRPE daemon 会运行相应的Nagios 插件来执行检查;
4.NRPE daemon 将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。
5.注意:NRPE daemon 需要Nagios 插件安装在远程的Linux主机上,否则,daemon不能做任何的监控。
被监控端安装NRPE
NRPE依赖于nagios-plugins,因此,需要先安装nagios-plugins
nagios-plugins-2.0.3.tar.gz
nrpe-2.15.tar.gz
安装Plugins
useradd -s /sbin/nologin nagios 创建nagios用户,不允许登陆系统
解压
cd /usr/local/src 进入源码包目录
tar -zxf nagios-plugins-2.0.3.tar.gz 解压plugins
cd nagios-plugins-2.0.3 进入plugins目录
配置编译
./configure--prefix=/usr/local/nagios \
--with-nagios-user=nagios \
--with-nagios-group=nagios \
--with-mysql=/usr/local/mysql
根据服务器mysql安装路径进行调整更改,如不监控mysql可不加此选项
编译安装
make 编译
make install 编译安装
验证安装
/usr/local/nagios/libexex/ 下是否有很多 check文件
有成功,无就重新安装
安装npre
yum -y install xinetd 将nrpe作为xinetd下独立服务运行
解压
cd /usr/local/src 进入源码包目录
tar -zxf nrpe-2.15.tar.gz 解压nrpe
cd nrpe-2.15 进入nrpe目录
配置编译
./configure --prefix=/usr/local/nagios \
--with-nrpe-user=nagios \
--with-nrpe-group=nagios \
--with-nagios-user=nagios \
--with-nagios-group=nagios \
--enable-command-args \
--enable-ssl
编译安装
make all
make install-plugin 安装check_nrpe 这个插件
make install-daemon 安装deamon
make install-daemon-config 安装配置文件
make install-xinetd 将NRPE deamon作为xinetd下一个服务运行xinetd就必须要先安装
编辑配置文件
vim /etc/services
nrpe 5666/tcp # NRPE 最后添加一行
vim /etc/xinetd.d/nrpe
only_from 后面添加监控端地址
# default: on
# description: NRPE (Nagios Remote Plugin
Executor)
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server =
/usr/local/nagios/bin/nrpe
server_args = -c
/usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 端口监听正常,nrpe服务正常启动
注意:-c 后面接的监控命令必须是nrpe.cfg 文件中定义的。也就是NRPE
daemon只运行nrpe.cfg中所定义的命令。
cd /usr/local/nagios/etc
cat nrpe.cfg |grep -v "^#"|grep
-v "^$"
log_facility=daemon
pid_file=/var/run/nrpe.pid
server_port=5666
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=127.0.0.1
dont_blame_nrpe=0
allow_bash_command_substitution=0
debug=0
command_timeout=60
connection_timeout=300
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 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs
-w 150 -c 200
红色部分是命令名,也就是check_nrpe 的-c 参数可以接的内容,等号 “=” 后面是实际执行的插件程序(这与commands.cfg
中定义命令的形式十分相似,只不过是写在了一行)。也就是说check_users 就是等号后面/usr/local/nagios/libexec/check_users -w 5 -c 10 的简称。
常见问题分析
错误:SSL headers...
configure: error: Cannot find ssl headers
解决:yum -y install openssl-devel
监控端安装NRPE
监控端已经安装plugins 直接安装nrpe即可
解压
cd /usr/local/src 进入源码包目录
tar -zxf nrpe-2.15.tar.gz 解压nrpe
cd nrpe-2.15 进入nrpe目录
配置编译
./configure --prefix=/usr/local/nagios \
--with-nrpe-user=nagios \
--with-nrpe-group=nagios \
--with-nagios-user=nagios \
--with-nagios-group=nagios \
--enable-command-args \
--enable-ssl
编译安装
make all
make install-plugin 安装check_nrpe 这个插件
测试NRPE
在监控端上我们已经装好了nrpe,测试监控机使用check_nrpe 与被监控机运行的nrpe
daemon之间的通信。
/usr/local/nagios/libexec/check_nrpe -H
192.168.44.200
NRPE v2.15 正确返回了NRPE的版本信息,说明一切正常。
监控
vim /usr/local/nagios/etc/objects/commands.cfg
末尾定义一行nrpe
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe
-H $HOSTADDRESS$ -c $ARG1$
}
command_name 定义命令名称为check_nrpe,在linux-services.cfg中要使用这个名称.
command_line #这是定义实际运行的插件程序.
写发完全按照check_nrpe这个命令的用法,不知道用法的就用check_nrpe –h查
-c 后面带的$ARG1$ 参数是传给nrpe daemon
执行的检测命令,之前说过了它必须是nrpe.cfg 中所定义的那5条命令中的其中一条。在linux-services.cfg
中使用check_nrpe 的时候要用 “!” 带上这个参数。
定义Linux主机的监控
vim
/usr/local/nagios/etc/objects/linux-services.cfg
define host{
use linux-server
host_name Nagios-Linux
address 192.168.200.44 #被监控端IP
}
define service{
usegeneric-service
host_nameNagios-Linux
service_description Current Load
check_commandcheck_nrpe!check_load
}
define service{
usegeneric-service
host_name Nagios-Linux
service_description Check Disk sda1
check_commandcheck_nrpe!check_sda1
}
define service{
usegeneric-service
host_nameNagios-Linux
service_description Total Processes
check_commandcheck_nrpe!check_total_procs
}
define service{
usegeneric-service
host_nameNagios-Linux
service_description Current Users
check_command check_nrpe!check_users
}
define service{
usegeneric-service
host_nameNagios-Linux
service_description Check Zombie Procs
check_command check_nrpe!check_zombie_procs
}
define service{
use generic-service
host_nameNagios-Linux
service_description Check Swap
check_command check_nrpe!check_swap
}
define service{
use generic-service
host_nameNagios-Linux
service_description MySQL
service
check_commandcheck_nrpe!check_mysql
}
define service{
usegeneric-service
host_nameNagios-Linux
service_description HTTP
check_commandcheck_nrpe!check_http
}
vim /usr/local/nagios/etc/ nagios.cfg
添加如下一行
cfg_file=/usr/local/nagios/etc/objects/linux-services.cfg
将linux-services.cfg包含到监控列表
自定义监控服务
还有一个任务是要监控Nagios-Linux 的Mysql情况。但是在被监控端nrpe.cfg 中默认没有定义这个监控功能的命令。怎么办?手动在nrpe.cfg 中添加,也就是自定义NRPE命令。
在被监控机上增加check_swap 命令的定义
vi
/usr/local/nagios/etc/nrpe.cfg
增加下面这一行
command[check_mysql]=/usr/local/nagios/libexec/check_mysql
-H 192.168.44.200 -P 3306 -u nagios -p 123456
nagios用户必须具有远程登陆权限
修改了配置文件,当然要重启。
define service{
use generic-service
host_nameNagios-Linux
service_description MySQL service
check_commandcheck_nrpe!check_mysql
}
在监控机(Nagios-Server)上增加这个check_mysql 监控项目
同理,Nagios-Linux 上我还开启了http 服务,需要监控一下,按照上面的做法,在被监控机(Nagios-Linux)上增加check_http 命令的定义
# vi /usr/local/nagios/etc/nrpe.cfg
增加下面这一行
command[check_http]=/usr/local/nagios/libexec/check_http -I
127.0.0.1
在监控机(Nagios-Server)上增加check_http 监控项目
define service{
usegeneric-service
host_nameNagios-Linux
service_description HTTP
check_commandcheck_nrpe!check_http
}
所有的配置文件已经修改好了,现在重启Nagios。
重启nagios
/usr/local/nagios/bin/nagios -v
/usr/local/nagios/etc/nagios.cfg 检测nagios配置文件
Total Warnings: 0
Total Errors: 0
service nagios restart 重启nagios
查看监控

监控正常
Nagios监控远程主机的更多相关文章
- nagios监控远程主机端口
1 被监控主机上的操作 修改nrpe插件内容: 在其中增加的内容如下: 表示的含义为监控主机的端口631和661,这个主要是监控命令 重启xinetd服务: 2 监控主机上的操作 查看监控命令配置文件 ...
- nagios监控远程主机服务可能出现的问题
1.使用插件NRPE监控命令不存在 在添加服务的时候,命令配置文件中需要传递一个参数,那么在监控服务配置文件中,需要添加一个!表示后面的为参数. 出现未定义的命令,查看被监控主机上的配置文件,添加监控 ...
- nagios监控实用教程
nagios监控实用教程 Nagios作为开源网络监视工具,它不但可以有效的监控内存.流量.数据库使用情况.它还可以Windows.Linux主机状态.本专题收录了有关Nagios监控相关文章,供大家 ...
- Security基础(四):OpenSSL及证书服务常用系统监控命令、搭建nagios监控服务器、配置文件及插件使用、监控远程主机的公有数据、监控远程主机的私有数据
一.OpenSSL及证书服务常用系统监控命令 目标: 本案例要求练习常用的系统监控命令完成以下任务: 使用vmstat命令监控内存及磁盘I/O信息 使用iostat命令监控CPU处理器及磁盘的I/O信 ...
- Nagios监控平台搭建
Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员, ...
- nagios二次开发(四)---nagios监控原理和nagios架构简介
nagios监控原理 下面根据上面摘自网络的原理图对nagios的监控原理进行一下简单的说明: 1.nagios通过nsca进行被动监控.那么什么是被动监控呢?被动监测:就是指由被监测的服务器主动上传 ...
- nagios监控linux设置
本章主要用来设置nagios的相关配置文件,从而能实现对linux系统的监控. 在进行监控相关服务的时候,nagios会周期性的调用插件去监测服务器的状态,nagios自带的所有插件都放在如下目录: ...
- Nagios 监控系统架构
Nagios 监控系统架设全攻略 简介: Nagios 全名为(Nagios Ain’t Goona Insist on Saintood),最初项目名字是 NetSaint.它是一款免费的开源 IT ...
- Nagios监控
1.Nagios监控软件 Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警 ...
随机推荐
- C# 类型和变量
C# 中的类型有两种:值类型 (value type) 和引用类型 (reference type).值类型的变量直接包含它们的数据,而引用类型的变量存储对它们的数据的引用,后者称为对象.对于引用类型 ...
- Javascript 闭包与高阶函数 ( 一 )
上个月,淡丶无欲 让我写一期关于 闭包 的随笔,其实惭愧,我对闭包也是略知一二 ,不能给出一个很好的解释,担心自己讲不出个所以然来. 所以带着学习的目的来写一写,如有错误,忘不吝赐教 . 为什么要有闭 ...
- BZOJ 3527: [Zjoi2014]力(FFT)
我们看一下这个函数,很容易就把他化为 E=sigma(aj/(i-j)/(i-j))(i>j)-sigma(aj/(i-j)/(i-j))(j>i) 把它拆成两半,可以发现分子与分母下标相 ...
- libevent学习总结
1. 信息隐藏:看*-internal.h文件 如bufferevent_private结构体在bufferevent_async.c中使用时: static inline struct buffer ...
- Jsp注册界面——request对象
1. Reg.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...
- 程序点滴001_Python模拟点阵数字
尝试过很多编程语言,写过不少程序(当然,基本上都是些自娱自乐或给自己用的工具类的小玩意儿),逐渐认识到编写程序是一个不断完善.不断优化的过程——编程首先要有一个想法(目标),围绕这个目标形成最基本的功 ...
- php+redis 简易的实现文章发布系统(用户投票系统)
/** * @data 文章发布 * 文章详情散列表中递增ID,讲文章发布者ID写入投票用户集合中,设置投票时间为一周 * 讲文章内容写入文章散列中,讲文章写入文章评分有序集合和文章发布有序集合中 * ...
- PCB行业ERP解决方案
普实PCB管理系统包括PCB企业从接到订单开始,编排生产计划.制作工程指示.生产工具.准备物料.品质保障.工序生产.设备维护等一系列与企业运作密切相关的环节,使得企业的各个部门能够紧密联系.相互协调, ...
- 简单聊聊HTTP/TCP/IP协议
经过几天的面试,有很多公司的面试官都会问到是否了解HTTP/TCP/IP协议? 一遇到这个问题,就一脸懵逼,虽然是计算机基层的东西,看来是必须得了解的,回到家之后,就查找了一些资料,整理了一篇博客,简 ...
- 1782: [Usaco2010 Feb]slowdown 慢慢游
1782: [Usaco2010 Feb]slowdown 慢慢游 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 570 Solved: 346[Sub ...