如何用Nagios远程执行插件(NRPE)来检测服务器内存使用率

如何用Nagios远程执行插件(NRPE)来检测服务器内存使用率

先前的教程中,我们已经见到了如何在Nagios设置中设置Nagios远程执行插件(NRPE)。然而,监控内存使用率的脚本和插件并没有在原生的Nagios中。本篇中,我们会看到如何配置NRPE来监控远程服务器上的内存使用率。

我们要用的监控内存的脚本在Nagios 市场上,在创建者的Github仓库中也可以找到。

假设我们已经安装了NRPE,我们首先在我们想要监控的服务器上下载脚本。

准备远程服务器

在 Debain/Ubuntu 中:


  1. # cd /usr/lib/nagios/plugins/
  2. # wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
  3. # mv check_mem.pl check_mem
  4. # chmod +x check_mem

在 RHEL/CentOS 中:


  1. # cd /usr/lib64/nagios/plugins/ (or /usr/lib/nagios/plugins/ for 32-bit)
  2. # wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
  3. # mv check_mem.pl check_mem
  4. # chmod +x check_mem

你可以通过手工在本地运行下面的命令来检查脚本的输出是否正常。当使用NRPE时,这条命令应该会检测空闲的内存,当可用内存小于20%时会发出警告,并且在可用内存小于10%时会生成一个严重警告。


  1. # ./check_mem -f -w 20 -c 10


  1. OK - 34.0% (2735744 kB) free.|TOTAL=8035340KB;;;; USED=5299596KB;6428272;7231806;; FREE=2735744KB;;;; CACHES=2703504KB;;;;

如果你看到像上面那样的输出,那就意味这命令正常工作着。

现在脚本已经准备好了,我们要定义NRPE检查内存使用率的命令了。如上所述,命令会检查可用内存,在可用率小于20%时发出警报,小于10%时发出严重警告。


  1. # vim /etc/nagios/nrpe.cfg

对于 Debian/Ubuntu:


  1. command[check_mem]=/usr/lib/nagios/plugins/check_mem -f -w 20 -c 10

对于 RHEL/CentOS 32 bit:


  1. command[check_mem]=/usr/lib/nagios/plugins/check_mem -f -w 20 -c 10

对于 RHEL/CentOS 64 bit:


  1. command[check_mem]=/usr/lib64/nagios/plugins/check_mem -f -w 20 -c 10

准备 Nagios 服务器

在Nagios服务器中,我们为NRPE定义了一条自定义命令。该命令可存储在Nagios内的任何目录中。为了让本教程简单,我们会将命令定义放在/etc/nagios目录中。

对于 Debian/Ubuntu:


  1. # vim /etc/nagios3/conf.d/nrpe_command.cfg


  1. define command{
  2. command_name check_nrpe
  3. command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c '$ARG1$'
  4. }

对于 RHEL/CentOS 32 bit:


  1. # vim /etc/nagios/objects/nrpe_command.cfg


  1. define command{
  2. command_name check_nrpe
  3. command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
  4. }

对于 RHEL/CentOS 64 bit:


  1. # vim /etc/nagios/objects/nrpe_command.cfg


  1. define command{
  2. command_name check_nrpe
  3. command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
  4. }

现在我们定义Nagios的服务检查

在 Debian/Ubuntu 上:


  1. # vim /etc/nagios3/conf.d/nrpe_service_check.cfg


  1. define service{
  2. use local-service
  3. host_name remote-server
  4. service_description Check RAM
  5. check_command check_nrpe!check_mem
  6. }

在 RHEL/CentOS 上:


  1. # vim /etc/nagios/objects/nrpe_service_check.cfg


  1. define service{
  2. use local-service
  3. host_name remote-server
  4. service_description Check RAM
  5. check_command check_nrpe!check_mem
  6. }

最后我们重启Nagios服务

在 Debian/Ubuntu 上:


  1. # service nagios3 restart

在 RHEL/CentOS 6 上:


  1. # service nagios restart

在 RHEL/CentOS 7 上:


  1. # systemctl restart nagios.service

故障排除

Nagios应该开始在使用NRPE的远程服务器上检查内存使用率了。如果你有任何问题,你可以检查下面这些情况。

  • 确保NRPE的端口在远程主机上是总是允许的。默认NRPE的端口是TCP 5666。
  • 你可以尝试通过执行check_nrpe 命令: /usr/lib/nagios/plugins/check_nrpe -H remote-server 手工检查NRPE操作。
  • 你同样可以尝试运行check_mem 命令:/usr/lib/nagios/plugins/check_nrpe -H remote-server –c check_mem
  • 在远程服务器上,在/etc/nagios/nrpe.cfg中设置debug=1。重启NRPE服务并检查这些日志文件,/var/log/messages (RHEL/CentOS)或者/var/log/syslog (Debain/Ubuntu)。如果有任何的配置或者权限错误,日志中应该包含了相关的信息。如果日志中没有反映出什么,很有可能是由于请求在某些端口上有过滤而没有到达远程服务器上。

总结一下,这边教程描述了我们该如何调试NRPE来监控远程服务器的内存使用率。过程只需要下载脚本、定义命令和重启服务就行了。希望这对你们有帮助。

原文发布时间:2014-11-02

本文来自云栖合作伙伴“linux中国”

时间: 2024-12-22 10:47:50

如何用Nagios远程执行插件(NRPE)来检测服务器内存使用率的相关文章

check_updates 1.6.0发布 Nagios系统监控插件

