使用 Jsonnet 配置 Grafana Mimir 对象存储后端
您可以从一个地方配置所有 Mimir 组件的对象存储后端。所需的最低 Jsonnet 代码如下:
{
_config+:: {
storage_backend: 'gcs',
blocks_storage_bucket_name: 'blocks-bucket',
}
}
storage_backend
选项必须是 azure
、gcs
或 s3
之一。每个提供程序都有额外的配置选项。
Amazon S3 (s3
) 存储配置选项
使用 Amazon VPC 时,无需凭据即可访问 Amazon S3 存储。在这种情况下,storage_s3_secret_access_key
和 storage_s3_access_key_id
是可选的,可以留空,如下例所示:
{
_config+:: {
storage_backend: 's3',
blocks_storage_bucket_name: 'blocks-bucket',
aws_region: 'af-south-1',
}
}
如果需要凭据,最好将其保存在 secrets 中。在这种情况下,可以使用环境变量插值:
{
_config+:: {
storage_backend: 's3',
storage_s3_access_key_id: '$(BLOCKS_STORAGE_S3_ACCESS_KEY_ID)',
storage_s3_secret_access_key: '$(BLOCKS_STORAGE_S3_SECRET_ACCESS_KEY)',
aws_region: 'af-south-1',
blocks_storage_bucket_name: 'blocks-bucket',
}
}
Azure (azure
) 存储配置选项
Azure Blob 存储中的分层命名空间必须禁用。否则,Grafana Mimir 删除块后会留下空目录。
Azure 存储客户端需要配置 storage_azure_account_name
和 storage_azure_account_key
。最好将其保存在 secrets 中。在这种情况下,可以使用环境变量插值:
{
_config+:: {
storage_backend: 'azure',
storage_azure_account_name: '$(STORAGE_AZURE_ACCOUNT_NAME)',
storage_azure_account_key: '$(STORAGE_AZURE_ACCOUNT_KEY)',
blocks_storage_bucket_name: 'blocks-bucket',
}
}
Google Cloud Storage (gcs
) 存储配置选项
配置 Google Cloud Storage 客户端有多种方法。如果您在 Google Cloud Platform 上运行 Mimir,则环境可能已经配置了凭据,在这种情况下,最低 Jsonnet 配置是有效的:
{
_config+:: {
storage_backend: 'gcs',
blocks_storage_bucket_name: 'blocks-bucket',
}
}
需要认证时,可以使用 storage_gcs_service_account
配置键来提供服务账户。最好将凭据保存在 secrets 中,因此可以使用环境变量插值:
{
_config+:: {
storage_backend: 'gcs',
storage_gcs_service_account: '$(STORAGE_GCS_SERVICE_ACCOUNT)',
blocks_storage_bucket_name: 'blocks-bucket',
}
}
或者,您可以设置 GOOGLE_APPLICATION_CREDENTIALS
环境变量指向从 secret 挂载的服务账户文件。