重启机器后,logstash 的 Google Cloud Storage 输出插件可以进行持久传输吗?

问题描述

将此配置用于 logstash 的输出。它使用 /tmp/logstash-gcs 作为本地文件夹。当文件变成 1024 KB 时发送到 GCS。

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
  }
}

重新启动机器后,是否可以继续执行作业计划而不会丢失任何数据? 是否有队列功能可以作为发布/订阅进行管理?

解决方法

关于解决方案,有两种方法。

  • 使用 filebeat 再次击败那些 tmp 文件。
  • 设置宽限期秒数以确保当机器停机时,logstash 有足够的时间发送最后一个任务。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...