Loki
部署
- Helm Chart - https://github.com/grafana/loki/tree/main/production/helm/loki
- 下载地址 https://github.com/grafana/helm-charts/releases - loki
部署模式
loki的helm chart的values.yaml中的deploymentMode配置部署模式。
有 3 种选项:
- SingleBinary:Loki 作为单一二进制文件部署,适用于小型安装,通常没有高可用性,支持每天几十 GB 的数据。
- SimpleScalable(默认值):Loki 作为3个目标部署:读取(loki-read)、写入(loki-write)和后端(loki-backend)。适用于中型安装,比分布式部署更易于管理,支持每天约1TB的数据。
- Distributed:Loki作为独立的微服务部署。最复杂但功能最强,适用于大型安装,通常超过每天1TB的数据。
还有 2 种附加模式,用于在部署模式之间迁移:
- SingleBinary<->SimpleScalable:从SingleBinary迁移到 SimpleScalable(或反向迁移)
- SimpleScalable<->Distributed:从SimpleScalable迁移到 Distributed(或反向迁移)
注意:SimpleScalable 和 Distributed 要求使用对象存储。
SimpleScalable部署
定制的values.yaml:
imagePullSecrets:
- name: regsecret
minio:
enabled: false
lokiCanary:
enabled: false
resultsCache:
enabled: false
chunksCache:
enabled: false
loki:
image:
registry: registry.frognew.com
repository: library/grafana/loki
storage:
bucketNames:
chunks: loki-chunks
ruler: loki-ruler
admin: loki-admin
type: s3
s3:
endpoint: http://rook-ceph-rgw-ceph-object-store.rook-ceph.svc.cluster.local:80
region: unknown
accessKeyId: <accessKeyId>
secretAccessKey: <secretAccessKey>
s3ForcePathStyle: true
insecure: false
compactor:
delete_request_store: s3
compaction_interval: 10m
retention_enabled: true
retention_delete_delay: 2h
retention_delete_worker_count: 150
limits_config:
max_cache_freshness_per_query: 10m
reject_old_samples: true
reject_old_samples_max_age: 1w
split_queries_by_interval: 15m
retention_period: 365d
tenants:
- name: <tenants-name>
password: <tenants-password>
analytics:
reporting_enabled: false
schemaConfig:
configs:
# https://grafana.com/docs/loki/latest/operations/storage/tsdb/
- from: 2024-05-14
store: tsdb
object_store: s3
schema: v13
index:
prefix: loki_index_
period: 24h
storage_config:
hedging:
at: 250ms
max_per_second: 20
up_to: 3
gateway:
enabled: false
read:
replicas: 3
write:
replicas: 3
persistence:
size: 50Gi
storageClass: local-storage
backend:
replicas: 3
persistence:
size: 50Gi
storageClass: local-storage
test:
enabled: false
ingress:
enabled: false
monitoring:
dashboards:
enabled: false
rules:
enabled: false
serviceMonitor:
enabled: false
selfMonitoring:
enabled: false
grafanaAgent:
installOperator: false
lokiCanary:
enabled: false
sidecar:
rules:
enabled: false更多关于SimpleScalable部署的内容,可参考“Grafana Loki笔记02: 使用Helm安装Loki”
SingleBinary部署
values.yaml:
imagePullSecrets:
- name: regsecret
minio:
enabled: false
lokiCanary:
enabled: false
resultsCache:
enabled: false
chunksCache:
enabled: false
loki:
image:
registry: registry.frognew.com
repository: library/grafana/loki
storage:
bucketNames:
chunks: loki-chunks
ruler: loki-ruler
admin: loki-admin
type: s3
s3:
endpoint: http://rook-ceph-rgw-ceph-object-store.rook-ceph.svc.cluster.local:80
region: unknown
accessKeyId: <accessKeyId>
secretAccessKey: <secretAccessKey>
s3ForcePathStyle: true
insecure: false
compactor:
delete_request_store: s3
compaction_interval: 10m
retention_enabled: true
retention_delete_delay: 2h
retention_delete_worker_count: 150
limits_config:
max_cache_freshness_per_query: 10m
reject_old_samples: true
reject_old_samples_max_age: 1w
split_queries_by_interval: 15m
retention_period: 365d
tenants:
- name: <tenant-name>
password: <tenant-password>
analytics:
reporting_enabled: false
commonConfig:
replication_factor: 1
schemaConfig:
configs:
# https://grafana.com/docs/loki/latest/operations/storage/tsdb/
- from: 2024-05-14
store: tsdb
object_store: s3
schema: v13
index:
prefix: loki_index_
period: 24h
ingester:
chunk_encoding: snappy
tracing:
enabled: true
querier:
# Default is 4, if you have enough memory and CPU you can increase, reduce if OOMing
max_concurrent: 2
storage_config:
hedging:
at: 250ms
max_per_second: 20
up_to: 3
gateway:
enabled: false
deploymentMode: SingleBinary
singleBinary:
replicas: 1
resources:
limits:
cpu: 3
memory: 2Gi
requests:
cpu: 500m
memory: 500Mi
extraEnv:
# Keep a little bit lower than memory limits
- name: GOMEMLIMIT
value: 1875MiB
# Zero out replica counts of other deployment modes
backend:
replicas: 0
read:
replicas: 0
write:
replicas: 0
ingester:
replicas: 0
querier:
replicas: 0
queryFrontend:
replicas: 0
queryScheduler:
replicas: 0
distributor:
replicas: 0
compactor:
replicas: 0
indexGateway:
replicas: 0
bloomCompactor:
replicas: 0
bloomGateway:
replicas: 0
test:
enabled: false
ingress:
enabled: false
monitoring:
dashboards:
enabled: false
rules:
enabled: false
serviceMonitor:
enabled: false
selfMonitoring:
enabled: false
grafanaAgent:
installOperator: false
lokiCanary:
enabled: false
sidecar:
rules:
enabled: false