給Nagios添加地理位置功能
前段時間我發(fā)現Nagios的NagMap插件和世界各地的多臺主機監(jiān)測發(fā)現它非常有用。
例如,在歐洲,美國和其他國家在印度和新西蘭也有一些生產服務器,它是更好地看到自己的國家在地圖上,而不是用無聊的Nagios主機狀態(tài)列表。每個主機都有一個基于ping統(tǒng)計以下狀態(tài):綠色,黃色和紅色。綠色/白色(OK)狀態(tài)相當于0-10%的丟包,黃色(警告)是10-20%的丟包和紅色(嚴重)是指主機關機或丟包,它是20%以上。所有這三個國家都顯示在地圖上用不同的標記。
Nagios使用NagMap插件有可能基于谷歌地圖中的主機和它們的狀態(tài)創(chuàng)建一個地圖,這里是我的地圖的某些部分:
以上截圖顯示OK狀態(tài)(所需的圖片)中的所有主機的情況下,當一些臺主機出現故障或變得遲緩,那么你會看到這樣的一些紅色標記或(根據不同類型的主機)安裝配置NagMap
所以首先你需要從項目的下載部分下載nagmap壓縮包并解壓Nagios監(jiān)控系統(tǒng)所在的服務器上的某個地方。下載的文件中包含PHP腳本訪問Nagios的狀態(tài)文件,并顯示相應的標記在地圖上使用谷歌地圖。我建議Nagios的文件目錄中創(chuàng)建新的子目錄:
- cd /usr/share/nagios/
- wget http://labs.shmu.org.uk/nagmap/nagmap-0.11.tar.gz
- tar -xvzf nagmap-0.11.tar.gz
- rm nagmap-0.11.tar.gz
一旦解壓縮歸檔文件,它是必要的設置路徑Nagios的狀態(tài)文件在Nagmap文件status.php的。在我的情況下,Nagios的status.dat文件位于/ VAR /的nagios/ status.dat的中,所以我有以下行在nagmap status.php:
- $fp = fopen("/var/nagios/status.dat","r");
這是自然的,Web服務器必須有足夠的權限讀取的/ var/的nagios/ status.dat的文件。下一步是建立地理位置的主機應該顯示在Nagmap。應具體說明以下列方式:
- define host {
- use generic-host
- host_name HostName1
- address 11.22.33.44
- notes latlng: 40.664167, -73.938611
- check_command check-host-alive
- register 1
- }
其中“40.664167,-73.938611”(紐約市在這個例子中)的主機的經度和緯度。所以,你應該增加“音符經緯度"線到Nagios在地圖上所有的主機,這樣才能看到他們。從這一點來說,你應該能夠打開地圖,例如https://your.server.com/nagios/nagmap/網址。如果打開的頁面是空的,那么在讀取或解析status.dat的文件有一些問題。不幸的是,nagmap不提供調試功能,所以你應該打開marker.php(如https://your.server.com/nagios/nagmap/marker.php),并尋找到它的輸出然后看哪里的問題。很有可能你會需要一些基本的PHP知識。順便說一句,文件marker.php包含標記圖像的路徑,所以你可以很容易地改變他們從默認。