2011-02-22 64 views
2

我們有一個Nagios服務器,我們用它來監控我們的主機。填充NAGIOS主機從數據庫獲取狀態數據

現在我們有一箇舊系統,它會在mysql數據庫中報告某些特定主機的狀態。我想知道是否有一種方法(如果有可能)編寫一個可以從數據庫獲取數據並填充Nagios監視器的插件。

讓我們像數據庫中有這樣一個表: IP,主機名,狀態,CPU_TEMP,HDD_TEMP

,我想獲取這些數據到Nagios的監測。可能嗎?

沒有辦法通過nagios守護進程連接客戶端,我只能從這個數據庫中獲取數據。

謝謝! 關於

回答

0

您需要製作一個插件,該插件將連接到數據庫,查詢給定的HOSTNAME或IP,並檢查STATUS是否在參數中。

1

如果你可以從Nagios的直接打的DB,我會做一些bash腳本是這樣的:

mysql -uuser -ppass -H monitoringDb.mydomain.com -e "select HOSTNAME,STATUS,CPU_TEMP,HDD_TEMP from monitoring where STATUS != "OK" OR CPU_TEMP > '40' OR HDD_TEMP > '20'" > /tmp/check_monitoring 

if [[ `wc -l /tmp/check_monitoring` > 0 ]]; # If that query returned anything, you have an issue 
    then echo "CRITICAL: `cat /tmp/check_monitoring`" && exit 2 
fi 

echo "OK: Monitoring DB Checks passed" && exit 0 

的SQL可能有一個或兩個錯誤,但你應該明白我的意思。如果你想得到花哨,你可以做更多,如果聲明警告級別並返回1.

+1

哇,太棒了......你一直很有用!謝謝!! :) – ryuujin 2011-03-24 14:15:29