我按照网上的教程部署 influxdb + jmeter +Grafana 监控平台
系统是 Ubuntu,在 docker 里面部署的 influxdb 、grafana
但是在 Grafana 配置 InfluxDB 相关数据的时候报错了 Get "http://127.0.0.1:8086/querydb=jmeter&epoch=ms&q=SHOW+measurements":? dial tcp 127.0.0.1:8086: connect: connection refused error reading influxDB
已经在 influxdb 创建了数据库 jmeter 了
你连不上是因为你两个容器都没在同一个网络。否则不可能连不上。你现在妥协用这个 ip,等你下回呢,继续妥协?
两个办法,一是让已有容器加入同一个网络
docker network list
//重新根据镜像 run 过程中加入参数指定网络
--network=my-network
//创建一个网络名字叫 haha
docker network create haha
//让已有的容器加入
docker network connect haha 4b7017ae794f
二是重新用 docker compose,两个容器写在同一个 yml 文件里执行 docker compose
你用容器 IP 有问题 你现在 OK 下次重启了 IP 可能变了 ,要是用 compose 你直接用服务名 ,要是用的原生的 docker 可以用 link ,link 不推荐使用哈
比如 我 codes ,用 link 连 codes_redis_server 和 codes_mysql_server 这两个是我在启 mysql 和 redis 时,--name 指定的容器名 ,然后 WEB 中用这个名来 linker , 配置文件中就用这个 Link 名,
docker run -d --name codes_web_server -p 0.0.0.0:${conf_port}:8032 -p 8064:8064 -p 8063:8063 --link codes_mysql_server:codes_mysql_server --link codes_redis_server:codes_redis_server registry.cn-zhangjiakou.aliyuncs.com/codes_work/codes_serve:${version}
感谢大佬们的指教,开始也换了容器名去连接不行,进容器里互相能 ping 通就直接使用容器 IP 连接了。
也在 jmeter 添加后端监控,页面有数据了。再自己慢慢摸索一下
你这肯定不行啊
//特别注意:grafana 的 influxdb url 配置应为
http://influxdb1.8:8086
//不能写 localhost!!!也不能写 id 地址!!!容器之间互相通信直接用容器名字!!!
这个问题看起来像是 Grafana 无法连接到 InfluxDB 的问题。这可能有几个原因:
首先,你可以尝试确认 InfluxDB 服务是否正在运行。你可以通过在你的终端中运行以下命令来检查:
sudo service influxdb status
如果 InfluxDB 服务没有运行,你可以通过运行以下命令来启动它:
sudo systemctl start influxdb
如果你确认 InfluxDB 服务正在运行,但是仍然无法连接,那么你可能需要检查你的 JMeter 和 Grafana 容器的网络配置。你可以在你的 Docker 容器中运行以下命令来查看他们的网络端口:
sudo docker ps -a | grep -i influxdb
sudo docker ps -a | grep -i grafana
这些命令将显示你的 InfluxDB 和 Grafana 容器的网络端口。然后,你可以将这些端口转发到你的主机的端口,以便你的 JMeter 容器可以访问它们。你可以通过运行以下命令来转发 InfluxDB 的 8086 端口:
sudo docker port influxdb 8086
sudo docker port influxdb 8086 -p 8086:8086
然后,你可以将 Grafana 的 80 端口转发到你的主机的 80 端口:
sudo docker port grafana 80
sudo docker port grafana 80 -p 80:80
最后,你可以通过运行以下命令来确认这些端口转发是否成功:
sudo docker port influxdb
sudo docker port grafana
如果这些端口转发成功,你应该能够在你的主机上通过http://localhost:8086
和http://localhost:80
访问 InfluxDB 和 Grafana,然后你应该能够在 Grafana 中使用这些 URL 来显示你的 JMeter 测量。
1、influxdb 和 Grafana 是否在一个网段
2、在 docker 里面,互 ping 一下
3、访问的时候,不能用 127.0.0.1,你是两个 docker container,需要用 contaier id 或者 name 来
127.0.0.1 用不了吧?
看看 docker 的网络是啥?或者用 docker container 的 name 来标识。