安全性

Fluent Bit 提供了对传输层安全(TLS)及安全套接字层(SSL)的集成支持。在本节中,我们仅将两种实现都称为 TLS。

每个需要执行网络 I/O 的输出插件都可以选择启用 TLS 并配置其行为。下表描述了可用的属性:

Each output plugin that requires to perform Network I/O can optionally enable TLS and configure the behavior. The following table describes the properties available:

属性 描述 默认值
tls 是否启用 TLS Off
tls.verify 强制证书验证 On
tls.debug 设置 TLS 调试级别。它接受如下值: 0(No debug), 1 (Error), 2 (State change), 3 (Informational), 4 Verbose 1
tls.ca_file CA 证书文件的绝对路径
tls.ca_path 扫描 CA 证书文件的绝对路径
tls.crt_file 证书文件的绝对路径
tls.key_file 私钥文件的绝对路径
tls.key_passwd 私钥文件的可选密码
tls.vhost 用于 TLS SNI 的主机名

可以在配置文件中启用上表列出的属性,特别是在每个输出插件部分,或者直接通过命令行启用。

以下输出插件可以使用 TLS 功能:

此外,另一些插件实现了部分支持 TLS,这意味着包含受限制的配置。

示例: 在 HTTP 输出插件上启用 TLS

默认情况下,HTTP 输出插件使用普通的 TCP,可以通过以下命令从命令行启用 TLS:

  1. $ fluent-bit -i cpu -t cpu -o http://192.168.2.3:80/something \
  2. -p tls=on \
  3. -p tls.verify=off \
  4. -m '*'

在如上示例的命令行参数中,启用了 tlstls.verify 两个属性(强烈建议始终将是否验证保持为 ON)。

使用如下配置文件可以实现相同的效果:

  1. [INPUT]
  2. Name cpu
  3. Tag cpu
  4. [OUTPUT]
  5. Name http
  6. Match *
  7. Host 192.168.2.3
  8. Port 80
  9. URI /something
  10. tls On
  11. tls.verify Off

技巧和窍门

使用 TLS 连接到虚拟服务器

Fluent Bit 支持 TLS 服务名称指示。如果您在单个 IP 地址(也称为虚拟主机)上提供多个主机名,则可以使用 tls.vhost 连接到指定的主机名。

  1. [INPUT]
  2. Name cpu
  3. Tag cpu
  4. [OUTPUT]
  5. Name forward
  6. Match *
  7. Host 192.168.10.100
  8. Port 24224
  9. tls On
  10. tls.verify On
  11. tls.ca_file /etc/certs/fluent.crt
  12. tls.vhost fluent.example.com