228 lines
5.1 KiB
YAML
228 lines
5.1 KiB
YAML
# Loki Stack 配置(适用于 OrbStack 单节点环境)
|
||
# 完整日志采集和存储方案
|
||
|
||
loki:
|
||
enabled: true
|
||
isDefault: true
|
||
|
||
# 持久化存储配置
|
||
persistence:
|
||
enabled: true
|
||
size: 10Gi
|
||
storageClassName: "" # 使用默认 StorageClass
|
||
|
||
# 资源限制(针对本地开发环境优化)
|
||
resources:
|
||
requests:
|
||
cpu: 100m
|
||
memory: 256Mi
|
||
limits:
|
||
cpu: 500m
|
||
memory: 512Mi
|
||
|
||
# Loki 配置
|
||
config:
|
||
auth_enabled: false
|
||
|
||
ingester:
|
||
chunk_idle_period: 3m
|
||
chunk_block_size: 262144
|
||
chunk_retain_period: 1m
|
||
max_transfer_retries: 0
|
||
lifecycler:
|
||
ring:
|
||
kvstore:
|
||
store: inmemory
|
||
replication_factor: 1
|
||
|
||
limits_config:
|
||
enforce_metric_name: false
|
||
reject_old_samples: true
|
||
reject_old_samples_max_age: 168h
|
||
max_entries_limit_per_query: 5000
|
||
max_streams_per_user: 0
|
||
max_global_streams_per_user: 0
|
||
ingestion_rate_mb: 10
|
||
ingestion_burst_size_mb: 20
|
||
|
||
schema_config:
|
||
configs:
|
||
- from: 2024-01-01
|
||
store: boltdb-shipper
|
||
object_store: filesystem
|
||
schema: v11
|
||
index:
|
||
prefix: index_
|
||
period: 24h
|
||
|
||
server:
|
||
http_listen_port: 3100
|
||
grpc_listen_port: 9095
|
||
|
||
storage_config:
|
||
boltdb_shipper:
|
||
active_index_directory: /data/loki/boltdb-shipper-active
|
||
cache_location: /data/loki/boltdb-shipper-cache
|
||
cache_ttl: 24h
|
||
shared_store: filesystem
|
||
filesystem:
|
||
directory: /data/loki/chunks
|
||
|
||
chunk_store_config:
|
||
max_look_back_period: 0s
|
||
|
||
table_manager:
|
||
retention_deletes_enabled: false
|
||
retention_period: 0s
|
||
|
||
compactor:
|
||
working_directory: /data/loki/boltdb-shipper-compactor
|
||
shared_store: filesystem
|
||
|
||
promtail:
|
||
enabled: true
|
||
|
||
# 资源限制
|
||
resources:
|
||
requests:
|
||
cpu: 50m
|
||
memory: 128Mi
|
||
limits:
|
||
cpu: 200m
|
||
memory: 256Mi
|
||
|
||
# Promtail 配置
|
||
config:
|
||
# 日志位置(适配 OrbStack)
|
||
clients:
|
||
- url: http://loki:3100/loki/api/v1/push
|
||
|
||
positions:
|
||
filename: /run/promtail/positions.yaml
|
||
|
||
scrape_configs:
|
||
# 采集所有 pod 日志
|
||
- job_name: kubernetes-pods
|
||
pipeline_stages:
|
||
- cri: {}
|
||
- json:
|
||
expressions:
|
||
timestamp: time
|
||
message: log
|
||
level: level
|
||
trace_id: trace_id
|
||
span_id: span_id
|
||
- labels:
|
||
level:
|
||
trace_id:
|
||
span_id:
|
||
- timestamp:
|
||
source: timestamp
|
||
format: RFC3339Nano
|
||
- output:
|
||
source: message
|
||
|
||
kubernetes_sd_configs:
|
||
- role: pod
|
||
|
||
relabel_configs:
|
||
# 只采集 running 状态的 pod
|
||
- source_labels:
|
||
- __meta_kubernetes_pod_phase
|
||
action: keep
|
||
regex: Running
|
||
|
||
# 添加 namespace 标签
|
||
- source_labels:
|
||
- __meta_kubernetes_pod_namespace
|
||
target_label: namespace
|
||
|
||
# 添加 pod 名称标签
|
||
- source_labels:
|
||
- __meta_kubernetes_pod_name
|
||
target_label: pod
|
||
|
||
# 添加 container 名称标签
|
||
- source_labels:
|
||
- __meta_kubernetes_pod_container_name
|
||
target_label: container
|
||
|
||
# 添加 app 标签
|
||
- source_labels:
|
||
- __meta_kubernetes_pod_label_app
|
||
target_label: app
|
||
|
||
# 添加 node 标签
|
||
- source_labels:
|
||
- __meta_kubernetes_pod_node_name
|
||
target_label: node
|
||
|
||
# 构造日志文件路径
|
||
- source_labels:
|
||
- __meta_kubernetes_pod_uid
|
||
- __meta_kubernetes_pod_container_name
|
||
target_label: __path__
|
||
separator: /
|
||
replacement: /var/log/pods/*$1/*.log
|
||
|
||
# 采集 systemd 日志(可选)
|
||
- job_name: systemd-journal
|
||
journal:
|
||
path: /var/log/journal
|
||
max_age: 12h
|
||
labels:
|
||
job: systemd-journal
|
||
relabel_configs:
|
||
- source_labels:
|
||
- __journal__systemd_unit
|
||
target_label: unit
|
||
- source_labels:
|
||
- __journal__hostname
|
||
target_label: hostname
|
||
|
||
# 挂载主机日志目录
|
||
volumeMounts:
|
||
- name: varlog
|
||
mountPath: /var/log
|
||
readOnly: true
|
||
- name: varlibdockercontainers
|
||
mountPath: /var/lib/docker/containers
|
||
readOnly: true
|
||
- name: run
|
||
mountPath: /run/promtail
|
||
|
||
volumes:
|
||
- name: varlog
|
||
hostPath:
|
||
path: /var/log
|
||
- name: varlibdockercontainers
|
||
hostPath:
|
||
path: /var/lib/docker/containers
|
||
- name: run
|
||
hostPath:
|
||
path: /run/promtail
|
||
|
||
# DaemonSet 配置(在每个节点上运行)
|
||
tolerations:
|
||
- effect: NoSchedule
|
||
operator: Exists
|
||
|
||
serviceMonitor:
|
||
enabled: false
|
||
|
||
# 禁用不需要的组件
|
||
grafana:
|
||
enabled: false
|
||
|
||
prometheus:
|
||
enabled: false
|
||
|
||
fluent-bit:
|
||
enabled: false
|
||
|
||
filebeat:
|
||
enabled: false
|
||
|
||
logstash:
|
||
enabled: false
|