0

我正在使用两个虚拟机。

第一个:Ubuntu 14.04.3 LTS (192.168.1.102)

二:CentOS 7 (192.168.1.105)

在 192.168.1.102 上,我安装了 Nagios Core v4.1.1、NagioSQL v3.2.0 和 NRPE v2.15。

在 192.168.1.105 上,我安装了 Apache Apollo 和 NRPE v2.15。

我已经使用下面的链接使用 NRPE 插件将 192.168.1.105 主机添加到 Nagios 监控服务器(192.168.1.102)

http://www.tecmint.com/how-to-add-linux-host-to-nagios-monitoring-server/

我可以使用来自 192.168.1.102 的以下脚本检查 Apache Apollo 服务是否在 192.168.1.105(Nagios 监控服务器)上运行

#!/bin/bash

if pidof -x "apollo" >/dev/null; then
echo "Apollo MQTT is Running."
exit 0
else
echo "Apollo MQTT is Stopped."
exit 2
fi

但我希望如果我的 Apache Apollo 服务没有运行,那么我想运行这个服务。为此我修改了上面的脚本如下

#!/bin/bash

if pidof -x "apollo" >/dev/null; then
echo "Apollo MQTT is Running."
exit 0
else
echo "Apollo MQTT is Stopped."
servicestatus=sudo /etc/init.d/apollo-broker-service start
$servicestatus
exit 2
fi

但是当我尝试使用以下命令从 192.168.1.102 Nagios 运行此脚本时

/usr/local/nagios/libexec/check_nrpe -H 192.168.1.105 -c check_service_apollomqtt

然后输出在下面

Apollo MQTT is Stopped.
Starting apollo-broker-service
Could not start apollo-broker-service

我已经在我的 192.168.1.105 /etc/sudoers 文件中添加了以下行

nagios ALL = NOPASSWD: /usr/sbin/service
4

1 回答 1

0

您的脚本根本没有使用 service 命令。

  1. 使用“哪个服务”并确定它是“/usr/sbin/service”。我的位于不同的文件夹中。
  2. 确保在 /etc/sudoers 文件中正确设置了上面的路径/命令。
  3. 然后修改您的脚本以实际使用“服务”命令,例如:

$servicestatus=sudo /sbin/service apollo-broker-service start

于 2016-08-20T20:49:21.683 回答