Grafana Loki 日誌聚合
Vibe Prompt
「幫我建立 Grafana Loki + Promtail 收集 K8s 所有 Pod 日誌,並在 Grafana 中查詢。」
Docker Compose
services:
loki:
image: grafana/loki:latest
ports: ["3100:3100"]
command: -config.file=/etc/loki/local-config.yaml
promtail:
image: grafana/promtail:latest
volumes:
- /var/log:/var/log
- ./promtail-config.yaml:/etc/promtail/config.yaml
command: -config.file=/etc/promtail/config.yaml
grafana:
image: grafana/grafana:latest
ports: ["3000:3000"]
environment:
GF_SECURITY_ADMIN_PASSWORD: admin
Promtail Config
scrape_configs:
- job_name: system
static_configs:
- targets: [localhost]
labels:
job: varlogs
__path__: /var/log/*log
查詢語法(LogQL)
# 查詢某個應用的所有日誌
{app="my-app"}
# 包含 error 的日誌
{app="my-app"} |= "error"
# 排除 heartbeat
{app="my-app"} |= "error" != "heartbeat"
# 正則匹配
{app="my-app"} |~ "error|exception|failed"
# JSON 解析
{app="my-app"} | json | status >= 500
Grafana Explore
- 進入 Grafana → Explore
- 選擇 Loki 資料來源
- 輸入 LogQL 查詢
- 調整時間範圍
- 查看結果