繁体   English   中英

Logstash Beats Input - 多个多行编解码器

[英]Logstash Beats Input - multiple multiline codec

我正在尝试发送带有节拍的多种类型的日志并在 logstash 服务器上解析它们。

我已经配置好节拍并正常工作,并且几乎让 logstash 正常工作。

我遇到问题的地方是 other-log.log 的条目以不同的格式字符串开头。

在理想情况下,我希望能够根据条目type应用不同的multiline编解码器。

我努力了

if [type] == "server.log" {
    codec => multiline {
        pattern => "^\d{2}:\d{2}:\d{2},\d+"
        negate => true
        what => "previous"
    }
}

然而,这会导致 logstash 失败,我的猜测是input块中不允许if

我也尝试过使用multiline过滤器插件,但它会导致

“找不到任何名为‘多行’的过滤器插件。你确定这是正确的吗?尝试加载多行过滤器插件导致此错误:LoadError”

有没有人知道如何使这项工作?

文件beat.yml

- input_type: log
  paths:
    - /application/server.log
  document_type: server.log
- input_type: log
  paths:
    - /tmp/other-log.log
  document_type: other.log

管道.conf

input {
    beats {
        host => "0.0.0.0"
        port => "5044"
        codec => multiline {
                pattern => "^\d{2}:\d{2}:\d{2},\d+"
                negate => true
                what => "previous"
        }
    }
}
filter {
    if [type] == "server.log" {
        grok {
            match => { "message" => "(?<date>^\d{2}:\d{2}:\d{2},\d+)\s(?<level>[A-Z]+)\s+\[(?<class>.*?)\]\s+(?<message>(?m).*)" }
            overwrite => ["message"]
            add_tag =>  [ "server.log" ]
        }
    }
}
# The filter part of this file is commented out to indicate that it is
# optional.
# filter {
#
# }
output {
    elasticsearch { hosts => ["localhost:9200"] }
}

我将多行移动到filebeat.yml ,这解决了我的问题:)

将多行移动到 filebeat.yaml 的配置在这里。 我使用以下配置捕获了多行日志。 这是我的 filebeat.yaml 配置:

# ============================== Filebeat inputs ===============================
 filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /var/log/nginx/access.log
        - /var/log/nginx/error.log
      multiline.pattern: '^[[:space:]]' // these
      multiline.negate: false           // three
      multiline.match: after            // lines are important for capturing multiline logs
------------------ Logstash Output -------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]
  index: "my-index-name"

您也可以参考此博客

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM