
emqx/emqx-exporteremqx-exporter 用于暴露 EMQX Prometheus API 未包含的部分指标,补充 EMQX 监控能力。该工具兼容 EMQX 4.4 与 EMQX 5 版本(包括开源版和企业版),支持与 Prometheus、Grafana 集成,构建完整的 EMQX 监控面板。
适用于需要全面监控 EMQX 集群状态的场景,特别是:
EMQX 访问权限
emqx-exporter 需要通过 EMQX Dashboard API 访问集群数据,需使用 Basic Auth 认证,因此需在 EMQX Dashboard 中创建 API 密钥。不同版本的 EMQX 创建方式存在差异:
EMQX 5
创建 API 密钥(路径:Dashboard → 系统设置 → API 密钥)。
EMQX 4.4
创建新 用户(非 应用),并确保用户具备访问 API 的权限。
插件启用
所有 EMQX 节点需启用 emqx_prometheus 插件,可通过 Dashboard 插件页面(http://<集群地址>:***/#/plugins)逐一检查。
bashdocker run -d \ --name emqx-exporter \ -p 8085:8085 \ -v $(pwd)/config.yml:/etc/emqx-exporter/config.yml \ emqx/emqx-exporter \ --config.file=/etc/emqx-exporter/config.yml
创建 docker-compose.yml:
yamlversion: '3' services: emqx-exporter: image: emqx/emqx-exporter ports: - "8085:8085" volumes: - ./config.yml:/etc/emqx-exporter/config.yml command: --config.file=/etc/emqx-exporter/config.yml restart: always environment: - TZ=Asia/Shanghai
启动服务:
bashdocker-compose up -d
参考 官方示例,通过 Deployment 和 Service 资源部署,需配置环境变量或 ConfigMap 挂载配置文件。
emqx-exporter 支持通过配置文件定义监控目标和探针,默认监听 HTTP 端口 8085。配置文件示例:
yamlmetrics: target: 127.0.0.1:*** # EMQX Dashboard API 地址 api_key: "your_api_key" # API 密钥(EMQX 5)或用户名(EMQX 4.4) api_secret: "your_secret" # API 密钥密钥(EMQX 5)或密码(EMQX 4.4) probes: - target: 127.0.0.1:1883 # 待探测的 EMQX 服务端口(如 MQTT 端口)
metrics:指标采集配置(可选),未配置则禁用指标功能
target:EMQX Dashboard 地址(格式:IP:端口)api_key:访问 Dashboard API 的认证密钥/用户名api_secret:访问 Dashboard API 的密钥/密码probes:端口探针配置(可选列表),未配置则禁用探针功能
target:待探测的目标端口(格式:IP:端口)Prometheus 需配置三个抓取任务,分别采集 EMQX 原生指标、exporter 指标及探针指标。配置示例:
yamlscrape_configs: # 1. EMQX 原生指标(EMQX 5) - job_name: 'emqx-self-metrics' metrics_path: /api/v5/prometheus/stats scrape_interval: 5s honor_labels: true static_configs: - targets: [<EMQX节点地址>:***] # 所有 EMQX 节点地址列表 labels: cluster: <集群名称> # 集群标识标签 from: emqx # 固定标签,不可修改 # 2. Exporter 补充指标 - job_name: 'exporter-metrics' metrics_path: /metrics scrape_interval: 5s static_configs: - targets: [<exporter地址>:8085] # emqx-exporter 地址 labels: cluster: <集群名称> from: exporter # 固定标签,不可修改 # 3. Exporter 探针指标 - job_name: 'exporter-probe' metrics_path: /probe params: target: [<探针目标>] # 需与配置文件中 probes[*].target 一致 scrape_interval: 5s static_configs: - targets: [<exporter地址>:8085] labels: cluster: <集群名称> from: exporter
导入仪表板模板
下载 仪表板模板 中的 JSON 文件,通过 Grafana 导入(路径:Dashboards → Import → 上传 JSON 文件)。
查看监控面板
导入后可在 Grafana 中查看名为 EMQX 的仪表板,包含完整的指标可视化图表。
关于仪表板导入的详细操作,参考 Grafana 官方文档。
emqx-exporter 支持通过 Web 配置文件启用 TLS,配置示例:
web-config.yml:yamltls_server_config: cert_file: /path/to/cert.pem key_file: /path/to/key.pem
bash./emqx-exporter --web.config.file=web-config.yml
详细配置说明参考 exporter-toolkit HTTPS 文档。
仪表板指标的详细解释可参考 仪表板模板说明文档。
!架构图
emqx-exporter 通过访问 EMQX Dashboard API 采集补充指标,并提供探针功能监控服务端口,最终将数据暴露给 Prometheus,结合 Grafana 实现可视化监控。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务