【问题标题】:Can logstash's Google Cloud Storage output plugin do persistent transmission after restart machine?重启机器后logstash的谷歌云存储输出插件可以做持久传输吗?
【发布时间】:2021-04-10 18:14:26
【问题描述】:

将此配置用于logstash 的输出。它使用/tmp/logstash-gcs 作为本地文件夹。当文件变为 1024 kbytes 时发送到 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
  }
}

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

【问题讨论】:

  • 您的意见是什么?如果您重新启动 logstash 机器,您可能会在服务中断时丢失数据,具体取决于您的输入。
  • 我添加了输入。这是文件节拍。
  • Filebeat 跟踪它发送到 logstash 的最后一行,如果 logstash 失败,它将继续重试,直到 logstash 恢复并且logstash 将开始输出这些事件,因此您不应期望任何数据丢失。跨度>
  • 我在 kubernetes 上部署了一个 logstash 服务。它使用 PVC 将 /tmp/logstash-gcs 路径挂载到存储。 pod重启后,可以找到文件,但还没有上传到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秒,还是没有上传。大小在1024kb以下,正常吗?什么时候可以上传?
  • 我不使用此输出,但查看documentation,您在改进列表中有此信息:“没有恢复方法,因此如果logstash/plugin 崩溃,文件可能不会上传到GCS。”也许重启时也会发生这种情况。

标签: google-cloud-storage logstash instance publish-subscribe data-persistence


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 2018-04-02
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多