Graphite 是一種免費的開源監控工具,用於實時存儲數字時間序列數據及其圖形。
Graphite 本身不會收集數據,而是從其他工具接收數據。 一旦 Graphite 接收到數據,它就可以在 webapp 中創建圖形。
在本教程中,我們將學習如何 安裝石墨 和 石墨網 在 Ubuntu 20.04 上使用 碼頭工人. 運行 Graphite 實例的最簡單方法是使用 docker。
石墨如何工作?
Graphite 架構的概述表明它由三個軟件組件組成:
- 碳:被動監聽時間序列數據以進行數據收集的 Twisted 守護進程。
- 耳語:用於存儲時間序列數據的簡單數據庫庫
- 石墨網絡應用程序: Django WebApp,它使用開羅按需呈現圖形。
應用程序將數據發送到 Graphite 的處理後端 Carbon,後者將數據存儲在 Graphite 的數據庫 Whisper 中。 然後,可以通過 Graphite Web 界面 Graphite Web App 查看數據。
步驟 1:在 Ubuntu 上安裝 Docker
首先,我們將在 Ubuntu 上安裝 Docker。 使用 Docker,您可以在幾秒鐘內運行 Grapgiue。
要安裝 docker,您需要安裝一些先決條件:
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
現在讓我們添加 docker 存儲庫的 GP 密鑰:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
現在將 Docker 添加到 APT 源。 它會自動更新緩存。
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
現在使用以下命令安裝 docker:
$ sudo apt install docker-ce
將用戶加入docker組,這樣他就可以使用docker命令了 sudo 特權:
$ sudo usermod -aG docker username
然後退出並重新登錄以使操作生效
第 2 步:使用 docker 運行石墨
用docker運行graphite非常快。 這次它將需要一些其他組件,而不是我們之前看到的默認組件:
- nginx:反向代理石墨儀表板
- 石墨: 前端儀錶盤
- 碳: 後台
- 統計數據: 基於UDP的後端代理
您還需要檢查石墨所需的不同端口是否可用。 此外,在此過程中,主機和容器之間將進行端口映射,因此如果它不適合您的實際配置,您可以更改一些映射配置。 您可以了解更多關於 石墨的官方 Github 回購.
主持人 | 容器 | 服務 |
80 | 80 | nginx |
2003年 | 2003年 | 碳接收器 – 明文 |
2004年 | 2004年 | 碳接收器 – 泡菜 |
2023 | 2023 | 碳聚合器 – 明文 |
2024 | 2024 | 碳聚合器-泡菜 |
8080 | 8080 | Graphite 內部 gunicorn 端口(無 Nginx 代理)。 |
8125 | 8125 | 統計數據 |
8126 | 8126 | 統計數據 admin |
運行 nginx docker
在我們的例子中,我們將運行一個獨立的容器作為我們的 Nginx 反向代理。
$ docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/nginx/htpasswd:/etc/nginx/htpasswd -v /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro -v /etc/nginx/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro etopian/nginx-proxy
當您集成證書時,它將幫助我們將所有默認 HTTP 流量重定向到 HTTPS。 您應該注意到映射卷以集成您的證書 /etc/nginx/certs
現在在防火牆上打開端口 80 和 443:
$ sudo ufw allow 80,443/tcp
第 3 步:Graphite – 將您的 SSL 證書集成到 nginx
我們認為您已經擁有 SSL 證書。 您必須在 Nginx 中為這種情況配置的映射卷中復制它。 我們將我們的密鑰和證書命名如下:
- 域名.com.crt
- 域名.com.key
我們將復制映射卷中的兩個文件。 複製證書
$ cp websitefortesting.com.crt /etc/nginx/certs
複製密鑰
$ cp websitefortesting.com.key /etc/nginx/certs
潤石墨
要運行石墨,我們還將使用帶有一些選項的 docker run 命令。 在我們的例子中,我們將使用參數指示我們服務的域名 -e VIRTUAL_HOST=domain.com
啟動時
$ docker run -d
--name graphite
--restart=always
-e VIRTUAL_HOST=websitefortesting.com
-p 2003-2004:2003-2004
-p 2023-2024:2023-2024
-p 8125:8125/udp
-p 8126:8126
graphiteapp/graphite-statsd
如您所見,無需映射 Nginx 的 80 端口,因為它已經在運行。 現在嘗試通過 URL 訪問石墨 https://domain.com
你可以看看statsd。

Graphite的默認登錄用戶名是root,使用root密碼登錄。

您應該更改 root 配置文件的默認密碼以使其更安全,方法是使用 at https://domain.com/admin/password_change/

您可以使用新密碼訪問它。
結論
在本教程中,我們學習瞭如何使用 docker 在 Ubuntu 20.04 上運行石墨。 您現在可以輕鬆監控數字時間序列數據並繪製圖形。