为 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,并使图表保持最新。

相关内容