9

在我nrpe_local.cfg添加的以下命令中:

command[check_mycommand]=/usr/lib/nagios/plugins/check_command 30 35

然后重新启动 nrpe 守护进程。

当我使用执行此命令时nrpe,出现以下错误:

NRPE: Command 'check_mycommand' not defined

我使用以下命令执行:

/usr/lib/nagios/plugins/check_nrpe -H hostname -c check_mycommand

我无法得到任何线索。

在我nrpe_local.cfg的文件中,又添加了 10 个命令,并且它们工作正常。

4

9 回答 9

3

在我的 nrpe_local.cfg 中添加了以下命令:> command[check_mycommand]=/usr/lib/nagios/plugins/check_command 30 35

尝试 :

command[check_mycommand]=/usr/lib/nagios/plugins/check_command -w (warningTreshold) -c (criticalTreshold)
/etc/init.d/nagios-nrpe-server restart

并且确实杀死了所有其他已经在运行的 nrpe 守护进程。原因可能是它已经由不同的用户运行,这可能会导致冲突。例如。nagios-nrpe-server 在用户 root 和用户 nagios 下运行

还要确保将 Nagios 服务器的 IP 地址添加到 /etc/nagios/nrpe.cfg 中的 allowed_hosts 中:

allowed_hosts=<ip address of nagios server>

否则,您将无法使用 Nagios 的 NRPE 执行外部命令。

于 2013-04-30T12:13:27.970 回答
3

您输入的命令nrpe.cfg应如下所示:

command[check_mycommand]=/usr/lib/nagios/plugins/check_command -w $ARG1$ -c $ARG2$

然后,您在services.cfg文件中的服务(或任何名称)检查应如下所示:

define service{
   servicegroups        Basic Functionality
   host_name            localhost
   service_description  Mycommand
   check_command        check_nrpe!check_mycommand -a '-w 30 -c 35'
   use                  generic-service
}

请让我知道它是否解决了您的问题。

于 2014-06-26T11:54:49.987 回答
3

你好我通过在配置文件中添加本地地址解决了这个问题,我的nagios服务器的IP在哪里。你还应该定义命令nrpe.cfg allowed_host = 127.0.0.1xxxxxxxx[check_disk]=/usr/lib/nagios/plugins/check_disk-w 20%-c 10%-p /var

非常重要的是命令名称[check_disk]与路由上指示的名称相同

多亏了这个,我的问题得到了解决,我现在有了一个很好的监控。

耶尔马尔·埃尔南德斯

于 2013-12-09T05:03:27.423 回答
1
  1. 确保你杀死了所有旧的守护进程,包括任何分叉。
  2. NRPE 干净重启后,检查 /var/log/messages 是否有任何错误?!尤其是“NRPE:错误 - 无法绑定到已在使用的端口/端口”之类的内容。
  3. 您确定没有使用 inetd 控制的 NRPE 吗?
  4. 如果上述方法没有帮助,请再次执行第 1 步,然后在启动 NRPE 时不要包含“-d”标志并检查输出。
于 2013-03-14T02:49:13.260 回答
1

您是否使用正确的配置文件启动了 NRPE 守护程序?(nrpe -c config_file -d) 你使用的配置文件是nagios_local.conf还是nrpe_local.cfg?

于 2012-12-12T08:32:57.613 回答
1

嗨,我收到了这个错误并且能够解决它:在 /etc/nagios/nrpe.cfg 你会看到:

command[check_var]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /var
command[check_slash]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /
command[check_ssh]=/usr/lib64/nagios/plugins/check_ssh $ARG1$

但我确定您感到困惑并设置:commend.cfg 与:check_disk 而不是 check_slash

看到该行显示“command[check_slash]”这就是 command.cfg 想要得到的。

于 2016-01-20T16:26:34.970 回答
1

我通过将以下几行添加到我的nrpe.cfg文件并重新启动nrpe. 基本上,我们告诉 nagios 识别我们正在运行的命令。

command[check_var]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /var
command[check_slash]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /
command[check_ssh]=/usr/lib64/nagios/plugins/check_ssh $ARG1$
于 2015-12-22T23:44:22.913 回答
0

我有一个类似的问题,检查系统日志我可以看到 nrpe 在 /var/run/ 中有写入问题

Nov  6 08:30:05 xxxxxx nrpe[39777]: Cannot write to pidfile '/var/run/nrpe.pid' - check your privileges.

我在这里找到:

https://bugs.launchpad.net/ubuntu/+source/nagios-nrpe/+bug/957367

解决方案很简单。只需编辑 nrpe.cfg 并更改:

pid_file=/var/run/nrpe.pid

pid_file=/var/run/nagios/nrpe.pid

手动杀死 nrpe 并使用 /etc/init.d/nagios-nrpe-server start 再次启动它

它对我有用。

于 2013-11-06T08:51:58.560 回答
0

可能会对某人有所帮助。

在我的情况下,问题是错字。我创建了文件/etc/nrpe.d/commands.cgf而不是/etc/nrpe.d/commands.cfg;)

于 2020-07-29T12:42:58.000 回答