Nagios 服务器未检测客户端虚拟机是否已重新启动

Nagios 服务器未检测客户端虚拟机是否已重新启动

我已经配置了 nagios 服务器并添加了 30 多台物理服务器和 25 多台虚拟机。所有配置已完成,nagios 服务器正在监控服务器、虚拟机和服务。

但是当我重新启动虚拟机时,Nagios 服务器没有检测到虚拟机不可用并且显示在线。

有人遇到过这个问题吗?有人能帮忙解决吗?

答案1

正如其他人在评论中所述,Nagios 没有检测到服务器在重启时是否不可用,因为它们执行此操作所需的时间很少。

要检查服务器是否已重启,您可以编写自己的插件。您只需将服务器的正常运行时间保存在临时文件中,然后检查当前正常运行时间与旧正常运行时间。如果当前正常运行时间低于保存的正常运行时间,则插件将返回关键状态。

您还可以使用 check-uptime 插件(https://exchange.nagios.org/directory/Plugins/System-Metrics/Uptime/check-uptime/details),当正常运行时间少于 5 分钟时,它将返回严重状态。这样,当服务器正常运行时间少于 5 分钟时,您将收到通知,这意味着服务器已重新启动。

如果您需要在几秒钟内检查正常运行时间,请使用此脚本:

#!/bin/bash
CRIT_VALUE=$1
if [[ "$CRIT_VALUE" == "" ]]
then
  # if any parameter is missing it will print it out and exit.
        echo "No argument supplied or argument missing."
        echo "Usage: ./uptime.sh <critical value in seconds>"
        echo "Example: ./uptime.sh 300"
        exit 1
else
  since=$(date -d "$(uptime -s)" +%s)
  now=$(date +%s)
  seconds_uptime=$(( now - since ))
  if [[ "$seconds_uptime" -le "$CRIT_VALUE" ]]; then
    echo "CRITICAL! System rebooted $(( seconds_uptime / 60 )) minutes ago."
    exit 2
  fi
  echo "OK. Up since $(date -d "$(uptime -s)")"
  exit  0
fi

相关内容