与KV过滤器一起添加Prune过滤器后-日志将不会进入弹性搜索

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

我正在学习ELK,并试图作为我的项目的POC。我正在为项目中的示例集成日志应用KV过滤器,结果可能会出现很多额外的字段,因此我尝试应用修剪过滤器并将某些字段列入白名单。我可以看到在logstash服务器中打印了日志,但是日志不会进行弹性搜索。如果我删除过滤器,它将进入弹性搜索。请建议如何进一步调试此问题。

filter {
    kv {
            field_split => "{},?\[\]"
            transform_key => "capitalize"
            transform_value => "capitalize"
            trim_key => "\s"
            trim_value => "\s"
            include_brackets => false   
        }
    prune
    {
        whitelist_names => [ "App_version", "Correlation_id", "Env", "Flow_name", "host", "Instance_id", "log_level","log_thread", "log_timestamp", "message", "patient_id", "status_code", "type", "detail"]
    }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "mule-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
  stdout { codec => rubydebug }
}

我还需要两个建议,

我还试图在初始日志中使用grok过滤器,并尝试从样本日志中获取日志级别字段(时间和日志类型),并将其余日志发送到KV过滤器。有什么参考请分享。这就是我尝试过的。但得到_grokparsefailure。我已将msgbody通过source选项传递给kv过滤器。

grok {
        match => { "message" => "%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:loglevel}\s+%{GREEDYDATA:msgbody}"}
        overwrite => [ "msgbody" ]
    }

我在示例日志中具有消息字段,如下所示。当数据发送到Kibana时,我可以看到两个消息字段标签,一个是完整日志,另一个是正确的消息(突出显示)。变异会在这种情况下起作用吗?有什么办法可以将完整的日志名称更改为其他名称?

[[2020-02-10 11:20:07.172]信息Mule.api [[MuleRuntime] .cpuLight.04:[main-api-test] .api-main.CPU_LITE @ 256c5cf5:[main-api-test] .main-api-main / processors / 0 / processors / 0.CPU_LITE@ 378f34b0]:事件:00000003 {app_name = main-api-main,app_version = v1,env =测试,时间戳= 2020-02-10T11:20:07.172Z,log = {correlation_id = 00000003,Patient_id = 12345678,instance_id =医院,消息=系统API的启动,flow_name = main-api-main}}

我正在学习ELK,并试图作为我的项目的POC。我正在为我的项目中的示例集成日志应用KV过滤器,结果看到了很多额外的字段,因此我有...

elasticsearch logstash elastic-stack logstash-grok elk
1个回答
0
投票

修剪过滤器错误

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