Потеря данных при использовании более одного выхода в logstash - PullRequest
0 голосов
/ 25 апреля 2019

В настоящее время у нас есть 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.

Кто-нибудь знает, где я могу начать расследование или почему это происходит?

Спасибо!

Пытался изменить порядок вывода(новый кластер сначала / старый кластер после и старый кластер сначала / новый кластер после) и ничего не изменилось - все еще теряются сообщения в новом кластере.

...