性能测试工具 怎么部署性能监控平台,大佬指定一下

真的不知道晚上吃什么 · 2023年10月31日 · 最后由 真的不知道晚上吃什么 回复于 2023年11月03日 · 5893 次阅读

我按照网上的教程部署 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 了

共收到 13 条回复 时间 点赞
陈随想 回复

docker-compose 只能启动一个服务,我试试加入同一个网络吧

你连不上是因为你两个容器都没在同一个网络。否则不可能连不上。你现在妥协用这个 ip,等你下回呢,继续妥协?
两个办法,一是让已有容器加入同一个网络
docker network list
//重新根据镜像 run 过程中加入参数指定网络
--network=my-network
//创建一个网络名字叫 haha
docker network create haha
//让已有的容器加入
docker network connect haha 4b7017ae794f
二是重新用 docker compose,两个容器写在同一个 yml 文件里执行 docker compose

codes 回复

主要是我用服务名连接失败,连不上,没办法才用的 ip

你用容器 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 添加后端监控,页面有数据了。再自己慢慢摸索一下😁

沫沫sir 回复

哈哈 弄弄 gpt 风

大海 回复

谢谢你 GPT4 侠

你这肯定不行啊
//特别注意:grafana 的 influxdb url 配置应为
http://influxdb1.8:8086
//不能写 localhost!!!也不能写 id 地址!!!容器之间互相通信直接用容器名字!!!

这个问题看起来像是 Grafana 无法连接到 InfluxDB 的问题。这可能有几个原因:

  1. InfluxDB 可能还没有运行或者已经停止运行。你可以检查 Docker 容器的状态,确保 InfluxDB 正在运行。
  2. InfluxDB 可能没有监听正确的网络接口。默认情况下,InfluxDB 在本地环回地址 (127.0.0.1) 上监听。如果你想要从其他容器或主机访问它,你需要配置 InfluxDB 监听所有的网络接口 (0.0.0.0)。
  3. 如果你的网络设置有问题,也可能会出现这种错误。例如,如果两个容器不在同一个 Docker 网络中,那么它们就无法直接相互通信。你可以检查 Docker 网络的设置,确保两个容器可以在一个网络中通信。

首先,你可以尝试确认 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:8086http://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 来标识。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册