Google Cloud Storage 输出插件

编辑

Google Cloud Storage 输出插件

编辑
  • 插件版本:v4.5.0
  • 发布日期:2024-09-16
  • 变更日志

有关其他版本,请参阅版本化插件文档

安装

编辑

对于默认未捆绑的插件,可以通过运行 bin/logstash-plugin install logstash-output-google_cloud_storage 轻松安装。有关更多详细信息,请参阅使用插件

获取帮助

编辑

有关插件的问题,请在讨论论坛中开一个主题。对于错误或功能请求,请在Github中开一个 issue。有关 Elastic 支持的插件列表,请查阅Elastic 支持矩阵

描述

编辑

一个将日志事件上传到 Google Cloud Storage (GCS) 的插件,它会根据配置设置中提供的日期模式滚动文件。事件被写入本地文件,一旦文件关闭,此插件会将其上传到配置的存储桶。

有关 Google Cloud Storage 的更多信息,请访问:https://cloud.google.com/products/cloud-storage

为了使用此插件,必须使用 Google 服务帐户。有关更多信息,请参阅:https://developers.google.com/storage/docs/authentication#service_accounts

建议:根据您生成的日志数据量尝试设置,以便上传器可以跟上生成的日志。使用 gzip 输出可以很好地减少上传日志文件时的网络流量,并且可以降低存储成本。

用法

编辑

这是一个 logstash 配置的示例

output {
   google_cloud_storage {
     bucket => "my_bucket"                                     (required)
     json_key_file => "/path/to/privatekey.json"               (optional)
     temp_directory => "/tmp/logstash-gcs"                     (optional)
     log_file_prefix => "logstash_gcs"                         (optional)
     max_file_size_kbytes => 1024                              (optional)
     output_format => "plain"                                  (optional)
     date_pattern => "%Y-%m-%dT%H:00"                          (optional)
     flush_interval_secs => 2                                  (optional)
     gzip => false                                             (optional)
     gzip_content_encoding => false                            (optional)
     uploader_interval_secs => 60                              (optional)
     include_uuid => true                                      (optional)
     include_hostname => true                                  (optional)
   }
}

改进待办事项列表

编辑
  • 支持 logstash 事件变量以确定文件名。
  • 将 Google API 代码转换为插件 Mixin(如 AwsConfig)。
  • 没有恢复方法,因此如果 logstash/插件崩溃,文件可能不会上传到 GCS。
  • 允许用户配置文件名。
  • 允许并行上传以应对更大的负载(+如果 Ruby API 客户端公开,则允许连接配置)

Google_cloud_storage 输出配置选项

编辑

此插件支持以下配置选项,以及稍后描述的通用选项

另请参阅通用选项,了解所有输出插件支持的选项列表。

 

bucket

编辑
  • 这是一个必需的设置。
  • 值类型是string
  • 此设置没有默认值。

GCS 存储桶名称,不带 "gs://" 或任何其他前缀。

date_pattern

编辑
  • 值类型是string
  • 默认值是 "%Y-%m-%dT%H:00"

日志文件的时间模式,默认为每小时文件。必须是 Time.strftime 模式:www.ruby-doc.org/core-2.0/Time.html#method-i-strftime

flush_interval_secs

编辑
  • 值类型是number
  • 默认值是 2

将写入刷新到日志文件的刷新间隔(以秒为单位)。0 将在每条消息上刷新。

gzip

编辑
  • 值类型是boolean
  • 默认值是 false

将事件写入日志文件时压缩输出流,将 Content-Type 设置为 application/gzip 而不是 text/plain,并使用文件后缀 .log.gz 而不是 .log

gzip_content_encoding

编辑

在 3.3.0 中添加。

  • 值类型是boolean
  • 默认值是 false

将事件写入日志文件时压缩输出流并将 Content-Encoding 设置为 gzip。这将以 gzip 格式上传您的文件,从而节省网络和存储成本,但是当您从存储桶中读取它们时,它们将以透明的方式解压缩。

有关更多信息,请参阅 Cloud Storage 文档中的元数据转码

