使用logstash分析日志行

问题描述 投票:0回答:1

嗨,我想实现 els stack 以便更好地查看日志,因此我将logstash添加到已经存在的 ealsticsearch 和 kibana 中,日志采用使用 serilog 的 .net 应用程序生成的文件形式(我知道我可以使用 serilog sink 来直接添加到elasticsearch)。

所以我有一个像这样的logstash配置:

input 
{
    file 
    {
        mode => "tail"
        path => "/usr/share/logstash/ingest_data/*"
    }
}

filter {
}

output 
{
    elasticsearch 
    {
        index => "logstash-%{+YYYY.MM.dd}"
        hosts=> "${ELASTIC_HOSTS}"
        user=> "${ELASTIC_USER}"
        password=> "${ELASTIC_PASSWORD}"
        cacert=> "certs/ca/ca.crt"
    }
}

但我有一个简单的日志行:

2023-08-17 10:10:47.253 +02:00 [警告] [应用程序] 记录的消息

现在我在数据视图中看到他看到时间戳源和其他一些默认标签,但是是否有可能以这样的方式定义过滤器,他添加信息lvl如[警告]和源作为[应用程序]?

elasticsearch logstash
1个回答
0
投票

您可以使用Grok 过滤器。您可以在此处找到已定义的模式。

2023-08-17 10:10:47.253 +02:00 [Warning] [Application] Logged message

可以用

来解析
%{DATESTAMP:time} %{ISO8601_TIMEZONE:timezone} [%{WORD:level}] [%{WORD:source}] %{GREEDYDATA:logMessage}

语法为

%{PATTERN_NAME:fieldName}

© www.soinside.com 2019 - 2024. All rights reserved.