У нас есть приложение с event log
, наше приложение отправляет event log
на Kafka
с JSON format
. наш topic
в Кафке has one partition
, потому что нам нужно прочитать order message
, также мы используем Logstash
для потребления event log
и конвертируем JSON
формат в GELF
формат, а затем отправляем в Graylog
. наша проблема заключается в том, что topi c имеет раздел, но потребитель (Logstash)
не читает сообщения по порядку, и наш заказ нарушается. мы используем
stdout{ codec => rubydebug }
в выходных данных Logstash
config, и этот журнал Logstash
подтверждает проблему. Естественно, у нас нет событий в GaryLag по порядку. Почему заказ испорчен. Проблемы с Кафкой или Logstash
или Graylog
или ...?
спасибо.
ОБНОВЛЕНИЕ
logsta sh config:
input {
kafka {
bootstrap_servers => "kafka1:9092,kafka2:9092,kafka3:9092"
group_id => "MyTopicReader"
topics => "MyTopic"
consumer_threads => 1
enable_metric => "false"
auto_offset_reset => "latest"
}
}
filter {
json {
source => "message"
}
}
output {
gelf {
host => "ip-graylog"
port => 12201
sender => "ip-logstash"
}
stdout{ codec => rubydebug }
}
Конфигурация трубопровода pipelines.yml
:
- pipeline.id: main
path.config: "/etc/logstash/conf.d/*.conf"
Параметры конвейера в logstash.yml
pipeline.id: main
pipeline.workers: 2
pipeline.batch.size: 125
pipeline.batch.delay: 50