俗話說:工欲善其事,必先利其器。要作好系統管理,使本身的工做更輕鬆更有效的話,一個好的監控工具是必不可少的了。
在2002年早些時候,我有幸承包×××某研究所的整個網絡維護。當時網絡情況十分糟糕,斷網狀況比較頻繁,形成這種狀況的緣由大體有兩種:
·內部網絡聯網混亂。
·上聯到另一個研究所,那裏時不時操做不慎把上連的線路給弄掉了。
爲了瞭解網絡是否處於一個可用的狀態,我上班的第一件事情就是打開網絡收音機,根據聲音的有無進行判斷。
再日後兩年,有一些用於遠程教育的服務器託管在亦莊某機房。這個機房的服務實在是很糟糕,曾有一段時間,網絡服務基本處於沒法訪問的狀態,打電話過去,那邊敷衍說機房收到***,立刻就會正常。咱們不得不暫時相信他的託詞,爲了知道什麼時候網絡能恢復正常,我就在辦公室的電腦執行ping服務器ip地址的操做。
2005年秋天,我在一個sp公司作系統管理。這裏有數百個服務器對外提供服務,而且要求24小時運營保障。這種網絡環境下,再用聽在線收音機或者ping來判斷網絡是否正常,是沒有什麼效果的。幸虧,在我接手的時候,已經有了一個監控系統netsaint(nagios的早期版本名稱),後來我把它升級成最新的nagios。經過逐步完善這個監控平臺,取得比較理想的運營效果:只需帶着手機,有故障會自動發短信報警。
12.1 nagios概述
Nagios官方網站的描述:
Nagios is an open source host, service and network monitoring program. Who uses it? Lots of people, including many big companies and organizations:Nagios是一個用來監控主機、服務和網絡的開放源碼軟件,不少大的公司和組織都在使用它。
首先,咱們來看實際工做中須要監控的對象有哪些?在這裏我總結出兩種類型的監控對象:網絡服務監控及主機資源監控。網絡服務監控可包括主機存活檢查、web服務監控、ftp服務監控、數據庫服務監控、自定義服務監控等;主機資源監控可包括系統負載、當前ip連接數、磁盤空間使用狀況、當前進程數以及自定義的資源監控等。
其次,咱們再來看nagios監控的表現形式。監控的主要目的是當監控的對象發生故障或資源緊張時及時通知相關人員,以便問題獲得迅速的處理。追求的效果就是「在老闆和客戶發現問題以前獲得及時、有效的通知」。假定故障通知來自老闆,我想你們都不會很愉快的。Nagios爲了方便咱們的管理工做,提供了至少3種表現形式:
1、web方式,即經過瀏覽器觀看被監控的對象;如正常狀態下,其狀態(status)是以藍色填充並顯示一個OK。
2、郵件通知,發生故障時,到達設定重試次數和探測間隔時間後發送郵件給管理員或相關人員,報告問題的大體狀況。
3、手機短信,這是很是有用和及時的功能了;晚上熟睡中,再也沒可能看web頁面或查閱郵件,能夠一旦發生故障,手機短信卻能把你隨時喚醒。
通常狀況下,這3者是同時進行的:上班時間開個瀏覽器看頁面顯示、打開郵件程序定時收取郵件、手機24小時在線。
最後,咱們以一個實際場景來展現nagios的強大功能,但願對你們的系統管理工做有所幫助。
12.2 nagios監控場景描述
爲了描述問題方便,咱們假定有5個服務器要監控(web服務器、數據庫服務器、郵件服務器、nfs文件共享服務器),須要對幾個服務器的服務進行監控,同時監控每一個服務器的資源使用狀況,包括負載狀況、磁盤分區使用狀況、總進程數、當前ip鏈接數這個4個項目(固然你也能夠本身寫腳本監控更多的資源對象)。這些服務器除了系統管理員而外,還有其餘用戶(如程序員)對各自的服務器進行維護;當發生故障的時候,維護網站的程序員能收到報警郵件和報警短信,而管理數據庫管理員則無需收到這些報警,同時維護程序的用戶能夠以本身的賬號登錄監控服務器,經過web方式察看本身所管服務器的狀態(只能看本身的而看不到別人管轄服務器的狀態)。
經過上面的描述,咱們能夠整理出表12-1:
機器名稱
|
角色
|
可查看狀態及接受報警信息的用戶
|
所需工具
|
Nagios服務器
|
監控端
|
系統管理員(SA)
|
Apache、nagios、nagios plugin、sendmail、perl等
|
郵件服務器
|
被監控端
|
系統管理員、郵件管理員
|
Nrpe、nagios plugin、自定義腳本等
|
數據庫服務器
|
被監控端
|
系統管理員、dba
|
Nrpe、nagios plugin、自定義腳本等
|
Web服務器
|
被監控端
|
系統管理員、webmaster
|
Nrpe、nagios plugin、自定義腳本等
|
Nfs共享服務器
|
被監控端
|
系統管理員
|
Nrpe、nagios plugin、自定義腳本等
|
緩存服務器(squid)
|
被監控端
|
系統管理員、webmaster
|
Nrpe、nagios plugin、自定義腳本等
|
表12-1 監控場景彙總
配置好nagios和被監控機器後,其在瀏覽器裏的基本輸出與圖12-1相似: