我一直在阅读 Loki 文档,了解哪些选项控制日志写入 S3 存储的频率。
我从 Loki 配置文件开始,如下所示。
auth_enabled: false
server:
http_listen_port: 3100
grpc_listen_port: 9095
log_level: info
common:
path_prefix: /tmp/loki
storage:
s3:
endpoint: X.X.X.X:30008
insecure: true
bucketnames: my-bucket-name
access_key_id: XXXXXXX
secret_access_key: XXXXXXX
s3forcepathstyle: true
schema_config:
configs:
- from: 2020-08-01
store: boltdb-shipper
object_store: s3
schema: v11
index:
prefix: index_
period: 24h
在一段时间过去后,我看到
fake/11316bdf153415ec:18d248d36be:18d2492d645:348666c5
已写入S3存储。 例如,
$ mc ls --recursive myminio/my-loki-bucket
[2024-01-21 06:52:12 EST] 1.4KiB STANDARD fake/11316bdf153415ec:18d248d36be:18d2492d645:348666c5
[2024-01-21 06:52:11 EST] 2.5KiB STANDARD fake/3fa58a19fcb4b23a:18d248d36be:18d2492d646:53cf855c
[2024-01-21 06:52:11 EST] 1.5KiB STANDARD fake/439ea18af3ada610:18d248d36be:18d2492d645:3463302d
[2024-01-21 06:52:12 EST] 1.9KiB STANDARD fake/92b5be2511cd48ac:18d248d36be:18d2492d645:8eb74106
[2024-01-21 06:52:11 EST] 2.4KiB STANDARD fake/b9675d064b0a6f66:18d248d36be:18d2492d646:c73cb1da
[2024-01-21 06:52:11 EST] 2.5KiB STANDARD fake/c6d436cdc54ed457:18d248d36be:18d2492d646:b103cffd
[2024-01-21 06:52:11 EST] 1.4KiB STANDARD fake/db4bf7dd2fd629f1:18d248d36be:18d2492d645:78d6476e
[2024-01-21 10:05:19 EST] 135B STANDARD index/delete_requests/delete_requests.gz
[2024-01-21 07:08:07 EST] 1.5KiB STANDARD index/index_19742/compactor-1705838887.gz
[2024-01-20 08:39:21 EST] 198B STANDARD loki_cluster_seed.json
出于测试目的,我想知道如何尽快将这些日志写入S3存储。
有人可以告诉我要使用的 Loki 选项吗?
我尝试通过向配置文件添加几个选项来进行实验,如下所示:
compactor:
working_directory: /tmp/compactor
apply_retention_interval: 1m
compaction_interval: 1m
retention_enabled: true
retention_delete_delay: 2h
retention_delete_worker_count: 150
limits_config:
retention_period: 24h
ingestion_rate_mb: 20
ingestion_burst_size_mb: 30
per_stream_rate_limit: "1MB"
per_stream_rate_limit_burst: "2MB"
ingester:
lifecycler:
ring:
kvstore:
store: memberlist
replication_factor: 1
max_chunk_age: 30s
chunk_idle_period: 30s
chunk_target_size: 64000
chunk_retain_period: 60s
chunk_encoding: gzip
chunk_block_size: 2048
flush_op_timeout: 10s
concurrent_flushes: 8
我将大量数据附加到我的
/var/log/test.log
,这些数据正在被 promtail
抓取,希望达到某个限制,迫使日志写入我的 minio S3
存储,但 15 分钟后, mc ls --recursive myminio/my-loki-bucket
不显示任何写入的日志。
我期待
mc ls --recursive myminio/my-loki-bucket
显示新的日志文件。
对我来说,它可以将以下内容添加到配置
yaml
文件中:
ingester:
lifecycler:
ring:
kvstore:
store: inmemory
replication_factor: 1
chunk_idle_period: 10s
chunk_retain_period: 20s
max_chunk_age: 30s
chunk_idle_period
:如果块空闲(没有新的日志条目)10秒,它们将被刷新到S3存储。chunk_retain_period
:块将在内存中保留 20 秒,然后才有资格被刷新。max_chunk_age
:如果块超过 30 秒,无论活动如何,都将被刷新。