■ 北京 趙琳
編者按:為了實現對于校園網中網絡設備的實時監控,我們需要有一種手段可以收集校園網內重要的數據設備(如交換機等)的日志信息,并能夠定時對日志信息進行查詢操作,如果發現有可能引起網絡故障的關鍵詞,如loopback、ARP detects IP conflict 等,就需要進行故障排查,這樣我們就可以在網絡運維工作中做到提前發現、提前處理,達到防患于未然的目的。
Rsyslog 是一個自由開源的日志記錄程序,在CentOS 8 系統上默認可用。它提供了一種從客戶端節點到單個中央服務器的“集中日志”的簡單有效的方法。日志集中化有兩個好處。
首先,它簡化了日志查看,因為系統管理員可以在一個中心節點查看遠程服務器的所有日志,而無需登錄每個客戶端系統來檢查日志。如果需要監視多臺服務器,這將非常有用。其次,如果遠程客戶端崩潰,你不用擔心丟失日志,因為所有日志都將保存在中心的Rsyslog 服務器上。
Rsyslog 取代了僅支持UDP 協議的Syslog。它以優異的功能擴展了基本的Syslog 協議,例如在傳輸日志時支持UDP 和TCP 協議,增強的過濾功能以及靈活的配置選項。
Rsyslog 服務的優點如下:
第一,Rsyslog 服務器可以大多數的網絡設備支持,在網絡設備的系統設備選項中大多都有遠程日志服務的配置選項。只需要填寫上IP地址和端口(大多數設備已經默認是514 了),然后確定就可以了。
第二,Linux服務器只需要在本地的Rsyslog服務配置中加入簡單的一行就可以將日志發送到日志服務器,布署和配置起來十分簡單。
第三,通過軟件(如Evtsys)也可以支持Windows服務器,布署和配置也不是很難,但是有些軟件是要收費的。
第四,搭配前端的Log Analyzer 等軟件,可輕松實現圖形化管理和查詢日志。
我們將搭建以下實驗環境來測試集中式日志記錄過程:
表1 實驗環境
實驗環境如表1 所示。通過上面的實驗環境搭建,我們將演示如何設置Rsyslog 服務器,然后配置客戶端系統以將日志發送到Rsyslog 服務器進行監視。
圖1 輸出結果
圖2 輸出結果
默認情況下,Rsyslog已安裝在CentOS 8 服務器上。要驗證Rsyslog 的狀態,可以通過SSH 登錄并運行命令:systemctl status rsyslog
輸出結果如圖1 所示。
接下來,修改Rsyslog 配置文件中的一些設置。打開配置文件命令:
滾動并取消注釋下面的行,以允許通過UDP 協議接收日志:
如果需要啟用TCP 協議接收日志,請取消注釋下面的行:
保存并退出配置文件。
然后,重新加載防火墻保存更改:
sudo systemctl restart rsyslog
要在啟動時運行Rsyslo g,命令:
要確認Rsyslog 服務器正在監聽514 端口,使用netstat 命令:
輸出結果如圖2 所示。
(1)安裝mariadb 數據庫,運行命令:yum install mariadb mariadb-server -y
(2)啟動并初始化數據庫,運行命令:
(3)添加數據庫和用戶,運行命令:
#創建“rsyslog”的數據庫,字符編碼設置為UTF 8。
#對數據庫“rsyslog”創建全權限的rsyslog 的本地用戶,設置密碼為“rsyslog”。
(4)安 裝Rsyslog 的MySQL 擴展程序包rsyslogmysql
安裝Rsyslog,運行命令:yum install rsyslog-mysql-y
(5)將Rsyslog 的MySQL表導入創建的Rsyslog 數據庫,并給予用戶權限。
添加如下內容:
(7)重啟rsyslog 服務
運行命令:systemctl re start rsyslog.service
在RHEL 8 上配置客戶端系統,與Rsyslog 服務器一樣。
保存并退出配置文件。
然后,重新加載防火墻以保存更改,命令:
要在啟動時運行Rsyslo g,命令:
已經成功安裝并配置Rsyslog 服務器和客戶端后,就該驗證相關配置是否按預期運行了。
客戶端系統上命令運行的輸出顯示在了Rsyslog服務器的日志中,這意味著Rsyslog 服務器到了接收來自客戶端系統的日志。
注意,此處是local4 來接受遠程的Syslog。
info-center source SHELL channel loghost log level notifications//此處是只需要操作日志,其他的不需要,如果想要更多日志內容,請更改。
logging 1.1.1.1(配置Syslog 服務器地址,可以定義多個)
@@代表的代表是tcp,@代表是udp;relp 用“:omrel p:”表示。
LogAnalyzer 是一個sys log 和其他網絡事件數據的Web 前端工具,提供簡單易用的日志瀏覽、搜索和基本分析以及圖表顯示。
運行命令:yum install httpd php php-mysql phpgd -y
運行命令:systemctl stop firewalld
(1)在瀏覽器中輸入10.128.0.47 進行配置
(2)點擊之后,提示開始檢查。
(3)配置文件檢查,注意config.php 需要666 權限,如果沒有寫權限,則會報錯提示。
(4)LogAnalyzer 的基本配置,此處配置的數據庫為LogAnalyzer 的數據庫,前面創建的Rsyslog 數據庫。輸入數據庫名稱,用戶名及密碼。
(5)如果數據庫能正常連接,那么就會顯示正常了,如果數據庫連接出錯,則會提示錯誤原因,點“Next”繼續下一步。
(6)連接數據庫成功后,會自動創建數據庫表,提示24 條成功,0 失敗。
(7)這一步便是填寫日志信息的數據庫信息,也就是導入SQL 文件所創建的Syslog 數據庫。請注意大小寫,監控表為SystemEvents,默認為小寫。
(8)繼續下一步就會提示成功,然后點擊登錄,便能進入查看了。
日志功能對于網絡運維是相當重要的,在使用中,無論是系統還是應用等等,出了任何問題,我們首先想到的便是分析日志,查找問題原因。
基于CentOS,結合Rsysl og 和LogAnalyzer 建構一套日志集中管理系統可以極大地簡化我們的網絡運維工作。