Cisco 设备上的 TCP-Syslog 有问题吗?

网络工程 思科 通讯协议 系统日志
2021-07-07 00:17:39

我计划在某些 Cisco 交换机(例如安装了 15.0(2)SE9 的 WS-C3560X-24P)上从 UDP-Syslog 移动到 TCP-Syslog。但是在 Cisco 文档中,我无法找到有关如果系统日志服务器出现“问题”或不可用会发生什么情况的任何提示?交换机是否对系统日志消息进行排队?或者它会丢弃消息?如果设备上的“缓冲区”充满系统日志消息,是否会影响服务?

有什么帮助吗?

先感谢您!

2个回答

Syslog 流独立于路由器资源,因为它将配置的日志发送到外部 Syslog 服务器。丢失系统日志意味着这些日志返回到内部缓冲区。

内部缓冲区由操作系统本身分配一块内存,但可由用户配置,值范围从 4096 到大约 20 亿。但是,为缓冲区设置更大的值意味着您正在消耗其他路由器任务可能需要的宝贵内存。

因此,如果您将内部缓冲区值设置为一个您认为不会饿死其他人的值(这可能因路由器在网络中的位置而异)并且您丢失了系统日志服务器,您应该没问题。您唯一会丢失的是日志,因为内部缓冲区类似于循环队列,这意味着新消息会替换旧消息。

注意:我们的网络中有 4 个系统日志服务器,我认为这为我们提供了大量的 HA

据我所知,没有 Cisco 文档描述您提到的场景中发生的情况。

但即使有这样的文档,最好还是建议您使用您的设备和软件版本亲自验证行为,因为 syslog 是一个如此重要的组件。

这是我验证它的方法:

  1. 配置和验证基本功能
  2. 配置“logging buffered 4096”(默认)
  3. 编写一个 EEM 小程序以每秒发出一条 syslog 消息。使文本有点长(比如超过 256 个字符),只是为了检查被截断的系统日志。
  4. 启动小程序并验证 syslog 主机是否正在接收日志
  5. 现在断开系统日志主机的连接(通过从主机上物理拔下以太网电缆)。不要关闭主机或做任何可能导致 TCP 会话结束的事情。您可能还想验证 3560 上的管理界面(您可能从中发送系统日志)是否保持正常运行。
  6. 等待足够长的时间来填充 4096 字节的日志缓冲区。如果您每 1 秒记录 256 个字节,则需要等待 16 秒。再等几秒钟以确定。
  7. 现在重新连接系统日志主机
  8. 查看系统日志是否完全恢复,或者是否需要在 3560 端进行一些手动干预以确保系统日志恢复
  9. 现在检查在 16 秒窗口期间传输的日志发生了什么。使用时间戳检查丢弃了哪些消息(如果有)。

在企业网络中,与系统日志服务器完全中断相比,管理网络中的数据包丢失的可能性较小,因此上述测试过程是对真实用例的模拟。