我最初是在默认的 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
,并使图表保持最新。