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