emqx-operator集群使用emqx-exporter报错,抓取不到监控数据

使用emqx-exporter插件对emqx集群进行监控,容器正常启动,但是看日志发现无法抓取相关指标


由于是k8s集群,按照提供的配置进行编辑,发现并没有这些启动参数


然后我参照官方https://github.com/emqx/emqx-exporter/blob/main/examples/kubernetes/resources/ 推荐方案配置:

依旧是不行,求救啊,各位大佬

你的 EMQX 是怎么部署的? 用 EMQX operator 部署的么?分享一下部署的 YAML

apiVersion: apps.emqx.io/v2beta1
kind: EMQX
metadata:
name: emqx
namespace: xxxxxx
spec:
image: emqx:5.1
config:
data: |
listeners.tcp.prod {
bind = “0.0.0.0:1884”
max_conn_rate = “2000/s”
messages_rate = “1000/s”
bytes_rate = “1000KB/s”
max_connections = 40000
acceptors = “64”
}
coreTemplate:
spec:
volumeClaimTemplates:
storageClassName: emqx-pvc
resources:
requests:
storage: 10Gi
accessModes:
- ReadWriteOnce
replicas: 3
resources:
requests:
memory: 512Mi
limits:
memory: 512Mi
podSecurityContext:
sysctls:
- name: net.core.somaxconn
value: “32768”
- name: net.ipv4.ip_local_port_range
value: “33000 65535”
nodeSelector:
emqx: core
replicantTemplate:
spec:
replicas: 1
resources:
requests:
memory: 1024Mi
limits:
memory: 1024Mi
podSecurityContext:
sysctls:
- name: net.core.somaxconn
value: “32768”
- name: net.ipv4.ip_local_port_range
value: “33000 65535”
nodeSelector:
emqx: slave
listenersServiceTemplate:
spec:
type: NodePort
dashboardServiceTemplate:
spec:
type: NodePort

请在 EMQX YAML 中添加 .spec.bootstrapAPIKeys,就像下面这样:

apiVersion: apps.emqx.io/v2beta1
kind: EMQX
metadata:
  name: emqx
spec:
  image: emqx:5
  bootstrapAPIKeys:
    - key: your_api_key
      secret: your_api_secret

这个配置只在 EMQX 启动的时候生效,所以你需要重新部署 EMQX

必须要重新部署EMQX么?目前有些业务已经正在使用中了。。。

使用 Prometheus+Grafana 监控 EMQX 集群 | EMQX Operator 文档

我在这篇参考中,上面是在EMQX新建一个api key和 api secret 然后emqx-exporter直接使用就可以了啊

那你需要登陆 EMQX Dashboard,手动创建一个 api key 和 api secret,并修改 emqx exporter 的配置,这样可以不重启 emqx

是的 我是这样操作的 但是就是不行 exporter无法与emqx通讯

你试试用你的 api key 自己构建一个 http 请求可以么?类似于 curl -u $user:$passwd $emqx-dashboard:18083/api/v5/nodes

我先尝试重新建立个api然后刷新配置试试看吧


我这边经过尝试,目前已经对接了grafana和prometheus了

针对emqx的域名监控,使用基本的验证username和passwor,采用api key和api secret也是可以的吧

可以的

经过尝试,使用:
curl -u plaxxxxxx:fT2eYxxxxxxxxxx https://iot.xxxxxx.cn 直接访问ingress绑定的emqx-listeners svc下 返回是502

502 Bad Gateway

502 Bad Gateway


nginx

补充:使用新创建的api密钥对也是这样

EMQX operator 创建的 EMQX 有两个 service,分别是 emqx-dashboard 和 emqx-listeners,emqx-listeners 没有 18083 端口

谢谢 已经可以了 :grin: