Docker - 配置 Grafana



Grafana 是一個開源資料視覺化平臺,可幫助使用者監控、視覺化和分析資料以建立互動式儀表板。

Grafana 顯示即時指標,也可以查詢這些指標,無論您的資訊或資料儲存在哪裡。但是,由於系統特定的挑戰和依賴項,為不同的環境設定 Grafana 可能具有挑戰性。

本章將引導您瞭解如何透過使用 Docker 設定 Grafana 來解決此問題,以容器化您的 Grafana 例項並在不同的開發和生產環境中輕鬆管理它。

Grafana Docker 映象的兩個版本

Grafana Docker 映象主要有兩個版本:

  • Grafana OSS - Grafana OSS 是一個開源選項,免費提供。它允許使用者建立自定義儀表板、查詢資料,甚至設定警報。Grafana OSS 最適合擁有中小型團隊的使用者。
  • Grafana Enterprise - Grafana Enterprise 是一個付費版本,它具有 Grafana OSS 的所有功能以及一些高階功能,例如安全和保護以及更好的團隊協作工具。它最適合處理複雜資料並需要高階安全和保護的使用者。

在本章中,我們將討論如何設定 Grafana OSS。

使用 Docker 容器化 Grafana 的先決條件

在開始之前,請確保您具備以下先決條件:

  • Docker 基礎知識 - Docker 的基礎知識,如容器、映象和 Docker 檔案,將使您更容易理解本指南。
  • Grafana 基礎知識 - 建議瞭解 Grafana 的基本功能,例如建立儀表板、連線資料來源和瀏覽其 UI。
  • 已安裝 Docker - 確保您的機器上已安裝 Docker。您可以從 Docker 的官方網站下載它。
  • Docker Compose - 如果您要透過 Docker Compose 設定 Graffana,請確保您的機器上已安裝 Docker Compose。
  • 命令列介面 (CLI) - 您應該熟悉 CLI 以執行命令。

您可以使用 Docker CLI 或 Docker Compose 執行 Grafana 容器。在本章中,我們將介紹這兩種方法。

執行 Grafana 容器 - Docker CLI

本節介紹如何透過命令列介面或 CLI 將 Grafana 容器進行 Docker 化。

如果您使用的是 LINUX 機器(基於 Ubuntu 或 Debian 的系統),則可能需要在這些命令之前新增 sudo 以提供管理員許可權。

步驟 1:拉取 Grafana Docker 映象

在執行 Grafana 容器之前,您需要拉取一個 Grafana Docker 映象。

$ docker pull grafana/grafana
Pull the Grafana Docker Image

步驟 2:執行 Grafana 容器

$ docker run -d -p 3000:3000 --name=grafana grafana/grafana
Run Grafana Container

其中,

  • -d = 表示分離模式。
  • -p 3000:3000 = 將您的本地主機埠 (3000) 對映到 Grafana 容器的埠 (3000)。
  • --name=grafana = 表示容器的名稱。
  • grafana/grafana = 您要執行的映象名稱。

步驟 3:儲存您的資料(可選)

Grafana 預設使用 SQLite 版本 3 資料庫來儲存所有資料。但是,此資料僅在容器存在時才儲存。一旦您刪除容器,所有資料(如使用者、儀表板和配置)都將丟失。要即使在刪除容器後也能儲存資料,您可以使用 Docker 卷。

使用 Docker 卷可以讓您完全控制、管理和訪問使用 Docker CLI 的資料。

首先,您需要建立一個 Docker 卷。您可以將其命名為任何名稱,但在此示例中,我們將將其命名為 grafana-storage。

$ docker volume create grafana-storage
Save your Data Optional

您可以透過執行以下命令來驗證您的 Docker 卷是否已正確生成。如果您的卷已建立,此命令將為您提供一些 JSON 輸出。

$ docker volume inspect grafana-storage
Save your Data Optional

建立 Grafana 容器將使用的 Docker 卷後,您需要執行 Grafana 容器。

$ docker run -d -p 3000:3000 --name=grafana \
  --volume grafana-storage:/var/lib/grafana \
  grafana/grafana
Save your Data Optional

步驟 4:停止您的容器

