Cacti透過外掛Syslog,將能夠結合rsyslog,把系統收到的Syslog訊息先存放至資料庫,然後再呈現在Cacti頁面中,讓網路管理員能夠隨時掌握設備當下的運作狀況。
執行完畢,再檢查「syslog」資料庫是否已建立,並且在該資料庫中是否已有Table,如圖1所示:
|
▲圖1 檢查資料庫「syslog」是否已建立。 |
確認資料表正確後,繼續安裝rsyslog,並修改其設定檔使之能寫入資料庫。
然後,使用apt-get命令來安裝rsyslog。如果讀者使用的是較舊版的Ubuntu,需要自行下載編譯安裝rsyslog,才能夠支援MySQL的功能。rsyslog安裝指令為:
這裡刻意只輸入rsyslog-mysql這個程式,apt-get會自動詢問是否安裝其他相關的程式,因此已加上-y這個參數,將所有問題都回答「yes」,這樣就會自動安裝所有相關程式。
在安裝過程中,會詢問MySQL的管理者密碼,此外也會詢問rsyslog這個資料庫使用者的密碼,若輸入空白,會自動產生新密碼。
接著修改其設定檔,編輯rsyslog的設定檔「/etc/rsyslog.conf」,新增以下內容:
隨後輸入以下內容讓rsyslog支援MySQL的功能:
此內容為同一行,因排版需求被斷行。在此宣告一個名為「cacti_syslog」的Template,以便之後呼叫使用。其功能為寫入syslog_incoming這個資料表:
cactiuser指的是有該資料庫寫入權限的帳號,password為該用戶的密碼。最後的cacti_syslog指的是在上一行設定的template cacti_syslog。這一行的意思是把所有收到的資料「*.*」(可自行設定其等級)全部寫入資料庫,語法使用cacti_syslog這個Template:
接著開啟UDP Port,讓Syslog訊息可以透過UDP的方式寫入:
這裡指定UDP Port使用514,此為Syslog的慣用Port。
一般來說,Syslog Daemon預設開在UDP 514 Port,若有使用TCP協定或使用其他Port的需求,可查詢rsyslog官方網站(http://www.rsyslog.com/doc/master/configuration/modules/imtcp.html)的說明。
修改設定檔後存檔離開,並啟用rsyslog(若本來已啟用,記得改用「restart」命令重新啟動):
接著,如圖2所示使用netstat指令確認rsyslog是否正常啟動並占用UDP 514 Port,
|
▲圖2 確認rsyslog是否正常啟動並占用UDP 514通訊埠。 |
確認rsyslog已使用UDP 514 Port,並在執行中。
然後,如圖3所示檢查資料是否寫入syslog檔案中,代表rsyslog能夠收到Syslog訊息:
|
▲圖3 檢查資料是否寫入syslog檔案。 |
最後,檢查是否已有資料成功寫入資料庫,如圖4所示:
|
▲圖4 檢查資料是否已經成功寫入資料庫。 |
若有看到資料,就代表這階段的設定已經完成。確定rsyslog能夠正確運作後,記得把它加入開機時自動啟用的清單:
接下來,回頭修改Cacti的Syslog Plugin的相關設定。
設定及安裝Cacti套件
一開始必須調整Syslog的資料庫存取設定,先切換至設定所在目錄:
接著編輯「config.php」,找到以下字串,進行修改:
這裡指的是否共用Cacti的資料庫,由於這裡希望使用獨立資料庫的方式執行,因此將修改為「false」。
以下內容必須修改username和password,修改成之前所建立的能讀寫「syslog」此資料庫的使用者及其密碼: