在一個(gè)完整的信息系統(tǒng)里面,日志系統(tǒng)是一個(gè)非常重要的功能組成部分。查看交換機(jī)、路由器和其他網(wǎng)絡(luò)設(shè)備的日志,可以幫助網(wǎng)管員迅速了解和診斷問(wèn)題。一些網(wǎng)管員認(rèn)為日志管理是信息安全管理的內(nèi)容,和系統(tǒng)管理關(guān)系不大,這絕對(duì)是錯(cuò)誤的。很多硬件設(shè)備的操作系統(tǒng)也具有獨(dú)立的日志功能,本文以校園網(wǎng)中常見(jiàn)的Cisco設(shè)備為代表,著重介紹在網(wǎng)絡(luò)設(shè)備日志管理中最基本的日志記錄的方法與功能。
日志消息通常是指Cisco IOS中的系統(tǒng)錯(cuò)誤消息。其中每條錯(cuò)誤信息都被分配了一個(gè)嚴(yán)重級(jí)別,并伴隨一些指示性問(wèn)題或事件的描述信息。Cisco IOS發(fā)送日志消息(包括debug命令的輸出)到日志記錄過(guò)程。默認(rèn)情況下,只發(fā)送到控制臺(tái)接口,但也可以將日志記錄到路由器內(nèi)部緩存;在實(shí)際的管理工作中,我們一般將日志發(fā)送到終端線(xiàn)路,如輔助和VTY線(xiàn)路、系統(tǒng)日志服務(wù)器和SNMP管理數(shù)據(jù)庫(kù)。
了解日志消息的格式
在Cisco IOS設(shè)備中,日志消息采用如下格式:
%--
:
下面是一個(gè)簡(jiǎn)單的例子:
這個(gè)消息經(jīng)常出現(xiàn)在Catalyst 4000交換機(jī)上(北京地區(qū)很多區(qū)縣都配備此型號(hào)交換機(jī)),假設(shè)日志消息已經(jīng)啟用了時(shí)間戳和序列號(hào),對(duì)于日志消息,將看到以下信息,首先是序列號(hào),緊接著是時(shí)間戳,然后才是真正的消息:
%SYS-4-P2_WARN: 1/Invalid traffic from multicast source address 81:00:01:00:00:00 on port 2/1
這種日志連續(xù)出現(xiàn),我們通查閱CISCO在線(xiàn)文檔,或者利用“錯(cuò)誤信息解碼器工具”分析就可判斷出,當(dāng)交換機(jī)收到信息包帶有組播MAC地址作為源MAC時(shí),“無(wú)效的數(shù)據(jù)流從組播源地址”系統(tǒng)日志消息生成。
在MAC 地址作為源MAC地址時(shí),幀不是符合標(biāo)準(zhǔn)的工作情況。然而,交換機(jī)仍然轉(zhuǎn)發(fā)從組播MAC地址發(fā)出的數(shù)據(jù)流。解決方法是設(shè)法識(shí)別產(chǎn)生幀帶有組播源MAC地址的終端站。一般來(lái)說(shuō),共享組播MAC 地址的這個(gè)幀從數(shù)據(jù)流生成器(例如SmartBits)或第三方設(shè)備被傳輸(例如負(fù)載平衡防火墻或服務(wù)器產(chǎn)品)。
基本日志記錄的配置
在設(shè)置日志記錄時(shí),需要完成兩個(gè)基本的任務(wù):打開(kāi)日志記錄和控制日志在線(xiàn)路上的顯示。
1. 打開(kāi)日志記錄
默認(rèn)地,日志記錄只在路由器的終端控制臺(tái)打開(kāi),要在其他地方記錄日志,則必須相應(yīng)的打開(kāi)日志記錄并進(jìn)行配置。使用logging on命令可打開(kāi)日志記錄;其他的如logging命令,可以為日志記錄打開(kāi)其他已配置的目的地,如系統(tǒng)日志服務(wù)器或路由器的內(nèi)部緩存。在將系統(tǒng)消息記錄到除了控制臺(tái)端口的其他位置之前,必須執(zhí)行該命令。
2. 配置同步日志記錄
在路由器線(xiàn)路上顯示日志的一個(gè)煩人的事情是,可能在我們正在輸出入命令的時(shí)候,路由器反消息顯示在正在輸入的命令行中間。雖然這個(gè)消息和正在輸入的命令無(wú)關(guān),我們可能繼續(xù)輸出入來(lái)完成命令,但是這種情況是很煩人的。logging synchronous命令的主要目的是將日志消息輸出和調(diào)試輸出同步到控制臺(tái)、輔助和VTY線(xiàn)路。當(dāng)啟用這個(gè)特性時(shí),同步日志使得Cisco IOS顯示消息,然后執(zhí)行一個(gè)等價(jià)的Ctrl-R的命令,這使得路由器將已經(jīng)輸入的信息重新顯示在命令行上。
在config-line模式下可以使用logging synchronous命令來(lái)影響日志消息的顯示,如下所示:
Router(config-line)# logging synchronous [level severity_level | all [ limit #_of_line ] ]
severity_level是指日志消息的嚴(yán)重程度,這些消息是異步顯示的。嚴(yán)重性數(shù)值比該值高的消息(更低嚴(yán)重性的消息)被同步顯示;數(shù)值更低(更嚴(yán)重)消息被異步顯示。默認(rèn)的嚴(yán)重級(jí)別是2。參數(shù)all使得所有消息都被異步顯示,不管分配的嚴(yán)重級(jí)別。參數(shù)limit指定在路由器開(kāi)始丟棄新的消息前,有多少個(gè)同步消息可以排隊(duì)在隊(duì)列中,默認(rèn)是20條消息。如果到達(dá)該閾值,路由器必須丟棄新的消息時(shí),就會(huì)看到_of_messages due to overflow日志消息。
注意:同步日志的主要缺點(diǎn)是當(dāng)路由器正在產(chǎn)生許多消息,而我們正在CLI很慢地輸入時(shí),路由器必須丟棄超過(guò)閾值的任何消息。因此,將無(wú)法在線(xiàn)路上看到這些消息,如果看到這類(lèi)事件對(duì)您來(lái)說(shuō)很關(guān)鍵,強(qiáng)烈建議將它們記錄在路由器內(nèi)部緩存、系統(tǒng)日志服務(wù)器或者SNMP管理臺(tái)。另外,黑客也有可能利用過(guò)長(zhǎng)的VTY線(xiàn)路空閑時(shí)間。
日志級(jí)別
在開(kāi)始討論將記錄日志到其他目的地之前,管理員應(yīng)當(dāng)熟悉日志消息和嚴(yán)重級(jí)別。每個(gè)日志消息被子關(guān)聯(lián)一個(gè)嚴(yán)重級(jí)別,用來(lái)分類(lèi)消息的嚴(yán)重等級(jí):數(shù)字越低,消息越嚴(yán)重。嚴(yán)重級(jí)別的范圍從0(最高)到7(最低)。
0——emergencies——系統(tǒng)不可用消息。
1——alerts——立即采取行動(dòng)。
2——critical——關(guān)鍵狀態(tài)。
3——errors——出錯(cuò)消息。
4——warrings——警告消息。
5——notifications——正常但有特殊意義的狀態(tài)。
6——informational——信息消息。
7——debugging——調(diào)試消息和FTP命令及WWW URL記錄。
將日志記錄到其他位置
1. 到邏輯VTY
有兩個(gè)命令可用于控制日志消息發(fā)送到路由器的線(xiàn)路上:logging console 和logging monitor。
logging console命令是指將日志記錄到物理的TTY,如控制臺(tái)和輔助線(xiàn)路。Logging console命令是指將日志記錄到邏輯VTY,如Telnet會(huì)話(huà)。默認(rèn)地,記錄日志在控制臺(tái)對(duì)所有級(jí)別都打開(kāi);但是也可以通過(guò)改變logging console 命令中的嚴(yán)重級(jí)別來(lái)修改。默認(rèn)情況下,網(wǎng)絡(luò)設(shè)備不會(huì)將邏輯VTY打開(kāi),我們需要執(zhí)行l(wèi)ogging monitor或者terminal monitor,將控制臺(tái)日志消息復(fù)制到VTY。
提示:由于設(shè)備需要將消息顯示在終端線(xiàn)路上,這樣會(huì)給網(wǎng)絡(luò)設(shè)備增加額外負(fù)擔(dān),所以強(qiáng)烈建議將嚴(yán)重級(jí)別改到比調(diào)試更高的嚴(yán)重級(jí)別(較低的數(shù)字)。
2. 內(nèi)部緩存記錄
我們?nèi)罩鞠⒂涗浀竭壿婽TY后,依然無(wú)法保證我們調(diào)試過(guò)程被完整記錄下來(lái),比如我們沒(méi)在意連接線(xiàn)路的屏幕輸出,或消息滾過(guò)屏幕并超出了終端軟件的歷史緩存,則沒(méi)有任何機(jī)制可以再看到那些丟失的消息。一個(gè)解決方案是將日志消息記錄到路由器的內(nèi)部緩存,根據(jù)路由器平臺(tái)的不同,該項(xiàng)可能是默認(rèn)打開(kāi)或者關(guān)閉的;在大多數(shù)平臺(tái)下,默認(rèn)是打開(kāi)的。使用以下命令將日志記錄到路由器的緩存:
logging buffered [ buffer_size | severity_level ]
該命令有兩個(gè)參數(shù),buffer-size參數(shù)指定應(yīng)該為內(nèi)部緩存分配多大的內(nèi)存,以字節(jié)為單位,從4096到294967295字節(jié)。使用default logging buffered命令可將緩存大小設(shè)成出廠的默認(rèn)值。
注意:將緩存的大小設(shè)置得太大時(shí)要小心,因?yàn)槿绻泻芏嘞ⅲ@會(huì)使得路由器耗盡內(nèi)存,可能使其崩潰。
3. 到日志服務(wù)器
將日志記錄到日志服務(wù)器比將日志記錄到命令行或者內(nèi)部緩存要稍微復(fù)雜一些,但這也是Cisco和其他產(chǎn)商推薦的做法。以下是將日志記錄到服務(wù)器的相關(guān)命令:
logging [host-name | ip-address]
logging trap level
logging facility facility-type
logging source-interface interface-type interface-number
logging on
其實(shí)命令也不是十分復(fù)雜,對(duì)應(yīng)如圖所示拓?fù)鋱D:
R3(config)# logging 16.2.2.6
R3(config)# logging trap informational
R3(config)# logging source-interface loopback 0
R3(config)# logging on
l-Logging host 命令指定系統(tǒng)日志服務(wù)器的IP地址。
l-logging trap命令指定要發(fā)送到系統(tǒng)日志服務(wù)器的日志消息的嚴(yán)重級(jí)別。默認(rèn)是informational。
l-logging source-interface命令來(lái)生成一致的日志條目,這樣路由器使用一個(gè)相同的源地址。
l-Logging on命令允許將日志記錄到非控制臺(tái)目的地。
4. 到SNMP數(shù)據(jù)庫(kù)
可以將日志信息發(fā)送到的最后一個(gè)地方是SNMP管理臺(tái),很多網(wǎng)管軟件都有相關(guān)的說(shuō)明。此外,賽迪網(wǎng)站上此類(lèi)文章較多,讀者可以自行參考配置。