HAproxy 模块编辑

haproxy 模块从 (haproxy) 进程收集和解析日志。

运行模块时,它会在后台执行一些任务

  • 设置日志文件的默认路径(但别担心,您可以覆盖默认值)
  • 确保每个多行日志事件都作为单个事件发送
  • 使用 Elasticsearch 摄取管道解析和处理日志行,将数据整形为适合在 Kibana 中可视化的结构
  • 部署用于可视化日志数据的仪表板

阅读 快速入门 以了解如何配置和运行模块。

兼容性编辑

haproxy 模块已使用在 AWS Linux 上作为微服务集群网关运行的 haproxy 的日志进行了测试。

该模块还在 Debian 上运行的 HAProxy 1.8、1.9 和 2.0 上进行了测试。

此模块不适用于 Windows。

配置模块编辑

您可以通过在 modules.d/haproxy.yml 文件中指定 变量设置 或在命令行覆盖设置,进一步优化 haproxy 模块的行为。

您必须在模块中至少启用一个文件集。 默认情况下禁用文件集。

默认情况下,该模块配置为通过端口 9001 上的 syslog 运行。但是,它也可以配置为从文件路径读取。 请参阅以下示例。

- module: haproxy
  log:
    enabled: true
    var.paths: ["/var/log/haproxy.log"]
    var.input: "file"

变量设置编辑

每个文件集都有单独的变量设置,用于配置模块的行为。 如果您未指定变量设置,则 haproxy 模块将使用默认值。

对于高级用例,您还可以覆盖输入设置。 请参阅 覆盖输入设置

在命令行指定设置时,请记住在设置前加上模块名称,例如,haproxy.log.var.paths 而不是 log.var.paths

log 文件集设置编辑

var.paths
一个基于 glob 的路径数组,用于指定在何处查找日志文件。此处也支持 Go Glob 支持的所有模式。例如,您可以使用通配符从预定义级别的子目录中获取所有文件:/path/to/log/*/*.log。这将从 /path/to/log 的子文件夹中获取所有 .log 文件。它不会从 /path/to/log 文件夹本身获取日志文件。如果此设置为空,Filebeat 将根据您的操作系统选择日志路径。

时区支持编辑

此模块解析不包含时区信息的日志。对于这些日志,Filebeat 读取本地时区,并在解析时使用它将时间戳转换为 UTC。用于解析的时区包含在 event.timezone 字段的事件中。

要禁用此转换,可以使用 drop_fields 处理器删除 event.timezone 字段。

如果日志来自与本地时区不同的系统或应用程序,则可以使用 add_fields 处理器用原始时区覆盖 event.timezone 字段。

有关在配置中指定处理器的更多信息,请参阅 处理器

示例仪表板编辑

此模块附带一个示例仪表板,显示地理位置、后端和前端之间的请求分布以及随时间推移的状态代码。 例如

kibana haproxy overview

字段编辑

有关模块中每个字段的描述,请参阅 导出字段 部分。