為 Graphite 的 Docker 安裝指定 rrd 文件

為 Graphite 的 Docker 安裝指定 rrd 文件

我最初在預設的 Stack Overflow 中問過這個問題,並建議我在這裡問這個問題:

這是我第一次嘗試 Docker 和 Graphite,所以我不完全確定這是 docker 問題還是 Graphite 問題(我猜是 Docker。)

我按照 docker 安裝說明使用指令安裝了 Graphite

docker run -d\
 --name graphite\
 --restart=always\
 -p 80:80\
 -p 2003-2004:2003-2004\
 -p 2023-2024:2023-2024\
 -p 8125:8125/udp\
 -p 8126:8126\
 graphiteapp/graphite-statsd

我可以訪問https://本地主機:80並查看一般石墨登錄頁面,但我完全不知道從這裡去哪裡。這安裝頁面顯示內容應該儲存在其中,但因為我是透過 Docker 安裝的,所以我的目錄/opt/graphite中顯然沒有任何內容。opt

有誰能夠找到一個好的教程或對從這裡開始有什麼建議嗎?

答案1

我最終自己解決了這個問題,但我很難找到,所以以防萬一其他人正在尋找解決方案。若要尋找 docker 檔案的位置,您可以依照下列步驟操作。

1. docker stop graphite
2. docker inspect graphite

Graphite 將 rrd 圖(以及所有其他圖)儲存在/opt/graphite/storage

在檢查語句中尋找可能類似以下的部分:

"Type": "volume",
"Name": "d78f944122a005cae1539d82a86fb93b6352371c3e0ca8a180ce0375da7f5310",
"Source": "/var/lib/docker/volumes/d78f944122a005cae1539d82a86fb93b6352371c3e0ca8a180ce0375da7f5310/_data",
"Destination": "/opt/graphite/storage",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""

這告訴我,如果我想要的話,/var/lib/docker/volumes/d78f944122a005cae1539d82a86fb93b6352371c3e0ca8a180ce0375da7f5310/_data我會找到它從哪裡提取圖形資料。

果然,目錄看起來像:carbon-aggregator-a.pid carbon-cache-a.pid graphite.db index lists log rrd whisper

然後,我只需將.rrd檔案放入 rrd 目錄中,然後就可以將它們與 Graphite 一起使用。保持它們最新的一種解決方案是將您的 rrd 目錄與您的 rrd 檔案通常儲存的位置進行符號連結。

之後不要忘記再次啟動石墨容器。

docker start graphite

答案2

對於想要像 rrd 檔案的符號鏈接之類的東西的人來說,問題是 Docker 似乎不支援符號鏈接,但您可以使用綁定卷:

docker run -d\
 --name graphite\
 --restart=always\
 -p 80:80\
 -p 2003-2004:2003-2004\
 -p 2023-2024:2023-2024\
 -p 8125:8125/udp\
 -p 8126:8126\
 --mount type=bind,source=/var/lib/collectd,target=/opt/graphite/storage/rrd/collectd \
 graphiteapp/graphite-statsd

感謝這個命令,我們將主機安裝/var/lib/collectd到 Docker/opt/graphite/storage/rrd/collectd並保持圖表最新。

相關內容