В настоящее время наш 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
}
}
, и я не вижу это свойство в выводе.