身為網管,你時常需要觀察伺服器狀態,以便發生異常時,可以儘速判斷問題來源,至少若硬體負擔不了時,也可以依照時間序,查出負載高峰,並算出所需額外資源。
大部分 Unix 上的伺服觀察工具都是利用 RRDTool 畫圖,個人曾經用過 SmokePing, Nagios 跟 Collectd 等伺服器檢測軟體。各有各的用處跟優缺點。
SmokePing 拿來從外部檢測線上服務的延遲狀態相當好用,用 Perl 可以快速自製檢測工具,並自動存成 RRDTool DB 與圖檔,內建的 Alert 支援 Real-Time Traffic Pattern Detection,可以非常有彈性的用以自定警報通知。
如想從伺服器內部確認軟體運作狀態,則可以改用 Nagios。Nagios 支援大量外掛,且支援遠端外掛執行模式,方便同時檢測一羣跑不同服務的伺服器羣組,嫌棄 Nagios 的網頁界面不夠便利的話,後起之秀 Icinga 大幅改善了瀏覽界面。
你若需要效能方面的資訊,像是繪出 Apache 有多少 Requests,則可以用 collectd,同樣也支援大量外掛。但 collectd 僅支援輸出 RRDTool db,本身不提供繪圖功能。你可以另外裝前端界面,以便繪出漂亮的圖檔或查詢界面。
雖然裝了 collectd 幾年,卻一直懶得裝一套好用的前端界面,這兩日改用了 Collectd Graph Panel,發現它還沒有支援 Vserver,於是順手加了一個。