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