X-Scope-OrgID
的作用
該HTTP Header用于標識Loki日志數據的所屬租戶(組織)。在多租戶模式下,Loki通過此Header隔離不同團隊或用戶的數據,確保查詢和存儲的獨立性。
-
數據隔離:
- 租戶A的日志標記為
X-Scope-OrgID: team-a
,僅能通過相同Header查詢。 - 租戶B的數據需匹配
X-Scope-OrgID: team-b
,否則無法訪問。
- 租戶A的日志標記為
-
權限驗證:
Loki服務可能要求請求攜帶特定Header值(如user1
),否則返回403 Forbidden
。
Grafana中的配置方法
在Grafana數據源設置中,需明確指定X-Scope-OrgID
及其值(如user1
):
- 進入Grafana的Data Sources頁面,選擇Loki數據源。
- 在HTTP配置部分,添加以下自定義Header:
- Header:
X-Scope-OrgID
- Value:
user1
(根據實際租戶名稱調整)
- Header:
此配置使Grafana在查詢Loki時自動附加該Header,確保返回正確的租戶數據。
常見問題與解決
-
查詢無數據:
檢查Grafana中X-Scope-OrgID
的值是否與日志推送時使用的值一致。 -
報錯“no org id”:
Loki要求多租戶Header但Grafana未配置,需補充Header并重啟服務。 -
權限拒絕:
確認Loki服務端是否啟用了auth_enabled: true
,且Header值符合白名單規則。
總結
X-Scope-OrgID
是Loki多租戶功能的核心標識,通過Grafana的正確配置實現:
- 租戶數據的精準查詢與隔離。
- 基于Header的簡易權限控制。
- 避免多團隊間的日志混淆。
這一設置是Grafana與Loki協同工作的必要環節,需嚴格匹配服務端要求。