MinIO
Synopsis
Creates a target that writes log messages to MinIO object storage with support for various file formats and authentication methods. The target handles large file uploads efficiently with configurable rotation based on size or event count. MinIO provides high-performance, Kubernetes-native object storage that can be deployed on-premises or in the cloud.
Schema
- name: <string>
description: <string>
type: minio
pipelines: <pipeline[]>
status: <boolean>
properties:
key: <string>
secret: <string>
region: <string>
endpoint: <string>
part_size: <numeric>
bucket: <string>
buckets:
- bucket: <string>
name: <string>
format: <string>
compression: <string>
extension: <string>
schema: <string>
name: <string>
format: <string>
compression: <string>
extension: <string>
schema: <string>
max_size: <numeric>
batch_size: <numeric>
timeout: <numeric>
field_format: <string>
interval: <string|numeric>
cron: <string>
debug:
status: <boolean>
dont_send_logs: <boolean>
Configuration
The following fields are used to define the target:
| Field | Required | Default | Description |
|---|---|---|---|
name | Y | Target name | |
description | N | - | Optional description |
type | Y | Must be minio | |
pipelines | N | - | Optional post-processor pipelines |
status | N | true | Enable/disable the target |
MinIO Credentials
| Field | Required | Default | Description |
|---|---|---|---|
key | Y | - | MinIO access key |
secret | Y | - | MinIO secret key |
region | N | us-east-1 | MinIO region (default if not using multiple regions) |
endpoint | Y | - | MinIO server endpoint URL (e.g., http://minio-server:9000 or https://minio.example.com) |
Connection
| Field | Required | Default | Description |
|---|---|---|---|
part_size | N | 5 | Multipart upload part size in megabytes (minimum 5MB) |
timeout | N | 30 | Connection timeout in seconds |
field_format | N | - | Data normalization format. See applicable Normalization section |
Files
| Field | Required | Default | Description |
|---|---|---|---|
bucket | N* | - | Default MinIO bucket name (used if buckets not specified) |
buckets | N* | - | Array of bucket configurations for file distribution |
buckets.bucket | Y | - | MinIO bucket name |
buckets.name | Y | - | File name template |
buckets.format | N | "json" | Output format: json, multijson, avro, parquet |
buckets.compression | N | "zstd" | Compression algorithm |
buckets.extension | N | Matches format | File extension override |
buckets.schema | N* | - | Schema definition file path (required for Avro and Parquet formats) |
name | N | "vmetric.{{.Timestamp}}.{{.Extension}}" | Default file name template when buckets not used |
format | N | "json" | Default output format when buckets not used |
compression | N | "zstd" | Default compression when buckets not used |
extension | N | Matches format | Default file extension when buckets not used |
schema | N | - | Default schema path when buckets not used |
max_size | N | 0 | Maximum file size in bytes before rotation |
batch_size | N | 100000 | Maximum number of messages per file |
* = Either bucket or buckets must be specified. When using buckets, schema is conditionally required for Avro and Parquet formats.
note
When max_size is reached, the current file is uploaded to MinIO and a new file is created. For unlimited file size, set the field to 0.