Может ли выходной плагин logstash Google Cloud Storage выполнять постоянную передачу после перезагрузки компьютера?

Использование этой конфигурации для вывода logstash. Он использует /tmp/logstash-gcs в качестве локальной папки. Отправить в GCS, когда размер файла станет 1024 кбайт.

input {
  beats {
    port => 5044
  }
}

filter {}

output {
  google_cloud_storage {
    bucket => "gcs-bucket-name"
    json_key_file => "/secrets/service_account/credentials.json"
    temp_directory => "/tmp/logstash-gcs"
    log_file_prefix => "logstash_gcs"
    max_file_size_kbytes => 1024
    output_format => "json"
    date_pattern => "%Y-%m-%dT%H:00"
    flush_interval_secs => 2
    gzip => false
    gzip_content_encoding => false
    uploader_interval_secs => 60
    include_uuid => true
    include_hostname => true
  }
}

После перезапуска машины может ли она непрерывно выполнять расписание заданий без потери данных? Есть ли в нем функция очереди для управления как pub/sub?


comment
Каков ваш вклад? Если вы перезапустите машину logstash, вы можете потерять данные, пока служба не работает, в зависимости от вашего ввода.   -  person leandrojmp    schedule 05.01.2021
comment
Я добавил ввод. Это файлбит.   -  person iooi    schedule 05.01.2021
comment
Filebeat отслеживает, какой была последняя строка, которую он отправил в logstash, если logstash не работает, он будет повторять попытки до тех пор, пока logstash не вернется, и logstash не начнет выводить эти события, поэтому вам не следует ожидать потери данных.   -  person leandrojmp    schedule 05.01.2021
comment
Я развернул сервис logstash на kubernetes. Он использует PVC для подключения пути /tmp/logstash-gcs к хранилищу. После перезапуска пода файл находится там, но еще не загружен в gcs: sh-4.2$ ls -l /tmp/logstash-gcs/, -rw-r--r-- 1 logstash logstash 875 Jan 5 01:45 logstash_gcs_logstash-log-pipeline-0_2021-01-05T01:00.part000.d31cb8f9-2e88-9dff-7acd-1ca258ef7681.log. После ожидания в течение 60 секунд он все еще не был загружен. Размер ниже 1024кб, но это нормально? Когда можно будет загрузить?   -  person iooi    schedule 05.01.2021
comment
Я не использую этот вывод, но смотрю в документация у вас есть эта информация в списке улучшений: нет метода восстановления, поэтому в случае сбоя logstash/плагина файлы могут не загружаться в GCS. Возможно, это происходит и при перезагрузке.   -  person leandrojmp    schedule 05.01.2021
comment
Я проверил это. Теперь ясно. Так что, возможно, лучший способ, чтобы эти файлы можно было загрузить в gcs, нужно снова превзойти их на filebeat. Большое спасибо.   -  person iooi    schedule 05.01.2021
comment
Я так понимаю, вы нашли решение своего вопроса. Было бы здорово, если бы вы могли опубликовать решение в качестве ответа, чтобы другие пользователи могли извлечь выгоду.   -  person marian.vladoi    schedule 05.01.2021


Ответы (1)


Что касается решения, есть 2 способа.

  • Используйте filebeat, чтобы снова обыграть эти файлы tmp.
  • Установите льготный период в секундах, чтобы у logstash было достаточно времени для отправки последней задачи, когда машина не работает.
person iooi    schedule 05.01.2021