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

  1. 進入 Grafana → Explore
  2. 選擇 Loki 資料來源
  3. 輸入 LogQL 查詢
  4. 調整時間範圍
  5. 查看結果

解鎖完整教學內容

本章為付費內容。加入專案即可解鎖超過 5000 字的深度解析,包含 10 個以上神級 Prompt 與真實 Source Code 範例!