You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

思科交换机日志已送达Syslog服务器但未写入,求排查方案

思科交换机日志无法写入rsyslog服务器排查思路

问题背景

已完成思科交换机的Syslog配置,将日志发送至cldlog001(IP:10.254.1.103),交换机配置如下:

schu-ebd-sw-vt14-11#configure terminal
schu-ebd-sw-vt14-11(config)#logging 10.254.1.103  
schu-ebd-sw-vt14-11(config)#logging on
schu-ebd-sw-vt14-11(config)#logging host 10.254.1.103 transport udp port 514
schu-ebd-sw-vt14-11(config)#logging trap debugging
schu-ebd-sw-vt14-11(config)#logging facility local5

通过show log确认交换机已向目标服务器发送110条日志,tcpdump验证服务器已收到交换机的514端口UDP报文,但rsyslog未生成日志文件。rsyslog关键配置片段:

#### TEMPLATES ####
$template CiscoLog, "/var/log/remote/%HOSTNAME%/cisco.log"

# Log all the mail messages in one place.
#mail.*                                                  -/var/log/maillog
local5.*                                                -?CiscoLog

重启rsyslog服务后问题依旧,具体排查思路如下:


  • 检查rsyslog UDP监听配置
    默认rsyslog可能未开启UDP 514端口监听,需确认配置中存在以下内容:

    module(load="imudp")
    input(type="imudp" port="514")
    

    若缺失,添加后重启rsyslog服务。

  • 验证日志目录权限
    模板指定的/var/log/remote/%HOSTNAME%/路径需存在且rsyslog进程(通常运行用户为syslog或rsyslog)拥有读写权限:

    1. 创建对应主机目录:mkdir -p /var/log/remote/schu-ebd-sw-vt14-11
    2. 设置目录权限:chown -R syslog:syslog /var/log/remote
    3. 调整权限掩码:chmod -R 755 /var/log/remote
  • 确认日志设施与过滤规则匹配
    验证交换机发送的日志确实使用local5设施:

    1. 临时修改rsyslog配置,将local5.*替换为*.*并输出到测试文件:
      *.* /var/log/test_cisco.log
      
      重启服务后查看测试文件是否有日志写入,若有则说明设施匹配存在问题;若仍无,继续排查其他环节。
    2. 抓包解析日志报文:
      tcpdump -vv -i any port 514 -w cisco_log.pcap
      
      用Wireshark打开抓包文件,查看Syslog报文的Facility字段是否为local5(对应数值17)。
  • 查看rsyslog运行日志
    排查rsyslog自身运行报错:

    journalctl -u rsyslog.service -f
    

    或查看系统日志文件(如/var/log/messages、/var/log/syslog),搜索rsyslog相关错误,比如权限不足、模板解析失败等。

  • 验证rsyslog模板变量解析
    确认%HOSTNAME%变量是否正确解析为交换机短主机名:

    1. 临时替换为固定路径测试:
      $template CiscoLogTest, "/var/log/remote/test_cisco.log"
      local5.* -?CiscoLogTest
      
      重启服务后查看测试文件是否有日志写入,若有则说明%HOSTNAME%解析异常。
    2. 检查$PreserveFQDN配置,若设置为on,rsyslog会保留完整域名(如schu-ebd-sw-vt14-11.switch.schu),需调整模板路径或修改$PreserveFQDN off。
  • 排查SELinux或防火墙限制

    1. 临时关闭SELinux测试:setenforce 0,若日志开始写入,需添加SELinux规则:
      semanage fcontext -a -t var_log_t "/var/log/remote(/.*)?"
      restorecon -Rv /var/log/remote
      
    2. 临时关闭防火墙,验证是否存在本地写入拦截。

内容的提问来源于stack exchange,提问作者isacc142

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 00:50:16