
grafana-oss
熱門設定 Grafana OSS — 從 YAML 佈建儀表板、設定資料來源(Prometheus / Loki / Tempo / Pyroscope)、撰寫含範本變數的儀表板 JSON、建立面板查詢、指派內建角色(Viewer / Editor / Admin / GrafanaAdmin)、產生服務帳戶權杖、編輯 grafana.ini 伺服器設定、建立註解、透過佈建安裝外掛,並使用健康檢查 curl 驗證每個步驟。適用於建立儀表板、設定資料來源、設定佈建 YAML、選擇面板類型、撰寫範本變數、管理使用者與角色、在 grafana.ini 中設定 SMTP/OAuth、透過 API 建立註解、疑難排解已佈建的儀表板為何未顯示,或在本機執行 Grafana OSS — 即使使用者只說「設定 Prometheus 資料來源」、「從 git 佈建儀表板」、「建立服務帳戶」或「在 OSS 中設定 SSO」,而未明確說出「Grafana OSS」。
設定 Grafana OSS — 從 YAML 佈建儀表板、設定資料來源(Prometheus / Loki / Tempo / Pyroscope)、撰寫含範本變數的儀表板 JSON、建立面板查詢、指派內建角色(Viewer / Editor / Admin / GrafanaAdmin)、產生服務帳戶權杖、編輯 grafana.ini 伺服器設定、建立註解、透過佈建安裝外掛,並使用健康檢查 curl 驗證每個步驟。適用於建立儀表板、設定資料來源、設定佈建 YAML、選擇面板類型、撰寫範本變數、管理使用者與角色、在 grafana.ini 中設定 SMTP/OAuth、透過 API 建立註解、疑難排解已佈建的儀表板為何未顯示,或在本機執行 Grafana OSS — 即使使用者只說「設定 Prometheus 資料來源」、「從 git 佈建儀表板」、「建立服務帳戶」或「在 OSS 中設定 SSO」,而未明確說出「Grafana OSS」。
Grafana OSS
常見工作流程
從磁碟佈建儀表板
- 將儀表板 JSON 檔案放置於
/var/lib/grafana/dashboards/目錄下 - 在
provisioning/dashboards/default.yaml中新增提供者(請參閱下方 § 儀表板佈建) - 重新啟動 Grafana 以載入提供者設定
- 驗證儀表板是否已成功載入:
回傳標題表示成功。若回傳 404,表示佈建未偵測到該檔案;請檢查 Grafana 伺服器記錄檔(curl https://grafana.example.com/api/dashboards/uid/<uid> \ -H "Authorization: Bearer <token>" | jq '.dashboard.title'journalctl -u grafana-server | grep -i provisioning)以找出解析錯誤。
佈建資料來源
- 撰寫
provisioning/datasources/datasources.yaml(請參閱下方 § 資料來源佈建) - 重新啟動 Grafana
- 透過 API 健康檢查資料來源:
curl https://grafana.example.com/api/datasources/uid/<uid>/health \ -H "Authorization: Bearer <token>" # { "status": "OK", "message": "..." } → 正常運作 # { "status": "ERROR", ... } → URL 無法連線或驗證設定錯誤
建立服務帳戶與權杖
- 透過 YAML 或
POST /api/serviceaccounts進行佈建(完整 API 請參閱 references/api.md § 使用者 + 服務帳戶) - 透過
POST /api/serviceaccounts/{id}/tokens產生權杖 - 驗證權杖是否有效:
curl https://grafana.example.com/api/org \ -H "Authorization: Bearer <new-token>" # 200 + org JSON → 權杖與角色指派正常 # 401 → 權杖錯誤;403 → 角色錯誤
儀表板佈建
# provisioning/dashboards/default.yaml
apiVersion: 1
providers:
- name: default
folder: MyFolder
type: file
disableDeletion: false
updateIntervalSeconds: 30
options:
path: /var/lib/grafana/dashboards
foldersFromFilesStructure: true
關於儀表板 JSON 本身的結構(面板、查詢、範本變數),請參閱 references/dashboard-json.md。
資料來源佈建
# provisioning/datasources/datasources.yaml
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
jsonData:
timeInterval: 15s
httpMethod: POST
- name: Loki
type: loki
access: proxy
url: http://loki:3100
- name: Tempo
type: tempo
access: proxy
url: http://tempo:3200
jsonData:
tracesToLogsV2:
datasourceUid: loki_uid
tags: [{ key: "service.name", value: "app" }]
serviceMap:
datasourceUid: prometheus_uid
nodeGraph:
enabled: true
- name: Pyroscope
type: grafana-pyroscope-datasource
url: http://pyroscope:4040
RBAC(內建角色)
| 角色 | 權限 |
|---|---|
| Viewer | 讀取儀表板、警示 |
| Editor | 建立/編輯儀表板、警示 |
| Admin | 管理資料來源、使用者、外掛 |
| GrafanaAdmin | 全伺服器管理員(超級使用者) |
服務帳戶佈建:
# provisioning/access-control/service_accounts.yaml
apiVersion: 1
serviceAccounts:
- name: ci-reader
orgId: 1
role: Viewer
tokens:
- name: ci-token
# expires: 可選的 ISO 8601 時間戳;省略則為無到期權杖
(具有細粒度權限的自訂 RBAC 角色僅限 Enterprise / Cloud 版本 — 如需此功能,請參閱 grafana-cloud/admin 技能。)
外掛佈建
# provisioning/plugins/plugins.yaml
apiVersion: 1
apps:
- type: grafana-pyroscope-app
disabled: false
jsonData:
backendUrl: http://pyroscope:4040
重新啟動後,可透過 GET /api/plugins/<plugin-id>/health 驗證。
參考資料
references/dashboard-json.md— 完整的儀表板 JSON 模型 + 範本變數 + 常見問題(uid 唯一性、gridPos 運算、資料來源 uid 比對)references/dashboards.md— 儀表板工作流程、設定、變數、註解、分享、版本、播放清單以及基礎架構即程式碼的佈建references/datasources.md— 資料來源設定與 Prometheus、Loki、Tempo、SQL、CloudWatch 及外掛的查詢範例references/panel-types.md— 面板類型表格 + 選擇正確面板類型的決策指南references/panels.md— 面板編輯器、視覺化選項、欄位設定、轉換、查詢選項、檢查與效能提示references/alerting.md— 警示概念、聯絡點、通知政策、範本、靜音與常見規則範例references/api.md— 完整的 Grafana OSS API 參考(儀表板、資料來源、使用者、服務帳戶、註解),附帶驗證 curl 與常見失敗模式references/config.md—grafana.ini伺服器/資料庫/SMTP/驗證/安全性/功能切換設定 + 需重新啟動的注意事項