注意:不建议同时使用 gzip_content_encodinggzip。这会两次压缩您的文件,这将增加您机器的工作量,并使文件比仅压缩一次更大。

include_hostname

编辑

在 3.1.0 中添加。

  • 值类型是boolean
  • 默认值是 true

文件名中是否应包含主机名?您可能出于隐私原因或如果您运行 Logstash 的多个实例并且需要将您创建的文件与简单的 glob 匹配(例如,如果您想将文件导入 BigQuery)而关闭此功能。

include_uuid

编辑

在 3.1.0 中添加。

  • 值类型是boolean
  • 默认值是 false

将 UUID 添加到文件名的末尾。如果运行 Logstash 的多个实例,或者您预期节点频繁重启,则可能需要启用此功能,以使文件不会相互覆盖。

json_key_file

编辑
  • 值类型是string
  • 默认值是 nil

如果插件在 Compute Engine、Kubernetes Engine、App Engine 或 Cloud Functions 上运行,则可以使用应用程序默认凭据 (ADC)

在 Google Cloud 之外,您需要通过 Web 界面或使用以下命令创建一个服务帐户 JSON 密钥文件:gcloud iam service-accounts keys create key.json --iam-account [email protected]

key_password

编辑
  • 值类型是string
  • 默认值是 "notasecret"

已弃用此功能不再使用,该设置现在是json_key_file的一部分。

log_file_prefix

编辑
  • 值类型是string
  • 默认值是 "logstash_gcs"

日志文件前缀。日志文件将遵循以下格式:<前缀>_hostname_date<.part?>.log

max_concurrent_uploads

编辑
  • 值类型是number
  • 默认值是 5

设置同时上传到 Cloud Storage 的最大并发数。上传是 I/O 绑定的,因此根据可用的网络带宽以及您的服务器与 Cloud Storage 之间的延迟来调整此参数是有意义的。

max_file_size_kbytes

编辑
  • 值类型是number
  • 默认值是 10000

以千字节为单位设置最大文件大小。0 禁用最大文件检查。

output_format

编辑
  • 值可以是:jsonplain 或无值
  • 默认值是无值

已弃用,此功能将在下一个主要版本中删除。请改用编解码器。

  • 如果您今天正在使用 json 值,请切换到 json_lines 编解码器。
  • 如果您今天正在使用 plain 值,请切换到 line 编解码器。

您要存储在文件中的事件格式。默认为纯文本。

注意:如果您想使用编解码器,则一定不能设置此值。

service_account

编辑
  • 这是一个必需的设置。
  • 值类型是string
  • 此设置没有默认值。

已弃用此功能不再使用,该设置现在是json_key_file的一部分。

temp_directory

编辑
  • 值类型是string
  • 默认值是 ""

存储临时文件的目录。默认为 /tmp/logstash-gcs-<随机后缀>

uploader_interval_secs

编辑
  • 值类型是number
  • 默认值是 60

将新文件上传到 GCS 时的上传器间隔。根据您的时间模式调整时间(例如,对于每小时文件,此间隔可以约为一小时)。

通用选项

编辑

所有输出插件都支持这些配置选项

设置 输入类型 必需

codec

codec

enable_metric

boolean

id

string

codec

编辑

用于输出数据的编解码器。输出编解码器是一种方便的方法,可以在数据离开输出之前对其进行编码,而无需在 Logstash 管道中进行单独的过滤。

enable_metric

编辑

禁用或启用此特定插件实例的指标日志记录。默认情况下,我们会记录所有可以记录的指标,但是您可以禁用特定插件的指标收集。

  • 值类型是字符串
  • 此设置没有默认值。

向插件配置添加唯一的 ID。如果未指定 ID,Logstash 将生成一个。强烈建议在您的配置中设置此 ID。当您有两个或多个相同类型的插件时,这尤其有用。例如,如果您有 2 个 google_cloud_storage 输出。在这种情况下添加命名的 ID 将有助于在使用监控 API 时监控 Logstash。

output {
  google_cloud_storage {
    id => "my_plugin_id"
  }
}

id 字段中的变量替换仅支持环境变量,不支持使用来自秘密存储的值。