В настоящее время у нас есть logstash со следующей конфигурацией:
input {
rabbitmq {
id => "xxxxxxxxxxxx"
host => "xxx.xxx.xxx.xxx"
exchange => "xxxxxx_xxxxxxx_xxxxx"
key => "xxxxxx_xxxxxxx_xxxxx"
queue => "xxxxxx_xxxxxxx_xxxxx"
user => "shipper"
password => "xxxxxxxxxxxxx"
durable => true
type => "xxxxxx_xxxxxxx_xxxxx"
threads => 1
prefetch_count => 100
connection_timeout => 10000
vhost => "vhost_xxxxxxxx"
}
}
output {
elasticsearch {
hosts => ["xxx.xxx.xxx.xxx:9200","xxx.xxx.xxx.xxx:9200","xxx.xxx.xxx.xxx:9200"]
index => "xxxxxx_xxxxxxx_xxxxx"
document_type => "xxxxxx_xxxxxxx_xxxxx"
timeout => 30000
}
elasticsearch {
hosts => ["load_balanced_host:80"]
index => "xxxxxx_xxxxxxx_xxxxx"
document_type => "xxxxxx_xxxxxxx_xxxxx"
timeout => 30000
}
}
Первый выход (тот, который имеет 3 ip) - это новый кластер (куда мы хотим перейти).Второй - кластер с балансировкой нагрузки, предоставляемый сервисом amazonasticsearch.У них одинаковые сопоставления.Они оба в одной и той же версии (2.3).
Проблема в том, что новый кластер теряет сообщения (или они не доставляются, idk).Давайте возьмем такой сценарий, например:
1 - MSG_A, MSG_B and MSG_C arrives in the rabbitMq;
2 - Logstash processes MSG_A, MSG_B and MSG_C;
3 - Logstash logs shows nothing anormal;
4 - Checking the old elasticsearch cluster all the messages are there (MSG_A, MSG_B and MSG_C);
5 - Checking the new elasticsearch cluster there's messages missing.
Кто-нибудь знает, где я могу начать расследование или почему это происходит?
Спасибо!
Пытался изменить порядок вывода(новый кластер сначала / старый кластер после и старый кластер сначала / новый кластер после) и ничего не изменилось - все еще теряются сообщения в новом кластере.