Почему ElasticSearch иногда не показывает последний журнал, отправленный Logstash?

#elasticsearch #logstash #kibana

#elasticsearch #logstash #kibana

Вопрос:

Мой Logstash отправляет журнал в ElasticSearch, в выходном файле Logstash я вижу, что отправляются новые журналы, но они не отображаются при нажатии обновить на странице обнаружения Kibana. На странице Discover отображаются журналы ~ 1 часовой давности.

Что могло вызвать эту проблему? Есть ли какой-либо способ проверить, есть ли запись в ElasticSearch, а не с помощью Kibana?

Временная метка в моем файле журнала выглядит следующим образом: [2020-09-02 13:53:07,392Z]

Вот конвейер.yml, который использует мой logstash:

 input {
    #stdin {}
    beats {
        port => "5055"
    }
    # file {
}
filter {
    grok {
        patterns_dir => "C:logstash-7.4.2patterns"
        match => { "message" => "^[%{TIMESTAMP_ISO8601:timestamp}][%{LOGLEVEL:level}][%{Thread:thread}][%{JAVACLASS:class}]([d*])? %{GREEDYDATA:msg}" }
   }
   if "_grokparsefailure" in [tags] {
       drop{}
   }
}
output {
    file {
        path => "C:logstash-7.4.2logstash_output.txt"
    }
    elasticsearch {
        hosts => [ "localhost:9200" ]
        index => "ts_services-%{ YYYY.MM.dd}"
    }
}
  

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

Комментарии:

1. Вероятно, это проблема с меткой времени. Kibana интерпретирует временную метку в часовом поясе браузера, поэтому, если в ваших журналах нет часового пояса в конце, они могут отображаться некорректно. Можете ли вы показать, как выглядят временные метки в вашем файле журнала, а также вашу конфигурацию Logstash?

2. Это также может быть проблемой с соглашением об именовании Logstash по сравнению с тем, как псевдонимы используются в вашем logstash / Kibana. Не могли бы вы также добавить настройки индекса?

3. @Val Я добавил формат временной метки и конфигурацию Logstash к своему вопросу.

4. Настройка индекса @Jaycreation в yml-файле Logstash теперь в моем вопросе.

5. Только что обнаружил, что шаблон индекса по умолчанию, определенный в Kibana, имеет месяц 08: someservice-2020.08 *. После удаления «08» последний журнал отображается в Kibana. Спасибо @Jaycreation.

Ответ №1:

Следить за обсуждением в комментариях. Проблема здесь очень распространенная.

Шаблон индекса в Kibana был специфичным:

 ts_services-2020-08*
  

Таким образом, данные за сентябрь игнорируются Kibana, даже если они есть в Elasticsearch.

Изменение шаблона индекса Kibana устранит проблему:

 ts_services*
  

Но вам придется исправить все пользовательские визуализации.