Emqx RabbitMQ 集成环境
version: '3'
services:
emqx:
image: emqx/emqx:latest
environment:
- EMQX_DASHBOARD__DEFAULT_USER=admin
- EMQX_DASHBOARD__DEFAULT_PASSWORD=pwd
- EMQX_LISTENER__TCP__EXTERNAL=1883
- EMQX_LISTENER__WS__EXTERNAL=8083
ports:
- "18083:18083"
- "1883:1883"
- "8083:8083"
networks:
- mqtt_mq-net
rabbitmq:
image: rabbitmq:3-management
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=pwd
ports:
- "15672:15672"
- "5672:5672"
networks:
- mqtt_mq-net
networks:
mqtt_mq-net:
driver: bridge
RabbitMQ 中启用 rabbitmq_prometheus 插件, 用于收集指标
在 Docker 中启用 RabbitMQ 的 Prometheus 插件稍微有些不同,因为需要在容器化环境中进行配置。以下是详细步骤:
- 拉取 RabbitMQ 镜像:
首先,需要从 Docker Hub 拉取包含 Prometheus 插件的 RabbitMQ 官方镜像。通常,官方镜像已经包含了 Prometheus 插件。
docker pull rabbitmq:management
management
标签包括 RabbitMQ 管理插件和其他常用插件。
- 运行 RabbitMQ 容器:
使用 Docker 启动 RabbitMQ 容器,并启用 Prometheus 插件。可以在启动时通过环境变量配置端口。
docker run -d --name rabbitmq \
-p 15692:15692 \
-p 15672:15672 \
-p 5672:5672 \
-e RABBITMQ_PROMETHEUS_PORT=15692 \
rabbitmq:management
在这个命令中:
-p 15692:15692
将 Prometheus 指标暴露在主机的 15692 端口。-p 15672:15672
将 RabbitMQ 管理界面暴露在主机的 15672 端口。-p 5672:5672
将 AMQP 端口暴露在主机上。-e RABBITMQ_PROMETHEUS_PORT=15692
用于设置 Prometheus 插件的端口。
- 启用 Prometheus 插件:
进入容器并启用插件。可以使用以下命令进入容器的 shell:
docker exec -it rabbitmq bash
然后在容器内部启用 Prometheus 插件:
rabbitmq-plugins enable rabbitmq_prometheus
- 验证设置:
退出容器,并在主机上通过访问http://localhost:15692/metrics
来验证 Prometheus 指标是否已成功暴露。可以使用浏览器或curl
命令:
curl http://localhost:15692/metrics
- 配置 Prometheus:
在 Prometheus 的配置文件prometheus.yml
中,添加 RabbitMQ 实例作为一个新的 job:
scrape_configs:
- job_name: 'rabbitmq'
static_configs:
- targets: ['localhost:15692']
记得根据实际情况调整 localhost
为合适的地址。
- 重启 Prometheus:
修改 Prometheus 配置文件后,重启 Prometheus 服务以加载新的配置。
通过这些步骤,可以在 Docker 中成功启用 RabbitMQ 的 Prometheus 插件。如果需要对 RabbitMQ 进行更多的配置,可以在启动容器时挂载配置文件,或者通过环境变量进行调整。