Cacti透過外掛Syslog,將能夠結合rsyslog,把系統收到的Syslog訊息先存放至資料庫,然後再呈現在Cacti頁面中,讓網路管理員能夠隨時掌握設備當下的運作狀況。
網路流量監測工具Cacti有各式各樣的Plugin可以擴充其功能。在本文中要介紹的是Syslog這個Plugin,它可以結合rsyslog,將系統收到的Syslog訊息存放至資料庫再呈現在Cacti的頁面中,並針對較高等級或內含特殊字串的訊息觸發告警郵件或定時寄送報表,也可將重要性較低的訊息予以刪除,能確實提高網管人員在處理設備告警時的精確性並增加即時性。在之後的章節,將一步步介紹其安裝、設定及使用方式。
實作架構與安裝環境說明
如果希望能收取設備送出的Syslog訊息,就需要架設對應的Syslog伺服器。功能較強大且常被採用的是rsyslog,Syslog及rsyslog的詳細說明可參考之前網管人文章的介紹(http://www.netadmin.com.tw/article_content.aspx?sn=1208060006)。
本次實作將安裝架設rsyslog伺服器,並修改其設定檔,使之在收到Syslog時將其存放至資料庫,讓Cacti能透過Syslog Plugin來讀取Syslog的訊息。
Cacti並未直接收取Syslog訊息。它提供網頁介面,便於使用者及管理者進行查詢、刪除及分類等相關操作,Cacti在運作時呼叫Syslog Plugin來讀取rsyslog存放在MySQL資料庫的資料。
在實務上,考慮到伺服器效能、風險分散及設備數量,有許多搭配方式:Syslog伺服器、MySQL伺服器、Cacti伺服器可以是同一部主機,也可以將之拆散,例如Syslog與MySQL是同一部主機,而Cacti是另一台主機,或者Syslog是獨立主機,而MySQL與Cacti是同一部主機。如果訊息量過大,甚至Syslog伺服器、MySQL伺服器、Cacti伺服器都採用獨立的主機。
在本實驗中,為簡化其架構,把Syslog Server、MySQL Server及Cacti Server均架設在同一部主機上進行運作。
接著,介紹本次實作所需的安裝環境,使用的作業系統是Ubuntu,版本為14.04.2 LTS,使用apt-get命令安裝Cacti及相關程式,Cacti的版本是0.8.8b、Syslog Plugin的版本為1.22-2、rsyslog的版本則是7.4.4。其中Syslog Plugin必須一併安裝Setting Plugin才能運作,針對這兩個Plugin,需要手動下載安裝。
前置作業:下載及解壓縮必要套件
假設這是一部全新已安裝Ubuntu的機器,那麼先安裝Cacti:
安裝過程中會一併安裝MySQL、Aapche2等Daemon,詳細安裝過程可參考「http://www.netadmin.com.tw/article_content.aspx?sn=1212060003&ns=1304100001」網頁內容。
安裝Syslog Plugin之前要先安裝Setting Plugin,所以這裡一併進行下載及安裝:
安裝及設定rsyslog
在安裝rsyslog之前,必須先考慮「是否需要建立獨立的資料庫?」以筆者的經驗來說,如果Syslog Server須收取較多設備的Syslog,建議使用獨立的資料庫為佳,以便於後續的管理和備份。
若設備量極少,資料庫使用既有的Cacti資料庫即可。在本文中,示範的是使用獨立的資料庫。
若使用獨立的資料庫,必須手動建立該資料庫,並且執行Syslog Plugin中MySQL的查詢檔以建立相關的表格(若直接使用Cacti資料庫存放資料,則不必進行此步驟)。
先建立名為「syslog」的資料庫(執行指令時會詢問使用者密碼):
接著,讀取並執行MySQL的查詢檔(執行指令時會詢問使用者密碼):