部署 Grafana

最後更新: 2025-07-24 19:26:27 +0800 +0800
原文以英文撰寫。您正在閱讀AI翻譯版本。

Grafana 是一項視覺化與警示服務。生產環境部署不只是執行容器,還需要持久化狀態、可重現的佈建、經過驗證的存取,以及備份與升級程序。

以持久化狀態執行 Grafana #

Grafana 會將使用者、在 UI 中建立的儀表板、警示資料和設定中繼資料儲存在資料庫中。對於小型安裝,請持久化預設的 SQLite 資料庫;對於高可用性部署,請使用受支援的外部資料庫,並在負載平衡器後方執行多個 Grafana 執行個體。

yaml
services:
  grafana:
    image: grafana/grafana:11.2.0
    ports:
      - "3000:3000"
    volumes:
      - grafana-data:/var/lib/grafana
      - ./provisioning:/etc/grafana/provisioning:ro
    environment:
      GF_SERVER_ROOT_URL: https://grafana.example.com/
      GF_SECURITY_ADMIN_USER: admin
      GF_SECURITY_ADMIN_PASSWORD__FILE: /run/secrets/grafana_admin_password
    secrets:
      - grafana_admin_password
volumes:
  grafana-data:
secrets:
  grafana_admin_password:
    file: ./grafana_admin_password.txt

請固定經過測試的映像版本,不要使用浮動標籤。只有在檔案系統權限和部署機制受到控管時,示範中的 secret 檔案才適用;在生產環境中,請使用平台的 secret 管理器。

佈建資料來源和儀表板 #

佈建可讓設定具備可審查性和可重複性。可以在 provisioning/datasources/prometheus.yaml 中定義 Prometheus 資料來源:

yaml
apiVersion: 1
datasources:
  - name: Prometheus
    type: prometheus
    access: proxy
    url: http://prometheus:9090
    isDefault: true

對於儲存在版本控制中的儀表板,請使用儀表板佈建。請審慎決定所有權:如果來源檔案變更,佈建的儀表板可能會在重新啟動時被覆寫。保留一條具備文件說明的緊急 UI 變更流程,並將這些變更匯出回原始碼控制。

保護安全、備份和升級 #

在 Grafana 或受信任的反向代理處終止 TLS,設定公開的 root_url,並配置正確的 OAuth、SAML、LDAP 或匿名存取原則。除非刻意公開,否則請停用匿名存取。使用組織和資料夾權限,避免團隊修改彼此的儀表板和警示規則。

將資料庫和佈建儲存庫一起備份,然後測試還原。在升級前閱讀版本資訊、備份資料庫,針對資料來源和警示傳遞測試目標版本,並保留回復計畫。未配置驗證和速率限制控制時,不要將 Grafana 的管理端點直接暴露至網際網路。

評論

在 GitHub 上閱讀或評論(發表評論需要登入)