Logstash 模块
编辑Logstash 模块
编辑logstash
模块解析 Logstash 普通日志和慢日志,它支持纯文本格式和 JSON 格式。
运行模块时,它会在后台执行一些任务
- 设置日志文件的默认路径(但不用担心,您可以覆盖默认值)
- 确保每个多行日志事件都被发送为单个事件
- 使用 Elasticsearch Ingest Pipeline 解析和处理日志行,将数据塑造成适合在 Kibana 中可视化的结构
- 部署用于可视化日志数据的仪表板
阅读 快速入门,了解如何配置和运行模块。
logstash
模块有两个文件集
log
文件集收集并解析 Logstash 写入磁盘的日志。slowlog
文件集解析 logstash 慢日志。
对于 slowlog
文件集,请确保配置 Logstash 慢日志选项。
兼容性
编辑Logstash log
文件集已通过 Logstash 5.6 和 6.0 的日志测试。
Logstash slowlog
文件集已通过 Logstash 5.6 和 6.0 的日志测试
配置模块
编辑您可以通过在 modules.d/logstash.yml
文件中指定 变量设置 或覆盖命令行中的设置来进一步优化 logstash
模块的行为。
您必须在模块中启用至少一个文件集。文件集默认情况下是禁用的。
以下示例显示如何在 modules.d/logstash.yml
文件中设置路径以覆盖 Logstash 日志的默认路径。
- module: logstash log: enabled: true var.paths: ["/path/to/log/logstash.log*"] slowlog: enabled: true var.paths: ["/path/to/log/logstash-slowlog.log*"]
要在命令行中指定相同的设置,您可以使用
-M "logstash.log.var.paths=[/path/to/log/logstash/logstash-server.log*]" -M "logstash.slowlog.var.paths=[/path/to/log/logstash/logstash-slowlog.log*]"
变量设置
编辑每个文件集都有单独的变量设置来配置模块的行为。如果您没有指定变量设置,logstash
模块将使用默认值。
对于高级用例,您还可以覆盖输入设置。请参阅 覆盖输入设置。
在命令行中指定设置时,请记住在设置前添加模块名称前缀,例如 logstash.log.var.paths
而不是 log.var.paths
。
log
文件集设置
编辑-
var.paths
- 指定查找日志文件位置的基于 glob 的路径数组。Go Glob 支持的所有模式在此处也受支持。例如,您可以使用通配符从预定义级别的子目录中获取所有文件:
/path/to/log/*/*.log
。这将获取/path/to/log
子文件夹中的所有.log
文件。它不会获取/path/to/log
文件夹本身的日志文件。如果此设置为空,Filebeat 将根据您的操作系统选择日志路径。
slowlog
文件集设置
编辑-
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
字段覆盖为原始时区。
有关在配置中指定处理器的信息,请参阅 处理器。
示例仪表板
编辑此模块附带两个示例仪表板。
已知问题
编辑当使用 log
文件集解析纯文本日志时,如果多行纯文本日志包含嵌入式 JSON 对象(该 JSON 对象在新行开头),则文件集可能无法正确解析多行纯文本日志事件。
字段
编辑有关模块中每个字段的说明,请参阅 导出字段 部分。