Я довольно новичок в 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, поэтому удалить их невозможно. Я обнаружил, что здесь много информации, есть ли способ «спрятать» их?