Как извлечь имя сервиса из поля документа в Logstash - PullRequest
0 голосов
/ 02 июля 2019

Я застрял в середине конфигурации стека ELK, любой вывод будет высоко оценен.

Case Study: Я могу видеть журналы (проанализированные через logstash без какого-либо фильтра), но я хочу применить фильтр при анализе журналов. Например: system.process.cmdline: "C: \ example1 \ example.exe" -displayname "example.run" -servicename "example.run"

Я вижу вышеупомянутые журналы на панели управления kibana, но мне нужны только ключи -servicename, значение. Ожидаемый вывод в Kibana, где servicename является индексом, а example.run будет ассоциированным значением.

  • имя_службы "example.run"

Я новичок в ELK. Так что, пожалуйста, помогите мне ...

Моя среда: Elasticsearch- 6,6 Кибана- 6,6 Logstash- 6,6 Filebeat- 6,6 Метрика - 6,6 Логи приходят с Windows server 2016

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

Я пробовал использовать вышеуказанный конвейер logstash. Но мне не удалось получить требуемый результат. Предполагая, что мне нужно добавить больше строк в фильтр, но я не знаю, что именно.

1 Ответ

0 голосов
/ 02 июля 2019

используйте это в вашем фильтре:

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

имя вашей службы должно быть теперь в ключе serviceName

...