身為一個網管人員,想辦法維持企業資訊系統的運作順暢是最基本的職責。但隨著資訊系統的擴大,企業的資訊預算往往不見得會同步地提升,也常使網管人員在資源不足的情況下疲於奔命。在這種情況下,一套能自動監控系統服務的運作狀態,並且可以在系統服務發生問題時立即通知網管人員的自動化監控軟體,將會是最佳的解決方案,例如這裡所要介紹的Monit。
實作Monit監控程式
在此,以監控網站伺服器為例,利用Monit監控程式來監控網站根目錄內的相關網頁。這裡假設讀者已經建立好網站伺服器,且網站伺服器的網站根目錄為「/usr/local/apach2/htdocs」。
一旦發現相關網頁有變動,就馬上寄發警告信至管理者的信箱,並同時監控網站伺服器的運作,如果察覺網站伺服器停止服務,立即寄發相關警告信至管理的信箱。接下來,設定相關的組態檔(/etc/monit.cf)。Monit監控程式組態檔設定如下圖所示。
以下說明圖中相關參數設定的意義:
·set daemon 60:將Monit監控程式設定為常駐程式形式執行,並且每60秒輪詢檢查一次。
·set mailserver [郵件伺服器位址]:設定郵件伺服器的位置,此郵件伺服器是用來寄發警告信。
·set mail-format:設定所寄發警告信之內文與標題等相關資訊。
·set alert [管理者信箱]:設定當觸發監控的異常情況發生時,所要寄發的管理者信箱。
·set httpd port 2812 and allow admin:admin:啟動Monit監控程式的網站伺服器功能(運作於2812埠),並設定登入的帳號及密碼為admin與admin。這裡為了測試方便,僅使用帳號和密碼來控管,但在實務上建議讀者除了帳號及密碼的控管外,還要再加上來源IP主機的控管。
以下這兩行是設定當所監控的目錄發生變動,例如當目錄內的檔案發生新增、修改或刪除的情況時,將會改變目錄的時間欄位(Timestamp),立即發送警告信通知管理者:
以下設定內容為,當所監控的網站伺服器在10秒後沒有回覆,即判定為停止服務並寄送警告信通知管理者:
在設定完成後,可利用指令「monit -c /etc/monit.cf」來啟動Monit程式。啟動成功後,可利用瀏覽器先瀏覽網頁「http://[IP]:2812/」,測試Monit監控程式是否已經啟動網頁管理的服務。如果一切正常,Monit監控程式會要求輸入帳號與密碼。輸入正確的帳號密碼後,即可看到以下的畫面,代表已成功啟動Monit監控程式。
至此,可以測試更改所監控目錄內的檔案,例如在該目錄下新增或刪除檔案,Monit監控程式將會發出如下圖所示的警告信,告知所監控的目錄已發生變動。這就代表了Monit監控程式已經正常運作。至此,一個可自動監控系統相關資源的監控軟體已建構完成。
結語
Monit監控程式是運作在本機上,可以排除網路的因素,得到更精確的探測結果。Monit監控程式不但能夠檢測服務的運作情形,更可以檢測檔案系統的變動,因此也可當作另一種形式的主機型入侵偵測系統(Host IDS)來應用。