如何使用S3作为Loki日志的存储?

0 logging amazon-s3 kubernetes-helm grafana-loki

我对 Kubernetes、Helm 和 Loki 相当陌生。

我已经使用 Helm 图表在我的 minikube 集群上部署了 Loki-stack,并且尝试使用 S3 存储作为 Loki 日志的存储。

我尝试将Loki 文档中的以下内容添加到我的自定义图表中,并将其自定义到我正在运行的 S3 实例。

schema_config:
  configs:
  - from: 2020-05-15
    store: aws
    object_store: s3
    schema: v11
    index:
      prefix: loki_
storage_config:
  aws:
    bucketnames: bucket_name1, bucket_name2
    endpoint: s3.endpoint.com
    region: s3_region
    access_key_id: s3_access_key_id
    secret_access_key: s3_secret_access_key
    insecure: false
    sse_encryption: false
    http_config:
      idle_conn_timeout: 90s
      response_header_timeout: 0s
      insecure_skip_verify: false
    s3forcepathstyle: true
Run Code Online (Sandbox Code Playgroud)

我确保自定义区域、存储桶名称、端点等。但 Loki 不会在那里存储任何日志。我需要一些帮助来告诉我我可能遗漏了什么或做错了什么?

小智 6

我一直在你的位置上。我发现的解决办法是使用 Single Store Loki 配置Single Store Loki (boltdb-shipper 索引类型) 。另外,我建议您使用公共部分以更简单的方式配置shared_sotrage并包含压缩器配置。

common:
  path_prefix: /tmp/loki
  storage:
    s3:
      bucketnames: bucket-name
      region: aws-region
      access_key_id: Key
      secret_access_key: Secret

storage_config:
  boltdb_shipper:
    active_index_directory: /tmp/loki/active
    shared_store: s3
    cache_location: /tmp/loki/cache
    cache_ttl: 24h

compactor:
  working_directory: /tmp/loki/compactor
  shared_store: s3
Run Code Online (Sandbox Code Playgroud)