问题描述
将此配置用于 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 有足够的时间发送最后一个任务。