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

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

我按照网上的教程部署 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 条回复 时间 点赞

127.0.0.1 用不了吧?

看看 docker 的网络是啥?或者用 docker container 的 name 来标识。

1、influxdb 和 Grafana 是否在一个网段
2、在 docker 里面,互 ping 一下
3、访问的时候,不能用 127.0.0.1,你是两个 docker container,需要用 contaier id 或者 name 来

这个问题看起来像是 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 测量。

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

大海 回复

谢谢你 GPT4 侠

sir 回复

哈哈 弄弄 gpt 风

感谢大佬们的指教,开始也换了容器名去连接不行,进容器里互相能 ping 通就直接使用容器 IP 连接了。

也在 jmeter 添加后端监控,页面有数据了。再自己慢慢摸索一下😁

你用容器 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}

codes 回复

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

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

陈随想 回复

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

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