如何从 Logstash 中的文档字段中提取服务名称

How to extract service name from document field in Logstash

我卡在 ELK-Stack 配置的中间,任何线索都将不胜感激。

案例研究: 我能够看到日志(在没有任何过滤器的情况下通过 logstash 解析)但我想在解析日志时应用过滤器。 例如: system.process.cmdline: "C:\example1\example.exe" -显示名称 "example.run" -服务名称 "example.run"

我可以在 kibana 仪表板中看到上述日志,但我只需要 -servicename 键值。 Kibana 中的预期输出,其中服务名称是索引,example.run 将是关联值。

我是ELK.So的新手,请帮帮我...

我的环境: 弹性搜索- 6.6 基巴纳 - 6.6 Logstash- 6.6 Filebeat- 6.6 Metricbeat- 6.6 来自- Windows 服务器 2016

的日志
input {
 beats {
        port => "5044"
    }
}
filter {
    grok{
        match =>{"message" => "%{NOSPACE:hostname} "}
    }
}
output {
   file {
     path => "/var/log/logstash/out.log"
  }
}

我试过上面的 logstash 管道。但我没有成功获得所需的结果。假设我必须在过滤器中添加更多行但不知道具体是什么。

在你的过滤器中使用这个:

grok{
       match => { "message" => "%{GREEDYDATA:ignore}-servicename \"%{DATA:serviceName}\"" }
} 

您的服务名称现在应该在 serviceName 键中