Nagios
Nagios 伺服器未檢測客戶端 vm 是否已重新啟動
我已經配置了 nagios 伺服器並添加了 30+ 個物理伺服器和 25+ 個虛擬機。所有配置已完成,nagios 伺服器正在監視伺服器、vm 和服務。
但是當我重新啟動一個 vm 時,Nagios 伺服器沒有檢測到 vm 不可用,而是線上顯示。
有人遇到過這個問題嗎?有人可以幫忙嗎?
正如其他一些人在評論中所說,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