实例:缓存
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
该命令对每一个日志消息进行计数,包括每种消息类型最后一次发生的时间戳.