要停止容器,請執行以下命令:

$ docker stop grafana
docker stop grafana

這裡,grafana 是您容器的名稱。

執行 Grafana 容器 – Docker Compose

您還可以透過 Docker Compose 執行 Grafana 容器。Docker Compose 是一個工具或軟體,允許您定義和執行多容器應用程式。它需要一個 YAML 檔案(例如,docker-compose.yaml),您可以在其中列出構成應用程式的所有服務的配置。

所有容器都可以透過一個命令依次啟動,也可以以相同的方式停止。

步驟 1:安裝 Docker Compose

要透過 Docker 執行 Grafana 容器,您需要在您的機器上安裝 Docker Compose。您可以使用以下命令驗證它是否已正確安裝。

$ docker compose version

如果已完美安裝,您將獲得 Docker Compose 版本,否則您將收到錯誤訊息。

docker compose version

步驟 2:建立 .yaml 檔案

安裝後,建立一個 docker-compose.yaml 檔案。此檔案將包含使應用程式正常執行所需的所有服務配置。

不要在根目錄中建立此檔案。移動到您的 docker-compose 目錄並在該目錄中建立此檔案。
$ touch docker-compose.yaml

步驟 3:填充 .yaml 檔案

將以下配置新增到您的 docker-compose.yaml 檔案中。

version: '3'
services:
  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - "3000:3000"

步驟 4:儲存您的資料

要儲存您的資料,以便在刪除容器時不會丟失配置、儀表板、使用者等,您可以使用 Docker 卷。

您必須在 docker-compose.yaml 檔案中進行一些更改才能使用 Docker 卷。在 docker-compose.yaml 檔案中將現有程式碼替換為以下程式碼。

version: '3'
services:
  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - "3000:3000"
    volumes:
      - ./grafana_data:/var/lib/grafana
docker Save Your Data

步驟 5:執行 docker-compose.yaml 檔案

要執行您的 docker-compose.yaml 檔案,請執行以下命令。

$ docker compose up -d

其中,

  • d = d 標誌表示分離模式
  • up = up 用於執行容器
docker compose up

步驟 6:訪問 Grafana 儀表板

您可以在瀏覽器中訪問 https://:3000 以訪問 Grafana 儀表板。

Access Grafana Dashboard

步驟 7:停止 Grafana 容器

要停止您的 Grafana 容器,請執行以下命令:

$ docker compose down
Stop Grafana Container

結論

您已成功使用 Docker 設定 Grafana,並透過 CLI 和 Docker compose 在 Docker 內部運行了您的 Grafana 容器。這樣,您就可以輕鬆地在不同的環境中使用 Grafana,而無需過多關注不同的系統和依賴項問題。使用 Docker 卷儲存您的 Grafana 資料可確保您即使在刪除例項後也不會丟失任何資料,並允許 Docker 引擎完全管理和訪問儲存。

使用 Docker 設定 Grafana 的常見問題解答

關於使用 Docker 設定 Grafana,有一些非常常見的問題,本節嘗試簡要回答它們。

1. 如何在 Docker 環境中擴充套件 Grafana?

您可以透過在 Docker 中部署多個 Grafana 例項來擴充套件 Grafana 以實現高可用性。使用負載均衡器在伺服器上共享負載,並用於儲存儀表板、配置、使用者等資料。使用共享資料庫,例如 PostgreSQL。

2. 如何監控 Grafana 容器?

您可以使用 Prometheus 等監控軟體來監控您的 Grafana 容器,這將允許您透過跟蹤 CPU 使用率、記憶體利用率和網路使用率等不同指標來跟蹤容器的效能。您可以將其直接與 Grafana 整合以在儀表板上視覺化這些指標。

3. 在 Docker 中使用 Grafana 的最佳安全實踐是什麼?

您可以透過自定義 Grafana 配置來限制資料來源 URL 的 IP 地址/主機名。此外,您可以設定代理伺服器,以便所有請求都透過代理伺服器。

您還可以配置防火牆限制,以限制對可疑 Web 伺服器的網路請求。最重要的是,您可以在 Grafana 中停用匿名訪問,以便沒有使用者可以在未經身份驗證的情況下訪問檢視。

廣告