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

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

👋 欢迎阅读 Stackhero 文档!

Stackhero 提供现成的 Graylog 云 解决方案,具有众多优势,包括:

  • 包含无限制和专用的 SMTP 电子邮件服务器
  • 只需点击即可轻松完成更新
  • 使用 HTTPS 保护的可定制域名(例如,https://logs.your-company.com)。
  • 专用私有 VM提供的最佳性能和强大安全性

节省时间简化您的生活:只需 5 分钟即可试用 Stackhero 的 Graylog 云托管 解决方案!

如果您有 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!