凌峰创科服务平台

Cisco交换机如何配置日志服务器?

为什么需要配置日志服务器?

在配置之前,先理解其好处:

Cisco交换机如何配置日志服务器?-图1
(图片来源网络,侵删)
  1. 集中管理:所有网络设备的日志都发送到一个中心服务器,无需登录到每台设备上查看日志。
  2. 故障排查:当网络出现问题时(如端口频繁 Up/Down、MAC 地址抖动、STP 拓扑变化),可以快速在日志服务器上定位问题设备和时间点。
  3. 安全审计:记录所有登录尝试(成功/失败)、配置变更等安全相关事件,满足合规性要求。
  4. 性能监控:通过分析系统日志,可以监控设备资源使用情况(如 CPU、内存)。
  5. 长期存储:交换机自身的日志缓冲区是有限的,日志服务器可以提供无限的存储空间。
  6. 告警通知:可以将日志服务器与监控系统(如 Zabbix, Prometheus, ELK Stack)集成,实现当特定日志事件发生时自动发送告警邮件或短信。

配置前的准备工作

在开始配置交换机之前,你需要确保以下几点:

  1. 一台日志服务器

    • 可以是 Linux 服务器(推荐使用 rsyslogsyslog-ng 服务)。
    • 也可以是 Windows 服务器(使用 Kiwi Syslog Server, PRTG Network Monitor 等软件)。
    • 服务器必须有一个静态的 IP 地址,并且能被交换机访问。
  2. 网络连通性

    • 交换机必须能够通过 IP 网络到达日志服务器。
    • 确保网络中没有防火墙阻止 UDP 端口 514(Syslog 的标准端口)。
  3. 访问权限

    Cisco交换机如何配置日志服务器?-图2
    (图片来源网络,侵删)
    • 你需要拥有交换机的 特权 EXEC 模式(或 enable 模式)的访问权限。

配置步骤详解

我们将分步进行配置,从基础到高级。

步骤 1:进入全局配置模式

通过 Telnet、SSH 或 Console 登录到交换机,并进入全局配置模式。

Switch> enable
Switch# configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#

步骤 2:定义日志服务器的 IP 地址

这是最核心的一步,告诉交换机把日志发送到哪里。

# 格式:logging host <日志服务器IP地址>
Switch(config)# logging host 192.168.1.100

你可以配置多个日志服务器来实现冗余:

Cisco交换机如何配置日志服务器?-图3
(图片来源网络,侵删)
Switch(config)# logging host 192.168.1.101

步骤 3:(可选但推荐)设置日志服务器的 UDP 端口

默认端口是 514,如果你的日志服务器使用了非标准端口,或者为了安全起见使用了其他端口,需要在这里指定。

# 格式:logging trap <severity_level>
# 或者针对特定主机设置端口
# logging host <IP> transport udp port <端口号>
Switch(config)# logging host 192.168.1.100 transport udp port 5140

步骤 4:设置日志的严重性级别

这是非常重要的一步,交换机只会发送等于或高于你设置级别的日志,级别从低到高依次为:

级别编号 关键字 描述
0 emergencies 系统不可用
1 alerts 必须立即采取行动
2 critical 关键条件
3 errors 错误条件
4 warnings 警告条件
5 notifications 正常但重要的状况
6 informational 信息性消息
7 debugging 调试消息

推荐配置: 对于生产环境,通常设置为 notifications (5) 或 informational (6),这样可以捕获大部分有用的信息(如端口状态变化、用户登录等),同时避免被调试信息 (debugging) 淹没。

# 设置级别为 notifications (5)
Switch(config)# logging trap notifications

注意logging trap 命令控制的是发送到 所有 日志服务器的日志级别,如果你想对不同服务器设置不同级别,可以使用更高级的 logging facilitylogging origin-id 等命令配合服务器端进行过滤。

步骤 5:(可选)设置日志源地址

当交换机有多个 VLAN 接口或 SVI 时,它可能会选择一个出站接口的 IP 地址作为源 IP,这可能导致日志服务器无法正确识别日志来源,你可以强制指定一个固定的源 IP 地址。

# 格式:logging source-interface <接口名称>
Switch(config)# logging source-interface Vlan1

这里 Vlan1 是管理 VLAN 的接口,通常配置了交换机的管理 IP。

步骤 6:(可选)启用时间戳

为了让日志服务器上的日志条目有序且易于分析,强烈建议启用时间戳,并指定时区。

