我对 NRPE 有这个问题,到目前为止我在网上找到的所有东西似乎都指向我已经尝试过的东西。
# /usr/local/nagios/plugins/check_nrpe -H nrpeclient
Run Code Online (Sandbox Code Playgroud)
给
NRPE v2.12
Run Code Online (Sandbox Code Playgroud)
正如预期的那样。
手动运行命令(在“nrpeclient”上的 nrpe.cfg 中定义,给出预期的响应
nrpe.cfg:
command[check_openmanage]=/usr/lib/nagios/plugins/additional/check_openmanage -s -e -b ctrl_driver=0 bat_charge
"Expected response"
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试从 Nagios 服务器运行命令,我会得到以下信息:
# /usr/local/nagios/plugins/check_nrpe -H comxps -c check_openmanage
NRPE: Unable to read output
Run Code Online (Sandbox Code Playgroud)
谁能想到我可能在这方面犯了错误的其他任何地方?我在多台其他服务器上做了同样的事情,没有问题。我能想到的唯一区别是这个盒子是基于 RHEL 5 的,而其他盒子是基于 RHEL 4 的。
上面我测试过的这两点是大多数人在遇到这个问题时的建议。
我应该提到,当我重新启动时,日志中出现了一个奇怪的错误nrpe:
nrpe[14534]: Unable to open config file '/usr/local/nagios/etc/nrpe.cfg' for reading
nrpe[14534]: Continuing with errors...
nrpe[14535]: Starting up daemon
nrpe[14535]: Warning: Daemon is configured to accept command arguments from clients!
nrpe[14535]: Listening for connections …Run Code Online (Sandbox Code Playgroud) 我们使用 Nagios 来监控相当多(~130)台服务器。我们监控每台服务器上的 CPU、磁盘、RAM 和其他一些东西。我一直使用 SSH 来运行远程命令,纯粹是因为它在远程服务器上几乎不需要额外的配置,只需安装 nagios-plugins,创建 nagios 用户并添加 SSH 密钥,所有这些我都自动化了一个 shell 脚本。我从未真正考虑过在 NRPE 上使用 SSH 对性能的影响。
我不太担心 Nagios 服务器上的负载(它的功能可能超出了规格,CPU 从未超过 10%),但我们每 30 秒运行一次远程检查,每个服务器有 5 个不同的检查执行。我认为 SSH 每次检查都需要更多资源,但有很大的不同吗?(即足以保证切换到 NRPE 的差异)。
如果有帮助,我们会监控物理服务器(通常具有 8、12 或 16 个物理核心)和 Amazon EC2 中/大型实例的组合。
我的一位客户设置了 Confluence / JIRA 系统。他们遇到了一些问题——出站电子邮件被阻塞等等。如果你支持 JIRA 安装,你监控什么?你使用 JMX 吗?直接数据库查询?偶尔向 API 发出 SOAP 请求?
我将使用 Nagios / NRPE 进行监控,但会直接编写任何需要的支持脚本,因此任何在 linux 机器上运行的技术都可能没问题。
几个星期以来,我一直对 NRPE 和 Perl 不屑一顾。
我决定从绝对第一原则开始,创建一个虚拟的 nagios 插件,它什么都不做,但总是返回 OK。我将其命名为 check_true.pl,将其安装在远程服务器上并配置 NRPE 以将其用作 check_test。
整个脚本只是:
#!/usr/bin/perl
print "OK - this dummy test always returns OK\n";
exit 0;
Run Code Online (Sandbox Code Playgroud)
这适用于 NRPE,没有问题。
以此为起点,我将构建我想要慢慢查看它在什么时候中断的脚本。我根本没有走远。以下突破了 NRPE(但在本地和 SSH 上都可以正常工作):
#!/usr/bin/perl
use strict;
print "OK - this dummy test always returns OK\n";
exit 0;
Run Code Online (Sandbox Code Playgroud)
它给出了可怕的错误:NRPE:无法读取输出。
我不能包含任何东西,否则我会收到此错误。这使得我无法做我真正需要做的事情!
我认为这可能是 perl 包含路径的问题,但是在 NRPE 上运行以下内容表明它不是(提供与在终端上运行时相同的包含路径):
#!/usr/bin/perl
print "OK - Perl include path: ".join(q{, }, @INC)."\n";
exit 0;
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么 NRPE 在 Perl 上表现如此糟糕?任何人都可以推荐修复吗?或者甚至是一种解决方法?
更新 1:该命令在 NRPE 中定义如下:
command[check_test]=/usr/lib64/nagios/plugins/check_true.pl
Run Code Online (Sandbox Code Playgroud)
更新 2:我进行了更多调试,通过在 perl 脚本周围添加下面的包装器,我能够捕获 STDERR。 …
我使用Nagios Core、NRPE和check_disk监控 Ubuntu 服务器上的可用磁盘空间。
在以前的 Ubuntu 版本中,我曾经得到类似这样的输出:
DISK OK - free space: / 43754 MB (80% inode=86%):
Run Code Online (Sandbox Code Playgroud)
相反,在 Ubuntu 18.04.1 上,我得到:
DISK OK - free space: /var/tmp 43754 MB (80% inode=86%):
Run Code Online (Sandbox Code Playgroud)
我看到/var/tmp根/分区的安装点不正确。我跟踪此行为依赖PrivateTmp=true于nagios-nrpe-server.service:
/var/tmp并发现了一个名为systemd-private-c5b5d3d362364af19af640147f2cb844-nagios-nrpe-server.service-4uILRyPrivateTmp=true不存在)/我觉得我面临三个选择:
忍受它。
消除PrivateTmp=true。
找到合理的解决方法。
我倾向于接受它,但如果我更清楚没有私人/tmp服务的影响,我可以对选项 2 做出明智的选择。
最佳解决方案可能是找到一种解决方法,指示check_disk即使在这种情况下也返回正确的安装点信息。无法访问系统/tmp不应构成障碍。
问题:请说明 的含义PrivateTmp=true,解释为什么建议使用它,在什么情况下以及有哪些注意事项可以将其删除。
第二个问题:check_disk …
我有一个奇怪的问题。我正在尝试安装 nagios NRPE,但它一直失败
nagios-plugins-1.4.15-2.el5.rf.i386 from rpmforge has depsolving problems
--> Missing Dependency: perl(Net::SNMP) is needed by package nagios-plugins-1.4.15-2.el5.rf.i386 (rpmforge)
Run Code Online (Sandbox Code Playgroud)
该软件包1:net-snmp-perl-5.3.2.2-9.el5_5.1.i386已安装并且是最新版本。
想法?
环境是安装了Cpanel 11的Centos 5.5。
安装 Nagios NRPE 和 Nagios 插件后,我在 rsyslog 中收到以下条目:
May 13 14:01:30 wcmisdlin02 kernel: type=1400 audit(1305309690.482:2334): avc: denied { getattr } for pid=3835 comm="sh" path="/usr/bin/sudo" dev=dm-0 ino=7355981 scontext=unconfined_u:system_r:nrpe_t:s0 tcontext=system_u:object_r:sudo_exec_t:s0 tclass=file
Run Code Online (Sandbox Code Playgroud)
我试图通过 NRPE 执行的 Nagios 插件似乎被 SELinux 阻止了。我该怎么办?
我有一个 etch nagios 服务器(我将称之为 NagiosServer),它成功地监控了很多东西,包括另一个 etch 服务器(MonitorEtch)。使用 check_nrpe 和 check_procs,我可以检查正在运行的守护进程的进程列表,例如“/usr/sbin/squid”。
从 NagiosServer 检查 MonitorEtch(正确结果):
/usr/lib/nagios/plugins/check_nrpe -H MonitorEtch -c check_process -a /usr/sbin/squid 1:1 1:1
PROCS OK: 1 process with args '/usr/sbin/squid'
/usr/lib/nagios/plugins/check_nrpe -H MonitorEtch -c check_process -a whatever 1:1 1:1
PROCS CRITICAL: 0 processes with args 'whatever'
Run Code Online (Sandbox Code Playgroud)
我已经构建了一个我想要监控的新服务器,运行 Lucid (MonitorLucid)。无论我尝试从 NagiosServer 监控什么进程,我都会得到超出预期的结果。
从 NagiosServer 检查 MonitorLucid(结果不正确):
/usr/lib/nagios/plugins/check_nrpe -H MonitorLucid -c check_process -a whatever 1:1 1:1
PROCS OK: 1 process with args 'whatever'
ps ax|grep sophie
12737 ? Ss 0:00 /usr/sbin/sophie -D …Run Code Online (Sandbox Code Playgroud) 我想检查我的 nagios 监控是否每个节点都使用 puppetmaster 提供的当前目录版本。
在我的情况下,有:
我想在 host1、host2、hostX 上创建nrpe插件以:
问题:
所以我的问题是,如何监控傀儡代理的健康状况,并在任何主机使用旧的傀儡目录时得到通知?有什么意义吗?
nrpe ×10
nagios ×9
monitoring ×3
linux ×2
centos5 ×1
jira ×1
jmx ×1
networking ×1
nmap ×1
performance ×1
perl ×1
puppet ×1
security ×1
selinux ×1
systemd ×1