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 上閱讀或評論(發表評論需要登入)