# 启用时间戳
Switch(config)# service timestamps log datetime msec
# 设置时区(中国是 GMT+8)
# 格式:clock timezone <时区名称> <偏移量>
Switch(config)# clock timezone CST 8

步骤 7:保存配置

完成所有配置后,务必保存配置,否则重启后配置会丢失。

Switch(config)# end
Switch# write memory
Building configuration...
[OK]

验证配置

配置完成后,你可以通过以下命令来验证和监控日志发送状态。

  1. 查看日志服务器列表

    Switch# show logging hosts
    Syslog logging: enabled
    Facility: local7
    Logging to host 192.168.1.100, 1 out of 255 logging buffers, octets pending: 0
      Logging to host 192.168.1.101, 1 out of 255 logging buffers, octets pending: 0

    这个命令会显示所有配置的日志服务器及其连接状态。

  2. 查看日志缓冲区 交换机自身有一个小的日志缓冲区,你可以查看它来确认日志是否在本地生成。

    Switch# show log
    *Mar  1 00:01:02: %SYS-5-CONFIG_I: Configured from console by admin on vty0
    *Mar  1 00:02:03: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan10, changed state to up
    ...
  3. 查看日志统计信息

    Switch# show logging statistics
            ... (省略部分输出) ...
        30 message buffer size, 0 messages dropped
        Logging to 192.168.1.100 (0 dropped, 0 flushes, 0 overruns)
        Logging to 192.168.1.101 (0 dropped, 0 flushes, 0 overruns)
        ...

    注意看 dropped (丢弃) 计数器,如果这个数字一直在增加,说明交换机生成日志的速度超过了网络发送的速度,或者日志服务器处理不过来,你可能需要考虑:

    • 升级日志服务器硬件。
    • 调整日志级别,减少不必要的日志。
    • 增加日志缓冲区大小 (logging buffered <size>)。

日志服务器端配置(Linux 示例)

以一台运行 Ubuntu/Debian 的 Linux 服务器为例,配置 rsyslog 来接收来自 Cisco 交换机的日志。

  1. 安装 rsyslog

    sudo apt-get update
    sudo apt-get install rsyslog -y
  2. 配置 rsyslog 编辑主配置文件 /etc/rsyslog.conf,取消注释或添加以下行,以启用 UDP 接收并处理来自 Cisco 设备的日志。

    sudo nano /etc/rsyslog.conf

    在文件中找到以下部分并确保它们是激活的(没有 开头):

    # Provides UDP syslog reception
    module(load="imudp")
    input(type="imudp" port="514")
    # Provides TCP syslog reception
    # module(load="imtcp")
    # input(type="imtcp" port="514")

    在文件的 #### RULES #### 部分,添加一条规则来专门处理来自你的交换机(IP 为 192.168.1.10)的日志,并将它们保存到 /var/log/switches.log 文件中。

    # Rule for Cisco Switch 192.168.1.10
    if $fromhost-ip == '192.168.1.10' then {
        action(type="omfile" file="/var/log/switches.log")
        stop
    }
  3. 重启 rsyslog 服务

    sudo systemctl restart rsyslog
    sudo systemctl enable rsyslog
  4. 测试 你在交换机上执行一些操作(interface vlan 10 shutdown 然后再 no shutdown),然后在日志服务器上检查 /var/log/switches.log 文件,你应该能看到相应的日志条目。


常见问题与排错

  • 问题:日志服务器上没有收到任何日志。

    • 排查
      1. 检查交换机和日志服务器之间的网络连通性 (ping)。
      2. 检查防火墙(服务器端和交换机端)是否允许 UDP 514 端口。
      3. 在交换机上使用 show logging hosts 确认服务器地址正确。
      4. 在交换机上使用 show logging statistics 查看 dropped 计数器是否增加。
      5. 在服务器上检查 rsyslog 服务是否正在运行 (systemctl status rsyslog)。
  • 问题:日志时间戳不正确或乱码。

    • 排查
      1. 确保在交换机上配置了 service timestamps log datetime 和正确的时区 (clock timezone)。
      2. 检查日志服务器的时间是否准确(使用 ntpdatechrony 同步时间)。
  • 问题:日志量太大,服务器压力大。

    • 排查
      1. 在交换机上提高 logging trap 的级别,例如从 debugging (7) 提高到 notifications (5)。
      2. 在服务器端配置更精细的过滤规则,只记录关键事件。

通过以上步骤,你就可以成功地在 Cisco 交换机上配置日志服务器,并开始享受集中化日志管理带来的便利了。

分享:
扫描分享到社交APP
上一篇
下一篇