当前位置: 首页 > news >正文

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

1、NRPE简介

 

Nagios监控远程主机的方法有多种,其方式包括SNMP、NRPE、SSH和NCSA等。这里介绍其通过NRPE监控远程Linux主机的方式。

 

NRPE(Nagios Remote Plugin Executor)是用于在远端服务器上运行检测命令的守护进程,它用于让Nagios监控端基于安装的方式触发远端主机上的检测命令,并将检测结果输出至监控端。而其执行的开销远低于基于SSH的检测方式,而且检测过程并不需要远程主机上的系统帐号等信息,其安全性也高于SSH的检测方式。

 

2、安装配置被监控端

 

1)先添加nagios用户

# useradd -s /sbin/nologin nagios

 

2)NRPE依赖于nagios-plugins,因此,需要先安装

 

# tar zxf nagios-plugins-1.4.15.tar.gz

# cd nagios-plugins-1.4.15

# ./configure --with-nagios-user=nagios --with-nagios-group=nagios

# make all

# make instal

 

3)安装NRPE

 

# tar -zxvf nrpe-2.12.tar.gz

# cd nrpe-2.12.tar.gz

# ./configure --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

# make install-daemon

# make install-daemon-config

 

4)配置NRPE

 

# vim /usr/local/nagios/etc/nrpe.conf

 

log_facility=daemon

pid_file=/var/run/nrpe.pid

server_address=172.16.100.11

server_port=5666

nrpe_user=nagios

nrpe_group=nagios

allowed_hosts=172.16.100.1  #允许哪些nagios服务端查询

command_timeout=60

connection_timeout=300

debug=0                      #是否打开日志,0表示不打开,1表示打开,日志在message中

dont_blame_nrpe=1           #是否允许传递参数,1表示运行,0表示不允许

 

上述配置指令可以做到见名知义,因此,配置过程中根据实际需要进行修改即可。其中,需要特定说明的是allowed_hosts指令用于定义本机所允许的监控端的IP地址。

 

5)启动NRPE

 

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

 

为了便于NRPE服务的启动,可以将如下内容定义为/etc/init.d/nrped脚本:

 

#!/bin/bash

# chkconfig: 2345 88 12

# description: NRPE DAEMON

 

NRPE=/usr/local/nagios/bin/nrpe

NRPECONF=/usr/local/nagios/etc/nrpe.cfg

 

case "$1" in

start)

echo -n "Starting NRPE daemon..."

$NRPE -c $NRPECONF -d

echo " done."

;;

stop)

echo -n "Stopping NRPE daemon..."

pkill -u nagios nrpe

echo " done."

;;

restart)

$0 stop

sleep 2

$0 start

;;

*)

echo "Usage: $0 start|stop|restart"

;;

esac

exit 0

 

或者,也可以在/etc/xinetd.d目录中创建nrpe文件,使其成为一个基于非独立守护进程的服务,文件内容如下:

 

service nrpe

{

flags = REUSE

socket_type = stream

wait = no

user = nagios

group = nagios

server = /usr/local/nagios/bin/nrpe

server_args = -c /etc/nagios/nrpe.cfg -i

log_on_failure += USERID

disable = no

}

 

此种情况下启动NRPE进程需要通过重启xinetd来实现。

 

6)配置允许远程主机监控的对象

 

在被监控端,可以通过NRPE监控的服务或资源需要通过nrpe.conf文件使用命令进行定义,定义命令的语法格式为:command[<command_name>]=<command_to_execute>。比如:

当nrpe收到命令后其实是调用插件提供的命令,把结果在返回给nrpe,所以nagios服务端发送的命令为定义的命令

 

command[check_rootdisk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /

command[check_swap]=/usr/local/nagios/libexec/check_disk -w 40% -c 20%

command[check_sensors]=/usr/local/nagios/libexec/check_sensors

command[check_users]=/usr/local/nagios/libexec/check_users -w 10 -c 20

command[check_load]=/usr/local/nagios/libexec/check_load -w 10,8,5 -c 20,18,15

command[check_zombies]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

command[check_all_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

 

command[check_all_procs]=/usr/local/nagios/libexec/check_procs -w $ARG1$ -c $ARG2$

修改为可以传递参数的方式

转载于:https://www.cnblogs.com/djoker/p/5986990.html

相关文章:

  • 红外摄像头与白光摄像头的区别
  • 双击事件
  • 单机运行环境搭建之 --CentOS-6.5安装配置Tengine
  • 【windows】跑大型程序时不要休眠和睡眠
  • JAVA-反射学习
  • js中(与)、|(或)以及^(异或)的二进制使用
  • symfony框架学习
  • 趣解curl
  • CentOS更改yum源与更新系统
  • C#基础系列:开发自己的窗体设计器(PropertyGrid显示中文属性名)
  • CSS3盒模型-display:box
  • 2016 10 28考试 dp 乱搞 树状数组
  • Mac 下安装运行Rocket.chat
  • 阶段2-新手上路\项目-移动物体监控系统\Sprint1-声音报警子系统开发\第3节-嵌入式播放器移植...
  • 如何一步一步用DDD设计一个电商网站(二)—— 项目架构
  • angular学习第一篇-----环境搭建
  • javascript 总结(常用工具类的封装)
  • JS 面试题总结
  • php面试题 汇集2
  • Promise面试题2实现异步串行执行
  • Puppeteer:浏览器控制器
  • Python socket服务器端、客户端传送信息
  • Zepto.js源码学习之二
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 搞机器学习要哪些技能
  • 讲清楚之javascript作用域
  • 今年的LC3大会没了?
  • 项目管理碎碎念系列之一:干系人管理
  • 学习Vue.js的五个小例子
  • # 达梦数据库知识点
  • #define用法
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (poj1.2.1)1970(筛选法模拟)
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)springcloud实战之config配置中心
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (三)mysql_MYSQL(三)
  • (十三)Maven插件解析运行机制
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)树状数组
  • (转载)Google Chrome调试JS
  • ./和../以及/和~之间的区别
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 反射的使用
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • ?php echo ?,?php echo Hello world!;?
  • [100天算法】-实现 strStr()(day 52)
  • [2018-01-08] Python强化周的第一天
  • [C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改
  • [c]统计数字
  • [C++]二叉搜索树
  • [CakePHP] 在Controller中使用Helper
  • [CISCN2019 华东南赛区]Web11
  • [C语言]——内存函数