文章目录
官方文档 & 接口注意事项
## 官方文档
https://www.emqx.com/zh/blog/emqx-prometheus-grafana # 没啥亮点
https://docs.emqx.com/zh/emqx/latest/observability/prometheus.html
## EMQX 与 Prometheus 集成的方式有两种
Pull 模式: Prometheus 直接通过 EMQX 的 REST API 采集指标
Push 模式: EMQX 推送指标到 Pushgateway 服务,再由 Prometheus 从 Pushgateway 服务中采集指标。
## EMQX Pull 模式提供以下 REST API 供 Prometheus 采集系统指标
/api/v5/prometheus/stats # EMQX 的基础指标及计数器
/api/v5/prometheus/auth # 包含访问控制中认证和鉴权的关键指标及计数器
/api/v5/prometheus/data_integration # 包含规则引擎,连接器,动作,Sink/Source,编解码相关指标及计数器
# 上述接口,还支持使用URL查询参数mode来获取不同模式(单节点|集群聚合|集群非聚合)
mode=node # 单节点模式,默认模式
mode=all_nodes_aggregated # 集群聚合模式,聚合集群指标
mode=all_nodes_unaggregated # 集群非聚合模式,
## Tips: 上述三个API接口,默认都是没有鉴权的,说是可以开启基本认证,也没说怎么开,建议用防火墙封堵吧
## 可以用curl 进行数据获取测试(你会发现确实没鉴权)
curl -k http://192.168.60.81:18083/api/v5/prometheus/stats
curl -k http://192.168.60.81:18083/api/v5/prometheus/stats?mode=all_nodes_aggregated
Prometheus Pull EMQX-集群监控
场景A:若是HTTP方式
## 假设您的监控地址格式如下
curl -k http://192.168.60.81:18083/api/v5/prometheus/stats
curl -k http://192.168.60.81:18083/api/v5/prometheus/stats?mode=all_nodes_aggregated
## Prometheus 配置如下
- job_name: 'emqx_stats'
scrape_interval: 15s
static_configs:
- targets: ['192.168.60.81:18083']
metrics_path: '/api/v5/prometheus/stats'
params:
mode: ['all_nodes_aggregated']
scheme: 'http'
# basic_auth:
# username: ''
# password: ''
- job_name: 'emqx_auth'
scrape_interval: 15s
static_configs:
- targets: ['192.168.60.81:18083']
metrics_path: '/api/v5/prometheus/auth'
params:
mode: ['all_nodes_aggregated']
scheme: 'http'
- job_name: 'emqx_data_integration'
scrape_interval: 15s
static_configs:
- targets: ['192.168.60.82:18083']
metrics_path: '/api/v5/prometheus/data_integration'
params:
mode: ['all_nodes_aggregated']
scheme: 'http'
场景B:若是HTTPS方式(自签证书方式)
## 假设您的监控地址格式如下
curl -k https://192.168.60.81:18084/api/v5/prometheus/stats
curl -k https://192.168.60.81:18084/api/v5/prometheus/stats?mode=all_nodes_aggregated
## Prometheus 配置如下
- job_name: 'emqx_stats'
scrape_interval: 15s
static_configs:
- targets: ['192.168.60.81:18084']
metrics_path: '/api/v5/prometheus/stats'
params:
mode: ['all_nodes_aggregated']
scheme: 'https'
# basic_auth:
# username: ''
# password: ''
tls_config:
insecure_skip_verify: true # 如果你的证书不是可信 CA 签发的,需要加上这行
- job_name: 'emqx_auth'
scrape_interval: 15s
static_configs:
- targets: ['192.168.60.81:18084']
metrics_path: '/api/v5/prometheus/auth'
params:
mode: ['all_nodes_aggregated']
scheme: 'https'
# basic_auth:
# username: ''
# password: ''
tls_config:
insecure_skip_verify: true
- job_name: 'emqx_data_integration'
scrape_interval: 15s
static_configs:
- targets: ['192.168.60.81:18084']
metrics_path: '/api/v5/prometheus/data_integration'
params:
mode: ['all_nodes_aggregated']
scheme: 'https'
# basic_auth:
# username: ''
# password: ''
tls_config:
insecure_skip_verify: true
Grafana部分(待续)
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论