gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 22:59:07 25 4
gpt4 key购买 nike

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

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

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

在理想的世界中,我希望能够根据输入的multiline应用不同的type编解码器。

我努力了

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

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

我也尝试过使用 multiline过滤器插件,但结果是

"Couldn't find any filter plugin named 'multiline'. Are you sure this is correct? Trying to load the multiline filter plugin resulted in this error: LoadError"



是否有人对如何进行这项工作有任何想法?

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

pipeline.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,这解决了我的问题:)

关于elasticsearch - Logstash Beats Input-多个多行编解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41045223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com