Implementing Syslog Centralization With Rsyslog

配置 rsyslog 实现集中式日志收集,支持 TLS 加密、自定义模板和日志轮转。 生成服务端和客户端配置文件,包含 GnuTLS 流驱动、x509 证书认证、 按主机隔离日志存储以及高可用 syslog 基础设施的可靠队列设置。

killvxk c884be5 4 files · 23.1 KB Updated

File contents

使用说明

  1. 安装依赖:pip install jinja2 paramiko
  2. 使用 OpenSSL 为 rsyslog 服务端和客户端生成 TLS 证书。
  3. 运行 Agent 生成 rsyslog 服务端和客户端配置:
    • 服务端:在 6514 端口监听 TLS,按主机目录输出,JSON 格式模板
    • 客户端:使用磁盘辅助队列进行可靠的 TLS 转发
  4. 通过 SSH(paramiko)将配置部署到服务器。
  5. 验证 TLS 连接和日志投递。
python scripts/agent.py --server-ip 10.0.0.1 --clients 10.0.0.10,10.0.0.11 --ca-cert ca.pem --output syslog_report.json

示例

服务端配置(TLS)

module(load="imtcp" StreamDriver.Name="gtls" StreamDriver.Mode="1"
       StreamDriver.Authmode="x509/name")
input(type="imtcp" port="6514")
template(name="PerHostLog" type="string" string="/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log")
*.* ?PerHostLog

客户端配置(可靠转发)

action(type="omfwd" target="10.0.0.1" port="6514" protocol="tcp"
       StreamDriver="gtls" StreamDriverMode="1"
       StreamDriverAuthMode="x509/name"
       queue.type="LinkedList" queue.filename="fwdRule1"
       queue.maxdiskspace="1g" queue.saveonshutdown="on"
       action.resumeRetryCount="-1")

killvxk/cybersecurity-skills-zh/tree/main/skills/implementing-syslog-centralization-with-rsyslog commit c884be5e72

Frequently asked questions

npx skillmds@latest add killvxk/implementing-syslog-centralization-with-rsyslog