check_updates 是一款Nagioshttp://www.aliyun.com/zixun/aggregation/13446.html">系统监控插件,用于检测基于RPM的系统(如:Red Hat, Fedora 或 CentOS)是否为最新的程序. check_updates 1.6.0该版本增加了一个选项来忽略非安全相关的更新. 使用范例: check_updates 1.6.0 [https://trac.id.ethz.ch/projects/nagios_plugin

金融安全资讯精选 2017年第七期:Equifax 泄漏 1.43 亿用户数据,Struts2 REST插件远程执行命令漏洞全面分析,阿里云护航金砖五国大会

   [金融安全动态] 美国信用评分公司Equifax 被攻击,泄漏 1.43 亿用户数据.点击查看原文   概要:泄露的信息包括用户社会安全码.驾照信息.生日信息.信用卡数据等.据SEC(U.S. Securities and Exchange Commission)的文件,三位Euifax董事已经售出了"一小部分"所持股票.Equifax 称黑客利用了 Web 应用的漏洞访问了某些文件,Apache Struts 受到的怀疑最多.Apache Struts 项目今年爆出了两个漏洞,

游戏安全资讯精选 2017年 第七期:游戏账号窃取日益猖獗,Struts2 REST插件远程执行命令漏洞全面分析,2017世界物联网博览会IoT安全观点

  [每周游戏行业DDoS态势]     [游戏安全动态] 游戏账号窃取日益猖獗,游戏运维人员如何做好防范?点击查看原文   概要:盗取游戏账号主要目的是获取个人信息在暗网售卖,并且用账号.虚拟货币.虚拟装备来盈利,这也意味着,游戏行业越发达,安全风险也就越高,因为攻击者的盈利空间越大. 作为游戏公司,可定期引导玩家去检查自己的账户密码是否受到数据泄露的影响:如果遇到游戏账号丢失或大面积被窃取,游戏公司需要尽快做好沟通:安全运维人员要随时关注登录游戏的活跃IP,如果遇到IP增加的情况,则需要及时

Struts2 REST插件远程执行命令漏洞全面分析,WAF支持检测防御

漏洞概述 2017年9月5日,Apache Struts 2官方发布一个严重级别的安全漏洞公告,该漏洞由国外安全研究组织lgtm.com的安全研究人员发现,漏洞编号为CVE-2017-9805(S2-052). 在一定条件下,攻击者可以利用该漏洞远程发送精心构造的恶意数据包,获取业务数据或服务器权限,存在高安全风险. 漏洞基本信息 当Struts2使用REST插件使用XStream的实例xstreamhandler处理反序列化XML有效载荷时没有进行任何过滤,可以导致远程执行代码,攻击者可以利用

CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告

一. 漏洞概述 2017年9月5日,Apache Struts 2官方发布一个严重级别的安全漏洞公告,该漏洞由国外安全研究组织lgtm.com的安全研究人员发现,漏洞编号为CVE-2017-9805(S2-052),在一定条件下,攻击者可以利用该漏洞远程发送精心构造的恶意数据包,获取业务数据或服务器权限,存在高安全风险. 二. 漏洞基本信息 漏洞编号:CVE-2017-9805 漏洞名称: Struts2 REST插件远程执行命令漏洞(S2-052) 官方评级: ** 严重 **漏洞描述: 当S

Nagios远程监控安装与配置详解图文第1/3页_组网教程

作为系统管理员,我最担心那些重要的在线系统在我不知情的情况下停机或者停止网络服务,而且那些发生故障的服务或主机有时候可能要好长一段时间才知道.尤其是遇到节假日,系统管理员就很紧张.要改变这种被动局面,这里我推荐网络监控软件Nagios,个人认为它最大的好处是可以发故障报警短信-只要Nagios监控的对象发生故障,系统就会自动发送短信到手机上.下面摘录Nagios官方网站的描述: Nagios is an open source host, service and network monitori

php强制转换类型和CMS远程管理插件的危险

远程管理插件是十分受WordPress站点管理员欢迎的工具,它们允许用户同时对多个站点执行相同的操作,如,更新到最新的发行版或安装插件.然而,为了实现这些操作,客户端插件需要赋予远程用户很大的权限.因此,确保管理服务器和客户端插件之间的通信安全且不能被攻击者伪造就变得相当重要了.本文将谈及几款可用插件,利用其弱点,攻击者甚至可以完全危及到运行这些插件的站点. ManageWP, InfiniteWP, and CMS Commander 这三个服务有着相同的客户端插件基础代码(目测最初是Mana

php强制转换类型和远程管理插件的危险

  PHP 中的类型强制转换和 C 中的非常像:在要转换的变量之前加上用括号括起来的目标类型. 允许的强制转换有: (int),(integer) - 转换成整型 (bool),(boolean) - 转换成布尔型 (float),(double),(real) - 转换成浮点型 (string) - 转换成字符串 (array) - 转换成数组 (object) - 转换成对象 注意在括号内允许有空格和制表符 还可以用settype ( mixed var, string type )进行强制

使用ssh远程执行命令批量导出数据库到本地(转)

  前天正在跟前端的同事调试功能.服务器开好,模拟的玩家登录好,就在倒计时.这时突然运营的同事跑过来说要统计几个服务器玩家的一些情况,也就是需要从几个服的数据库导出部分玩家的数据.好吧,我看了一下时间,11:47.心想,跟前端调试完,去吃个饭再午休一下那就下午再给吧.没想对方来一句"就导个数据库而已,要这么久么?",而且还是直接跟我上司说的.我嚓,好吧,我导.可问题来了,平时的统计是由php做的,批量部署这些是由运维做的.服务端完全没有对应的工具.而且服务器是在阿里云上的,数据库的用户