
もともとデフォルトの 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://localhost:80一般的なグラファイトのログインページを見ましたが、ここからどこに行けばいいのか全くわかりません。インストールページに保存する必要があることを示しています/opt/graphite
が、Docker 経由でインストールしているため、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 で使用できるようになります。ファイルを最新の状態に保つための 1 つの解決策は、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
、グラフを最新の状態に維持できます。