Сортировка журналов по метке времени в Kibana

Временные метки не совпадают У меня есть и запущен экземпляр ELK (Elasticsearch, Logstash и Kibana) и Filebeat отправляет журналы с других машин, и я заметил, что журналы отображаются в Kibana в другом порядке, в котором они прибыли на сервер (как вы можете видеть на прилагаемом рисунке), например, это то, что показано в Kibana, второй столбец - это временная метка кибаны, а третий столбец - это временная метка сервера:

February 9th 2017, 11:53:11.714 11:53:04,904
February 9th 2017, 11:53:11.714 11:53:05,579
February 9th 2017, 11:53:11.714 11:53:05,581
February 9th 2017, 11:53:11.714 11:53:05,591
February 9th 2017, 11:53:11.714 11:53:04,441
February 9th 2017, 11:53:11.714 11:53:05,589

Что я вижу в файле журнала:

11:53:04,441
11:53:04,904
11:53:05,579
11:53:05,581
11:53:05,589
11:53:05,591

Есть ли возможность просматривать журналы в Kibana в том же порядке, в котором они отображаются на сервере? Я искал его, но не нашел ни одного вопроса, относящегося к этой теме, но я увидел, что это могло быть изменение файла конфигурации Logstash 10-syslog-filter.conf, это мой:

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

Заранее спасибо.


person kendrick john    schedule 09.02.2017    source источник


Ответы (1)


Я думаю, это потому, что вы не указали timestamp, на котором должны отображаться события в Kibana, когда вы создаете index в Kibana. Вы можете сделать что-то вроде этого:

mutate {
    add_field => { "received_time" => "%{syslog_timestamp}" }
    remove_field => ["syslog_timestamp"] <-- since you'll be using the recieved_time field here after
}
date {
    match => [ "received_time", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss"]
    target => "received_time"
    locale => "en"
    timezone => "UTC"
}

Это всего лишь образец, который вы можете воспроизвести. Обратите внимание, что я предполагаю syslog_timestamp в качестве времени вашего сервера, которое вы указали в своем вопросе.

Поэтому, когда вы создаете новый индекс в Kibana, вам будет предложено выбрать имя поля времени, чтобы отфильтровать события. Что делает Kibana, так это то, что он отображает события в зависимости от времени браузера, если вы не выберете его из раскрывающегося списка.

Итак, как только вы обработаете logstash conf, вы сможете увидеть поле полученное_время, которое мы создали в conf, в раскрывающемся списке. Таким образом, вам просто нужно выбрать его из раскрывающегося списка , чтобы Kibana отображал события на основе timestamp вы выбрали. Также убедитесь, что у вас нет проблем с часовым поясом. Если вы используете UTC, измените часовой пояс браузера, выбрав Дополнительные настройки> dateFormat: tz в Kibana. Надеюсь, поможет!

person Kulasangar    schedule 09.02.2017
comment
Я проверил метку времени между сервером ELK и одним из серверов, отправляющих журналы, и они немного разные, может быть проблема? - person kendrick john; 09.02.2017
comment
Какая разница во времени между ними? Это после того, что вы сделали согласно моему ответу? - person Kulasangar; 09.02.2017
comment
около 2 минут - person kendrick john; 09.02.2017
comment
Вы уверены, что сервер ELK работает в UTC? Убедитесь, что он есть у них обоих. - person Kulasangar; 09.02.2017
comment
Все они работают по центральноевропейскому времени - person kendrick john; 09.02.2017
comment
О, тогда вам, возможно, придется изменить часовой пояс в conf на CET и Kibana. Чтобы не было разницы во времени. - person Kulasangar; 09.02.2017
comment
@kendrickjohn, вы можете взглянуть на эту ветку, поскольку часовой пояс Kibana по умолчанию звучит как UTC. Сообщите мне, если это сработает? - person Kulasangar; 09.02.2017
comment
Я внес изменения, но проблема все еще существует, дело в том, что в группе из 10 строк журнала они не отсортированы в Kibana, поэтому я не могу следить за ними. - person kendrick john; 09.02.2017
comment
Я думаю, что часовой пояс Kibana по умолчанию здесь не проблема, это похоже на конфигурацию. - person kendrick john; 09.02.2017
comment
@kendrickjohn, что ты имеешь в виду под несортированным? Вы имеете в виду, что записи на метке времени перемешаны? а эти 10 не в порядке? Получаете ли вы сейчас записи по метке времени в журналах? - person Kulasangar; 09.02.2017
comment
Да, как вы можете видеть в примере в Q. (я обновил его), журналы смешанные, и я не могу следить за трассировкой, хотя Kibana из-за того, что порядок отличается от исходного файла журнала. - person kendrick john; 09.02.2017
comment
Итак, на вашем сервере логи в правильном порядке? Или похоже на то же самое? ' - person Kulasangar; 09.02.2017
comment
Да, они. Я обновил вопрос, и теперь он показывает временную метку файла журнала. Они упорядочены по мере их появления в времени. - person kendrick john; 09.02.2017
comment
В Kibana что, если вы отсортируете результаты по столбцу время? Вы видите это в порядке исправления? Как это - person Kulasangar; 09.02.2017
comment
Он отсортирован, как на вашем изображении, и работает хорошо, но он сортируется в то время, когда Logstash получает журналы, а не в то время, когда журналы создаются. Когда у нас есть много строк журнала в одни и те же секунды (04, 05), куча журналов, которые Filebeat отправляет в Logstash, отправляет за одну секунду все вместе, а Kibana показывает их в несортированном виде. Понятен ли мой вопрос? - person kendrick john; 09.02.2017
comment
Ой хорошо. Однако не работал с filebeat. Не знал, что filebeat был частью этого Q. Извините за это! - person Kulasangar; 09.02.2017
comment
Я прикрепил картинку, более четко объясняющую проблему, на всякий случай, если вы можете помочь, спасибо - person kendrick john; 10.02.2017