温馨提示×

centos syslog如何兼容其他系统

小樊
42
2025-12-27 07:08:22
栏目: 编程语言

CentOS Syslog 兼容其他系统的实践指南

一 总体思路与网络协议

  • rsyslog 为中心,启用 UDP/TCP 514 监听,作为日志汇聚点;其他系统(Linux、网络设备、Windows 等)将日志按 RFC3164RFC5424 发送到该服务器。
  • 在 rsyslog 上按 设施 facility / 严重性 severity 分流到不同文件或远程系统,必要时使用模板统一格式与路径。
  • 典型动作语法:本地文件(如 /var/log/messages)、远程转发(@ 表示 UDP,@@ 表示 TCP,端口 514)、或管道到程序。以上做法覆盖大多数系统与设备的通用兼容路径。

二 在 CentOS 上启用接收与转发

  • 安装与启用服务
    • 安装:sudo yum install rsyslog
    • 启动与开机自启:sudo systemctl enable --now rsyslog
  • 启用网络接收(两种语法择一,建议同时启用 TCP+UDP)
    • 新式(推荐):
      module(load="imudp")
      input(type="imudp" port="514")
      module(load="imtcp")
      input(type="imtcp" port="514")
      
    • 旧式(兼容老版本):
      $ModLoad imudp
      $UDPServerRun 514
      $ModLoad imtcp
      $InputTCPServerRun 514
      
  • 转发到上游 Syslog(示例为 UDP)
    *.* @192.0.2.10:514
    
  • 防火墙放行
    sudo firewall-cmd --permanent --add-port=514/udp
    sudo firewall-cmd --permanent --add-port=514/tcp
    sudo firewall-cmd --reload
    
  • 验证
    logger "This is a test from $(hostname)"
    tail -f /var/log/messages
    

以上步骤覆盖服务端接收与转发的核心配置与验证方法。

三 客户端与多系统对接要点

  • Linux 客户端
    • 编辑 /etc/rsyslog.conf/etc/rsyslog.d/50-default.conf,添加:
      *.* @syslog.example.com:514    # UDP
      *.* @@syslog.example.com:514   # TCP
      
    • 重启:sudo systemctl restart rsyslog
  • Windows 客户端
    • 使用 evtsys 将 Windows 事件日志转为 Syslog(UDP 514):
      • 将 evtsys.exe 放入 C:\Windows\System32
      • 管理员命令行:
        evtsys.exe -i -s 5 -h 192.0.2.10
        net start evtsys
        
  • 网络设备(路由器/交换机/防火墙等)
    • 典型配置(示例为 Cisco):
      logging host 192.0.2.10 transport udp port 514
      logging facility local7
      logging trap informational
      
  • 应用与文件日志
    • 使用 imfile 监控业务日志文件并转发:
      module(load="imfile")
      input(type="imfile"
            File="/var/log/myapp.log"
            Tag="myapp"
            StateFile="stat-myapp"
            Severity="info"
            Facility="local0")
      local0.* @@192.0.2.10:514
      

以上覆盖 Linux、Windows 与网络设备的常见对接方式,以及文件日志的采集转发。

四 兼容性与格式处理

  • 协议与端口
    • 同时开放 UDP/TCP 514,优先使用 TCP 提升可靠性;旧设备仅支持 UDP 时保持 UDP 可用。
  • 消息格式
    • 传统 RFC3164(旧式 BSD 格式)与 RFC5424(结构化,含版本/时间/主机/应用/msgid/结构化数据)并存;rsyslog 可同时处理,必要时在上游统一为 RFC5424 便于解析。
  • 模板与路径隔离
    • 为远程日志建立按主机/程序的目录结构,避免与本地日志混杂:
      $template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
      *.* ?RemoteLogs
      & ~
      
    • 如需按 IP 归档:
      $template IpTemplate,"/var/log/remote/%FROMHOST-IP%.log"
      *.* ?IpTemplate
      & ~
      
  • 过滤与分流
    • 基于设施/级别分流(示例:认证相关单独归档,其他信息类排除邮件、认证、计划任务):
      authpriv.*    /var/log/auth.log
      *.info;mail.none;authpriv.none;cron.none /var/log/messages
      
  • 安全与合规
    • 仅在内网开放 514;必要时启用 TLS 传输(rsyslog 支持 TLS/SSL 加密转发);对敏感日志设置合适的权限与保留策略。

0