设为首页 收藏本站
查看: 1044|回复: 0

[经验分享] 配置Cisco设备日志

[复制链接]

尚未签到

发表于 2018-7-12 08:10:25 | 显示全部楼层 |阅读模式
  日志消息通常是指Cisco IOS中的系统错误消息。其中每条错误信息都被分配了一个严重级别,伴随一些只是问题或事件的严重性分析。Cisco IOS发送日志消息(包括debug命令的输出)到日志记录过程。默认情况下,只发送到控制台接口,可可以将日志记录到路由器内部缓存,终端线路,系统日志服务器和SNMP管理站。
  一、日志消息格式
  在Cisco IOS设备中,日志消息采用下面的格式:
  %<facility>-<severity>-<mnemonic>:<message_text>
  下面是一个简单的例子:
  %LINK-5-CHANGED:Interface Ethernet1,changed state to
  administratively down
  假设为日志消息已经启用了时间戳和序列号,对于日志消息,将看到以下信息,首先是序列号,紧接着是时间戳,然后才是消息:
  000022:Jan 02 15:42:11.048:%LINK-5-CHANGED:Interface Ethernet0,
  changed state to administratively down
  二、基本日志记录配置
  在设置日志记录时,需要完成两个基本的任务:打开日志记录和控制日志在线路上的显示。
  1、打开日志记录
  默认地,日志记录只在路由器的控制台线路上打开,要在其他地方记录日志,则必须相应地打开日志记录并进行配置。使用以下命令打开日志记录:
  Router(config)#logging on
  使用logging on命令,可以为日志记录打开其他已配置的目的地,如系统日志服务器或路由器的内部缓存。在将系统消息记录到除了控制台端口的其他位置之前,必须执行该命令;但是,使用其他的logging命令,可以单独控制哪个过程将接收日志消息。例如,已经配置了命令,将日志消息记录到系统日志服务器,但是没有执行logging on命令,则Cisco IOS只将消息记录到控制台线路。
  二、配置同步日志记录
  logging synchronous命令的主要目的是将日志消息输出和调试输出同步到路由器线路上:控制台、辅助和VTY线路。
  同步日志的主要目的是控制何时消息被显示在路由器的线路上。当启用这个特性时,同步日志使得Cisco IOS显示消息,然后执行一个等价的Ctrl-R的命令,这使得路由器将已经输入的信息重新显示在命令行上。
  可以使用logging 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用消息填满很大的队列,可能会耗尽路由器的整个内存。
  三、日志记录目的地
  可以将日志信息转发到以下4种基本目的地
  ●线路;
  ●内部缓存;
  ●系统日志服务器;
  ●SNMP管理台。
  1、严重级别
  每个日志消息被关联一个严重级别,用来分类消息的严重等级:数字越低,消息越严重。严重级别的范围从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时,才会在控制台上显示输出。
  对于日志记录功能可以控制的一个选项是,哪些消息被记录到4个目的地。例如,在控制台上,可以限制记录严重级别为4(即显示从0到4的消息)的日志消息;但是对系统日志服务器,可以设置为6(0到6)。
  2、线路日志
  有两个命令可用于控制日志消息被发送到路由器的线路上:                Router(config)#logging console [severity_level]                   Router(config)#logging monitor [severity_level]
  logging console命令是指将日志记录到物理的TTY,如控制台和辅助线路。logging monitor命令将日志记录到逻辑VTY。默认地,记录日志到控制台对所有级别都打开;但是可以通过改变logging console命令中的严重级别来修改。
  将日志记录到VTY和AUX默认是关闭的,要打开就要执行特权级的EXEC命令terminal monitor,将控制台日志消息复制到VTY,或者配置logging monitor命令。如果使用了后者,在初次访问路由VTY时,则不需要执行terminal monitor命令来查看TTY命令行的日志输出。在配置logging monitor命令时,如果不指定严重级别,则默认为7(调试)。
  对两个命令,都必须使用logging on命令来打开日志记录。
  由于将消息显示在终端线路上,如控制台,会给路由器增加处理负担,所以建议将严重级别改到比调试更高的严重级别(较低的数字)。如果要查看较低严重级别的消息,可以使用路由器内部缓存、系统日志服务器,或者SNMP管理台。
  如果在生成错误和调试消息的过程中,关闭logging on命令,会大大降低路由器的速度,直到这些消息显示在路由器的线路上。因此为显示在控制台线路的日志消息分配严重级别时要小心。
  3、内部缓存日志
  记录日志消息到TTY或者VTY存在的一个问题是,如果没在看连接线路的屏幕输出,消息滚过屏幕并超出了终端软件的历史缓存,则没有任何机制可以再看到那些丢失的消息。如果把日志消息记录到除了线路以外的其他目的地,则可以避免这个问题。
  一个解决方案是将日志消息记录到路由器的内部缓存,根据路由器平台的不同,该项可能是默认打开或关闭的;大多数平台下,默认是打开的。使用以下命令将日志记录到路由器的缓存:                                                        Router(config)#logging buffered [buffer_size|severity_level]        该命令有两个参数,buffer_size指定为内部缓存分配多大的内存,以字节为单位。使用default logging buffered命令将缓存大小设回出厂的默认值。severity_level指出应该记录的严重级别。默认的大小和严重级别(通常是7)依赖于平台型号。
  4、系统日志服务器日志
  以下是将日志记录到系统日志服务器的基本命令:                         Router(config)#logging on                                        Router(config)#logging host {IP_address|hostname}                 Router(config)#logging trap severity_level                       Router(config)#logging source-interface interface_type_interface_#  Router(config)#logging origin-id {hostname|ip|string string}      Router(config)#logging facility facility_type
  logging on命令允许将日志记录到非控制台目的地。logging host命令指定系统日志服务器的IP地址、主机名或者完全合格的域名(FQDN)。如果不只一次输入该命令,指定不同的系统日志服务器目的地,可以建立路由器使用的系统日志服务器列表。
  在Cisco IOS12.2(15)T版本之前,使用logging {hostname|IP_address}命令打开陷阱日志记录,现在使用logging host命令。
  logging trap命令指定要发送到系统日志服务器的日志消息的严重级别。默认是informational。
  默认地,路由器用来到达系统日志服务器的接口IP地址将作为IP数据包头中的源IP地址。使用logging source-interface命令来生成一致的日志条目。这样路由器使用一个相同的源地址。使用该命令时,必须指定接口的名称和编号。只有路由器有两个或更多接口可以到达系统日志服务器时,该命令才是必需的。但是为了一致性,要确保在系统日志数据包中使用相同的源地址。这使得在系统日志服务器上执行过滤规则来阻止的不希望的日志消息变得更容易。
  在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上,可以通过编辑适当的配置文件来为指定的工具指定日志文件的保存位置。例如,编辑/etc/syslog配置文件,可以为工具创建一个条目。如:local7.debugging /usr/adm/logs/router.log
  该例中,工具级别是local7,debugging关键字指定了系统日志记录级别。系统日志级别将决定哪个级别的消息将保存在以下的文件中:任何该严重级别及更高级别的消息将存储在这个特定的文件中。
  5、SNMP日志
  要将日志消息发送到SNMP管理台,要执行以下命令:                      Router(config)#snmp-server enable trap syslog

  然后,有三个命令控制将日志消息记录到管理台:                       Router(config)#logging on                                        Router(config)#logging history severity_level                       Router(config)#logging history>
  第二个命令指定哪些严重级别的日志消息应该被发送到SNMP管理台。默认级别是warning。由于SNMP使用UDP,而UDP是不可靠的连接,系统日志陷阱保存在路由器的历史表中。至少一条系统日志消息(最新的一条)被保存在历史表中(默认是一条消息)。可以用logging history>  从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参数在日期和时间输出中包括时区名称。下面是一个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
  3、速率限制
  从Cisco IOS12.1(3)T版本开始,可以用logging rate-limit命令以秒为单位限制记录日志消息的速率                                               Router(config)#logging rate-limit {number|all number|console number}[except severity]
  默认地,路由器上没有速率限制。通过指定一个从1到10,000的数。可以将每秒记录的日志消息数限制到该值。all关键字,后面跟一个数值,将作用于所有日志记录和调试消息。console关键字则限制将日志消息记录到控制台的速率。except参数对指定严重级别或者根高级别的消息建立一个例外。
  强烈建议使用该命令,特别是在控制台接口上。在受到***时,会出现泛洪,该命令可以减少路由器需要处理的消息量。
  五、日志记录验证
  1、show logging命令
  show logging显示了当前系统日志错误和事件记录的状态,包括所有配置的系统日志服务器地址,哪种类型日志打开,以及日志记录统计。以下是命令的格式:        Router#show logging [summary]
  使用clear logging命令清除内部缓存器中的日志消息。
  2、show logging history命令
  该命令显示了系统日志历史表的大小、表中的消息的状态以及消息本身。
  六、日志记录和错误计数
  如果正在使用路由器内部缓存,并且较老的消息正在老化时,该特性非常有用。使用该特性,Cisco IOS仍然会跟踪特定日志消息的发生数,以及该消息最后一次发生的情况。如果内部缓存不能够保留所有消息,而同样的错误或者问题却持续发生时,则该特性很有用。该特性基本上可以替代上面讨论的show logging summary命令
  在配置模式执行以下命令启用该特性:                                Router(config)#logging count
  该命令对每个日志消息进行计数,包括每种消息类型最后一次发生的时间戳。
  启用该特性后,可以使用show logging count命令来查看错误计数。
  使用syslog记录Cisco设备日志
  以下配置描述了如何将Cisco设备的日志发往syslog服务器
device#conf t   device(config)#logging on   device(config)#logging a.b.c.d //日志服务器的IP地址   device(config)#logging facility local1 //facility标识, RFC3164 规定的本地设备标识为 local0 - local7   device(config)#logging trap errors //日志记录级别,可用&quot;?&quot;查看详细内容(0:紧急emergencies1:告警alerts2:严重的critical3:错误errors4:警告warnings5:通知notifications6:信息informational7:调试debugging交换机一般配置成5,路由器一般配置为4)  device(config)#logging source-interface e0 //日志发出用的源IP地址   device(config)#service timestamps log datetime localtime  //日志记录的时间戳设置,可根据需要具体配置   检验   device#sh logging

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-536316-1-1.html 上篇帖子: cisco 1841模板介绍 下篇帖子: cisco 3650show run-leovlys
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表