實例:緩存
en 服務器
conf t異步
clock timezone GMT+8 #設置北京時間工具
exitoop
clock set HH:MM:SS DAY MONTH YEAR #設置當前時間spa
service timestamps debug uptime #開啓debug調試模式.net
service timestamps log datetime localtime #開啓log日誌增長時間戳命令行
log on #啓動log功能debug
loggin 192.168.1.100 #配置日誌發送到192.168.1.100的主機上調試
loggin facility local2 #將記錄時間類型定義爲local2
loggin trap 7 #cisco 設備告警級別共分0---7級,0級最高,7級最低
logging source-inter loopback0 #指定log日誌記錄內容發送的源地址爲Loopback0的IP地址
service timestamps log datetime localtime #發送log日誌時發送時間戳
end
wr
--------------------------------------
日誌消息的嚴重級別
參數 級別 系統日誌描述 描述
emergencies 0 LOG_EMERG 系統不可用
alerts 1 LOG_ALERT 在端口下是須要當即操做的
critical 2 LOG_CRIT 路由器上存在一個關鍵狀態
errors 3 LOG_ERR 路由器上存在一個錯誤狀態
warnings 4 LOG_WARNING 路由器上存在一個警告狀態
notifications 5 LOG_NOTICE 路由器上發生了一個日常的但重要的事件
informational 6 LOG_INFO 路由器上發生了一個信息事件
debugging 7 LOG_DEBUG 來自debug命令的輸出
交換機上配置
C3560#config t
C3560(config)#logging on
C3560(config)#logging 10.86.20.10 //日誌服務器的IP地址
C3560(config)#logging facility local0 //facility標識
C3560(config)#logging trap 3 (log日誌) //日誌記錄級別
C3560(config)#logging source-interface g0/3 //日誌發出用的源IP地址
C3560(config)#service timestamps debug datetime localtime //日誌記錄的時間戳設置,可根據須要具體配置
C3560(config)#exit
查看 C3560#show logging
關於Cisco路由器日誌的記錄和保存
關於Cisco路由器日誌的記錄和存儲, 咱們分下面幾步進行討論.首先是爲線路顯示日誌的記錄信息,而後是將日誌信息保存到Log服務器,最後將日誌信息發送到SNMP管理終端.
配置日誌信息地發送選項
日誌信息一般是指Cisco IOS中,系統所產生的報警信息.其中每一條信息都分配了一個警告的級別,並攜帶一些說明問題或時間嚴重性的描述信息.默認狀況下,Cisco IOS只發送日誌信息到Console接口;可是日誌信息發送到Console接口有時候並不方便咱們儲存,管理,分析日誌信息,更多狀況下咱們選擇將日誌發送至路由器緩存,Cisco路由器日誌服務器或者是SNMP管理終端上去.
在Cisco IOS中,日誌的消息將會以以下的方式被髮送到日誌存儲區域:
%LINK-5-CHANGED:Interface Ethemet0/0,changed state to administratively down,
若是爲日誌信息啓用了時間戳和序號等附加選項,則日誌信息的顯示以下:
000011:Feb 03 14:03:13.011:%SYS-5-CONFIGJ:Configrued from console by console,
Cisco IOS規定,Cisco路由器日誌信息分爲7個級別,每一個級別都和一個嚴重等級相關聯,級別0爲最高,級別7爲最低.使用Logging命令後的參數,能夠設置所記錄的日誌等級.
日誌消息的嚴重級別
參數 級別 系統日誌描述 描述
emergencies 0 LOG_EMERG 系統不可用
alerts 1 LOG-ALERT 在端口下是須要當即操做的
critical 2 LOG_CRIT 路由器上存在一個關鍵狀態
errors 3 LOG_ERR 路由器上存在一個錯誤狀態
warnings 4 LOG_WARNING 路由器上存在一個警告狀態
notifications 5 LOG_NOTICE 路由器上發生了一個日常的但重要的事件
informational 6 LOG_INFO 路由器上發生了一個信息事件
debugging 7 LOG_DEBUG 來自debug命令的輸出
缺省的:Console,monitor,buffer的Logging被設置爲debugging級,而trap(syslog)服務器的logging被設置爲informational
若是在ACL語句中使用log關鍵字,則只有嚴重級別設爲6或者7時,纔會在控制檯上顯示輸出.(注:7的話,可能顯示的會比較慢)
對於日誌記錄功能能夠控制的一個選項是,哪些消息被記錄到4個目的地(線路,內部緩存,系統日誌服務,SNMP管理臺)例如,在控制檯上,能夠限制記錄嚴重級別爲4(即顯示從0到4的消息)的日誌消息;可是對系統日誌服務器,能夠設置爲6(0到6).
日誌記錄目的地
能夠將日誌信息轉發到如下4種基本目的地
1.線路
2.內部緩存
3.系統日誌服務器
4.SNMP管理臺
1.線路日誌
有兩個命令可用於控制日誌消息被髮送到路由器的線路上:
Router(config)#logging console [severity_level] //console 日誌
Router(config)#logging monitor [severity_level] //vvt telnet 日誌
logging console命令是指將日誌記錄到物理的TTY,如控制檯和輔助線路.默認地,記錄日誌到控制檯對全部級別都打開;可是能夠經過改變logging console命令中的嚴重級別來修改.
logging monitor命令是將日誌記錄到邏輯的VTY.
將日誌記錄到VTY和AUX默認是關閉的,要打開就要執行特權級的EXEC命令terminal monitor(telnet登陸後使用),將控制檯日誌消息複製到VTY,或者配置logging monitor命令.若是使用了後者,在初次訪問路由VTY時,則不須要執行terminal monitor命令來查看TTY命令行的日誌輸出.在配置logging monitor命令時,若是不指定嚴重級別,則默認爲7(調試)
對兩個命令,都必須使用logging on命令來打開日誌記錄.
因爲將消息顯示在終端線路上,如控制檯,會給路由器增長處理負擔,因此建議將嚴重級別改到此調試更高的嚴重級別(較低的數字).若是要查看較低嚴重級別的消息,可使用路由器內部緩存,系統日誌服務器,或者SNMP管理臺.
若是在生成錯誤和調試消息的過程當中,關閉logging on命令,會大大下降路由器的速度,直到這些消息顯示在路由器的線路上,所以爲顯示在控制檯線路的日誌消息分配嚴重級別時要當心.
在配置路由器時,咱們常常會遇到正在輸入命令的時候,Cisco IOS設備將日誌信息顯示在正在輸入的命令行中,雖然這些Cisco路由器日誌消息和咱們輸入命令無關,可是也會爲咱們形成麻煩,此時咱們能夠經過輸入logging synchronous命令,此命令的主要目的是將日誌信息的輸出,調試信息的輸出同步到路由器線路上:控制檯,輔助和VTY線路.
同步日誌的主要目的是控制什麼時候消息被顯示在路由器的線路上,當啓用這個特性時,同步日誌使得Cisco IOS顯示消息,而後執行一個等價的Ctrl-R的命令,這使得路由器將已經輸入的信息從新顯示在命令行上.
可使用Loging synchronous命令來影響日誌消息的顯示:
Router(config)#line type #
Router(config-line)#logging synchronous [level severity_level |all] [limit #_of_lines]
嚴重程度是指日誌消息的嚴重程度,這些消息是異步顯示的.嚴重性數值比該值高的消息(更低嚴重性的消息)被同步顯示;數值更低的(更嚴重)消息被異步顯示.默認的嚴重級別是2.參數all使得全部消息都被異步顯示,無論分配的嚴重級別.
參數Limit指定在路由器開始丟棄新的消息前,有多少個同步消息能夠排在隊列中.默認是20條消息.若是到達該閥值,路由必須丟棄消息時,就會看到如下日誌消息,說明路由必須丟棄的消息數目:
%SYS-3-MSGLOST#_of_messages due to overflow
同步日誌的主要缺點是當路由器正在產生許多消息,而咱們正在CLI中很慢地輸入時,路由器必須丟棄超過閥值地任何消息.所以,將沒法在線路上看到這些消息.若是看到這類事件對你來講很關鍵,建議將它們記錄在路由器內部緩存,系統日誌服務器或者SNMP管理臺.
在給非控制檯線路(如VTY)設置很大隊列極限值時要當心.若是黑客能夠進入路由器上的VTY,而VTY上打開了同步日誌,則黑客能夠在輸入命令期間使VTY線路空閒.這將致使Cisco IOS用消息填滿很大的隊列,能夠會耗盡路由器的整個內存.
2.內部緩存日誌
記錄日誌消息到TTY或者VTY存在一個問題是,若是沒有看鏈接線路的屏幕輸出,消息滾過屏幕並超出了終端軟件的歷史緩存,則沒有任何機制能夠再看到那些丟失的消息.若是把日誌消息記錄到除了線路之外的其餘目的地,則能夠避免這個問題.
一個解決方案是將日誌消息記錄到路由器的內部緩存,根據路由器平臺的不一樣,該項多是默認打開或關閉的;大多數平臺下,默認是打開的,用如下命令將日誌記錄到路由器的緩存:
Router(config)#logging buffered [buffer_size | severity_level]
該命令有兩個參數,buffer_size指定爲內部緩存分配多大的內存,以字節爲單位.使用default logging buffered命令將緩存大小設回出廠的默認值.severity_level指出應該記錄的嚴重級別.默認的大小和嚴重級別(一般是7)依賴於平臺型號.
3.系統日誌服務器日誌
如下是將日誌記錄到系統日誌服務器的基本命令
Router(config)#logging on
Router(config)#logging host{IP_address | host name}
Router(config)#logging trap severity_level
Router(config)#logging source-interface interface_type_interface_#
Router(config)#logging origin-id {host name| ip | string string}
Router(config)#logging facility facility_type
logging命令容許將日誌記錄到非控制檯目的地.
logging host命令指定系統日誌服務器的IP地址或者主機名(徹底合格的域名(FQDN)).若是不僅一次輸入該命令,指定不一樣的系統日誌服務器目的地,能夠創建路由器使用的系統日誌服務器列表.若是指定多個日誌服務器的地址,設備則會屢次發送日誌信息到全部的日誌服務器
在Cisco IOS12.2(15)T版本以前,使用logging {hostname|IP_address}命令打開系統日誌服務器記錄,如今使用logging host命令.
logging trap命令指定要發送到系統日誌服務器的日誌消息的嚴重級別.默認是informational.
默認地,路由器用來到達系統日誌服務器的接口IP地址將做爲IP數據包頭中的源IP地址.使用logging source-interface命令來生成一致的日誌條目.這樣路由器使用一個相同的源地址.使用該命令時,必須指定接口的類型和編號.只有路由器有兩個或更多接口能夠到達系統日誌服務器時,該命令纔是必須的.(若是有多個接口均可以到達日誌服務器時,又不指定源,那麼日誌信息的源IP地址則有可能會不一樣).可是爲了一致性,要確保在系統日誌數據包中使用相同的源地址.這使得在系統日誌服務器上執行過濾規則來阻止的不但願的日誌消息變得更容易.
在12.2(15)T版本中,Cisco增長了將路由器身份信息添加到系統日誌消息的功能,這樣能夠基於每一個路由器,更容易地在系統日誌服務器上搜尋或者分離信息.這是由logging origin-id實現的.該命令默認是關閉的.身份信息能夠選擇hostname(使用hostname命令配置的名稱),IP地址(發送接口的IP地址)和string(用來定義路由器身份信息的字符串).若是字符串包含空格,則必須用引號將它括起來.
logging facility命令定義在運行UNIX的系統日誌服務器上使用的工具,日誌信息將保存在該服務器上.
系統日誌工具類型
參數 描述
auth 受權系統
cron Cron工具
daemon 系統守護程序
kern 內核
local0到local7 本地定義的消息(從0到7)
lpr 打印機系統
mail E-mail系統
news USENET新聞
sys9到sys14 系統使用
syslog 系統日誌
user 用戶定義進程
uucp UNIX到UNIX的複製系統
若是不指定工具,默認是local7.在UNIX上,能夠經過編輯適當的配置文件來爲指定的工具指定日誌文件的保存位置.例如,編輯/ect/syslog配置文件,能夠爲工具建立一個條目.
如:local7.debugging/usr/adm/logs/router.log
該例中,工具級別是local7,debugging關鍵字指定了系統日誌記錄級別.系統日誌級別將決定哪一個級別的消息將保存在如下的文件中:任何該嚴重級別及更高級別的消息將存儲在這個特定的文件中.
4.SNMP日誌
要將日誌消息發送到SNMP管理臺,要執行如下命令:
Router(config)#snmp-server enable trap syslog (陷阱消息中的系統日誌將被髮送到SNMP管理臺)
而後,有三個命令控制將日誌消息記錄到管理臺:
Router(config)#logging on
Router(config)#logging history severity_level
Router(config)#logging history size number
第二個命令指定哪些嚴重級別的日誌消息應該被髮送到SNMP管理臺.默認級別是warning.因爲SNMP使用UDP,而UDP是不可靠的鏈接,系統日誌陷阱保存在路由器的歷史表中.至少一條系統日誌消息(最新的一條)被保存在歷史表中(默認是一條消息).能夠用logging history size將這個值增長到500條.
從Cisco IOS12.2 (1.4)版本開始,Cisco IOS可使用ip nat log translations syslog命令來記錄每一個NAT轉換.
其餘日誌命令
1.日期和時間戳
默認地,日誌消息不包括日期和時間戳.使用如下兩個命令中的一個來添加日期和時間戳:
Router(config)#service timestamps {debug | log} uptime
Router(config)#service timestamps {debug | log} datetime [msec] [localtime][show-timezone][year]
能夠在兩種類型的消息中添加時間戳:調試和日誌消息.使用debug參數使Cisco IOS在調試輸出時包括時間戳.使用log參數則在每種日誌消息中添加一個時間戳.第一個命令包括了uptime參數,使得Cisco IOS在消息中包括路由器開機以來的時間,如:1w0d:%SYS-5-CONFIG_I:Configured from console by console
若是要知道準確的日期和時間,則使用datetime參數.這個參數使得Cisco IOS在消息中包括日期和時間(日期和時間使用UTC格式),標準格式是:MMM DD HH:MM:SS.當使用datetime參數時,有一些可選的參數可用.msec參數在消息中包括毫秒信息.localtime顯示基於路由器本地配置的時區時間.默認狀況下,年份信息不包括在時間信息中,可是使用可選的year則能夠包括該信息.show-timezone參數在日期和時間輸出中包括時區名稱(以下面的UTC).下面是一個log參數和datetime,localtime和show-timezone選項一塊兒使用的簡單例子:
(.May 23 11:13:25 UTC:%SYS-5-CONFIG_I:Configured from console by consle)
日誌消息通常是從三種字符的一種開始的;空格,星號或者句點.
日誌消息起始字符
參數 名稱 描述
空格 路由器的時鐘被手動設置,或者和NTP時間器同步
* 星號路由器的時鐘沒有被設置,或者沒有和NTP服務器同步
. 句點路由器的時鐘被設置爲同步,但和NTP服務器失去聯繫
2.序列號
除了將時間戳添加到日誌消息中外,還可 讓Cisco IOS在每條消息中顯示序列號.可使用如下命令來實現:
Router(config)#service sequence-numbers
如:下面顯示的000041,000042 (下面顯示的是除yeay參數的service timestamps命令)
3.速率限制
從Cisco IOS 12.1(3)T版本開始,能夠用logging rate-limit命令以秒爲單位限制記錄日誌消息的速率.
Router(config)#logging rate-limit {number | all number |console number}[except severity]
默認地,路由器上沒有速率限制.經過指定一個從1到10000數.能夠將每秒記錄的日誌消息數限制到該值.all關鍵字,後面跟一個數值,將做用於全部日誌記錄和調試消息.console關鍵字則限制將日誌消息記錄到控制檯的速率.except參數對指定嚴重級別或者根據高級別的消息創建一個例外.
強烈創建使用該命令,特別是在控制檯接口上.在受到攻擊時,會出現泛洪,該命令能夠減小路由器須要處理的消息量.
日誌記錄驗證
1.show logging命令
show logging顯示了當前系統日誌錯誤和事件記錄的狀態,包括全部配置的系統日誌服務器地址,哪一種類型日誌打開,以及日誌記錄統計.如下是命令的格式:
Router#show logging [summary] (GNS3 3600上無此參數)
使用clear logging命令清除內部緩存器中的日誌消息.
2.show logging history命令
該命令顯示了系統日誌歷史表的大小,表中的消息的狀態以及消息自己.
日誌記錄和錯誤計數
若是正在使用路由內部緩存,而且較老的消息正在老化時,該特性很是有用.使用該特性,Cisco IOS仍然會跟蹤特定日誌消息的發生數,以及該消息最後一次發生的狀況.若是內部緩存不可以保留全部消息,而一樣的錯誤或者問題卻持續發生時,則該特性頗有用.該特性基本上能夠替代上面討論的show logging summary命令.
在配置模式執行如下命令啓用該特性:
Router(config)#logging count
該命令對每一個日誌消息進行計數,包括每種消息類型最後一次發生的時間戳.