Nagios程式常用來即時監控系統服務狀態,但對於檢測系統磁碟剩餘容量是否仍在安全範圍內卻力有未逮,而另一個軟體SNMP可以提供更詳細的系統資訊,剛好能夠補其不足。為此,本文將實作結合SNMP服務的Nagios,讓網管工作更安全更輕鬆。
很多網管人員都會使用Nagios軟體來即時監控所掌管的系統服務狀態,Nagios主要強項在於監控服務或主機的狀況(例如是否服務正在運作或已停止服務),但有時候網管人員必須監控到系統上更細微的部分,例如監控系統磁碟剩餘的容量是否還在安全範圍內或是目前系統運作的程式(Process)狀態。諸如此類的監控事務,Nagios即有力有未逮之憾。而SNMP服務剛好能彌補其不足。
SNMP能夠提供系統更詳盡的資訊,如磁碟容量、Process、記憶體等等,並提供管理人員更詳細的資訊。因此本文將結合Nagios與SNMP的長處,實作出一個更具威力的監控系統。本解決方案所使用的套件如下表所示。
解決方案所需的安裝套件
什麼是Nagios
Nagios是一個功能非常強大的網路監控軟體,不僅可以用來監控主機(位於本地端或是遠端主機)和各式的服務(Service),更在本身的架構中加入許多非常人性化的觀念,譬如設定當所監控的主機或服務發生問題時,可利用E-mail或簡訊來即時通知管理者,以便於即時掌握系統狀況。
除此之外,Nagios更提供外掛形式(Plug-in)的架構,讓使用者可自行依需求來撰寫當監控主機或服務發生問題時的反應動作。
認識Nagios相關名詞
在開始安裝使用Nagios之前,先說明Nagios所定義的相關名詞意義。
·主機(Host):
這是Nagios監視的主體,只要列入Nagios監視清單內的機器均可視為主機的角色,這裡要特別注意的一點是,Nagios所認知的主機並不局限於一般所認知的主機(PC、伺服器),如路由器(Router)、交換器(Switch)、印表機(Printer)等等的網路設備,在Nagios系統中也是屬於主機的角色。
·服務(Service):
這是附屬於主機的下層角色,一般而言,通常一個主機會運作多個服務如HTTP、FTP服務等等,Nagios可針對某個服務進行監控。
·指令(Command):
設定用來監控主機、監控服務或通知聯絡人的程式指令,例如check_ftp可監控FTP服務、check_http可監控HTTP服務。
·聯絡人(Contact):
當所監控的主機或服務發生異常時要通知的聯絡人資訊。可在此設定聯絡人E-mail等相關資訊。
·群組(Group):
Nagios提供群組的概念讓管理者在管理上具有更多彈性,可以設定連絡人群組、主機群組、服務群組等等。
·Plugin:
Nagios支援外掛形式的監控程式,除了Nagios本身的官方監控程式外,也提供相關架構給第三方程式開發者自行開發監控程式以增強Nagios的監控能力。
·繼承:
Nagios支援繼承的概念,讓管理者更容易管理Nagios的組態檔,以監控多台的主機的Sendmail郵件伺服器為例,大部分的監控組態都是一樣的,差別可能僅在IP資訊不同而已,此時即可使用繼承的觀念來簡化設定檔,讓管理更加地便利。
·狀態:
呈現Nagios監控相關主機或服務所回覆的結果。可分為監控主機及監控服務,各有不同的狀態。以下是針對主機部分的回覆狀態:
OK:表示主機運作正常,無任何異狀。
Unreachable:代表被監控主機無法回應ICMP指令,通常都是網路斷線所引起的問題或被監控主機關閉ICMP的回應。
UP:表示主機重新啟動的狀態(通常在主機從關閉到啟動會呈現此種狀態)。
Down:代表主機停止運作,如主機當掉時、監控對象剛加入時。
而針對服務的部分,則會出現以下幾種回覆狀態:
OK:表示服務運作正常,無任何異狀。
Warning:代表服務出現異狀(情節輕微尚不致於影響服務的運作)。
Critical:表示服務出現嚴重問題。情節嚴重,如不立即處理,可能會影響服務的運作。
Unknown:代表服務狀態不明,最常見的情況為偵測不到服務正在運作。
另外,Nagios也定義了所謂的軟狀態(Soft State)與硬狀態(Hard State),以下分別說明。
·軟狀態(Soft State):
一般對於監控事件都會提供一個可以容忍的容錯範圍,以ping指令為例,被監控主機如果只有一次未回覆ICMP訊息,即被判定為主機當機而立刻通知聯絡人,那麼聯絡人可能會因收到大量的通知而不勝其擾,所以通常都會設定一個可容錯的範圍,例如被監控主機連續五次都沒回覆ICMP訊息,方才判定該主機已發生異常,而在這重試(Retry)動作期間的狀態即稱為軟狀態。