Graylog: 使用 TLS 加密将 rsyslog 日志发送到 Graylog

本文件是入门指南指南的一部分。您可以在这里查看完整指南:如何开始使用 Graylog

👋 欢迎查阅 Stackhero 文档

Stackhero 提供全托管的 Graylog cloud 解决方案,专为高效与简便而设计。您可以:

  • 依赖于服务内置的无限制专用 SMTP 邮件服务器
  • 只需一键即可轻松完成更新,无需手动操作。
  • 使用由HTTPS保护的自定义域名(例如 https://logs.your-company.com),为您的团队提供安全、直接的访问。
  • 专属私有基础设施上获得卓越的性能安全性,无共享资源,无干扰邻居。

专注于您的数据,而非工具本身:只需几分钟,即可开始使用 Stackhero 的 Graylog cloud hosting 解决方案。

如果您有 rsyslog 客户端,并希望安全地将日志发送到 Graylog,请按照以下步骤操作:

请勿在 Graylog 的输入上启用任何 TLS 选项。TLS 将由您实例上的反向代理直接管理,Graylog 本身无需处理。

  1. 在 Stackhero 控制台的 Graylog 服务配置中,为 Syslog TCP 端口 514 启用“TLS 加密”。

  2. 按如下方式更新您的 rsyslog 配置。请将 <XXXXXX>.stackhero-network.com 替换为您的实例主机名:

    # 定义 TLS CA 证书
    global(
      DefaultNetstreamDriver="gtls"
      DefaultNetstreamDriverCAFile="/etc/ssl/certs/ca-certificates.crt"
    )
    
    # 将所有日志发送到远程服务器
    # 此操作会创建一个磁盘队列。如果远程主机不可用,消息会先缓存在磁盘,待主机恢复后再发送
    # 参考 https://www.rsyslog.com/doc/v8-stable/configuration/actions.html
    # 以及 https://www.rsyslog.com/doc/v8-stable/configuration/modules/omfwd.html
    *.* action(
      type="omfwd"
      target="<XXXXXX>.stackhero-network.com"
      port="514"
      protocol="tcp"
      KeepAlive="on"
      KeepAlive.Interval="30"
      StreamDriver="gtls"
      StreamDriverMode="1"
      StreamDriverAuthMode="x509/name"
      ResendLastMSGOnReconnect="on"
      queue.filename="fwdRule1"  # spool 文件的唯一前缀
      queue.type="LinkedList"
      queue.maxDiskSpace="256m"
      queue.saveOnShutdown="on"
      action.resumeRetryCount="-1"
      action.resumeInterval="30"
    )
    
  3. 重启您的 rsyslog 服务,并通过以下命令发送一条日志以验证配置:

    logger This is a test
    

配置完成。您现在已通过 TLS 加密安全地将日志发送到 Graylog!