Анализ данных журнала через фильтр grok (logsta sh) - PullRequest
1 голос
/ 06 апреля 2020

Я довольно новичок в ELK, и я пытаюсь проанализировать мои журналы через logsta sh. Журналы отправляются с помощью filebeat.

Журналы выглядят так:

2019.12.02 16:21:54.330536 [ 1 ] {} <Information> Application: starting up
2020.03.21 13:14:54.941405 [ 28 ] {xxx23xx-xxx23xx-4f0e-a3c6-rge3gu1} <Debug> executeQuery: (from [::ffff:192.0.0.0]:9999) blahblahblah
2020.03.21 13:14:54.941469 [ 28 ] {xxx23xx-xxx23xx-4f0e-a3c6-rge3gu0} <Error> executeQuery: Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 1

Моя конфигурация по умолчанию logsta sh:

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}

В моем примере журнала я извлекаю поля типа этого: timestamp code pipeId logLevel. Сообщение программы.

Но у меня есть несколько проблем с моим шаблоном grok. Во-первых, отметка времени в журнале сильно отличается от отметки времени classi c. Как я могу узнать это? У меня также есть проблемы, когда {} может быть пустым или нет. Не могли бы вы дать мне несколько советов о том, какой должен быть правильный шаблон grok, пожалуйста?

Кроме того, в Кибане у меня МНОГО информации, такой как имя хоста, детали операционной системы, данные агента, источник и т. Д. c. Я читал, что эти поля являются метаданными ES, поэтому удалить их невозможно. Я обнаружил, что здесь много информации, есть ли способ «спрятать» их?

...