Установите временную метку сообщения в logstash на основе JMSActiveMQBrokerInTime - PullRequest
0 голосов
/ 24 октября 2019

В настоящее время наш logstash настроен на использование JMSTimestamp в качестве @timestamp.

jms {
     use_jms_timestamp => true

Но это вызывает проблемы, когда сообщения отправляются с нескольких серверов. Если часы не синхронизированы, порядок сообщений неправильный.

Документы говорят, что есть свойство JMSActiveMQBrokerInTime, которое содержит метку времени (в миллисекундах), когда сообщение поступило в брокер.

Когда япереключите конфигурацию плагина jms, чтобы не использовать JMSTimestamp, тогда @timestamp устанавливается в зависимости от времени, когда logstash выбрал сообщение из очереди. Это даст мне порядок, но времена будут выключены, когда, например, logstash остановлен на несколько минут.

Как я могу использовать JMSActiveMQBrokerInTime как @timestamp?

Я использую локальный экземплярlogstash с этой конфигурацией

input {

jms {
     include_header => true
     include_properties => true
     include_body => true
     interval => 10
     use_jms_timestamp => false
     destination => "local-logstash-input"
     yaml_file => "c:\dev\elk\tests\local_jmsMQ.yml"
     yaml_section => "activemq"
 }
}

output {
  stdout {
      codec => json
  }
}

, и я не вижу это свойство в выводе.

...