EMQX 可观测性最佳实践
EMQX 介绍
EMQX 是一款开源、高度可伸缩、高可用的分布式 MQTT 消息服务器,同时也支持 CoAP/LwM2M 等一站式 IoT 协议接入。以下是 EMQX 的一些主要特点和功能:
海量连接与高并发:EMQX 能够处理千万级别的并发客户端,支持大规模分布式架构,具有高可用集群架构和弹性伸缩部署。
多协议支持:EMQX 完整支持 MQTT V5.0 协议规范,并向下兼容 MQTT V3.1 和 V3.1.1。此外,它还可以扩展支持 MQTT-SN、CoAP、LwM2M、WebSocket、STOMP 或私有 TCP 等多种物联网协议。
规则引擎与数据集成:EMQX 内置强大的规则引擎,可以进行数据提取、过滤与转换,并灵活集成 SQL、NoSQL、时序数据库以及 Kafka 等流处理中间件。
边缘到云端的部署:EMQX 支持从资源受限的边缘计算设备到私有云、混合云和公共云的部署,包括物理机、VM、容器/K8S 跨平台任意部署。
完全开源:EMQX 基于 Apache Version 2.0 开源协议,支持开源免费使用,适用于产品原型设计、物联网创业公司以及大规模的商业部署。
安全性:EMQX 提供端到端数据加密(支持国密)、细粒度访问控制,保障数据安全,满足企业合规需求。
易运维:EMQX 提供图形化配置、操作与管理,实时监测运行状态,并支持 MQTT 跟踪进行端到端问题分析。
云原生支持:EMQX 支持通过 Kubernetes Operator 和 Terraform 在企业内部和公共云中进行部署。
产品线:EMQX 提供多种产品,包括 EMQX Broker(开源版)、EMQX Enterprise(企业版)和 EMQX Platform(平台版),以满足不同规模和需求的 IoT 网络和应用。
功能列表:EMQX 支持完整的 MQTT V3.1/V3.1.1 及 V5.0 协议规范,QoS0, QoS1, QoS2 消息支持,持久会话与离线消息支持,Retained 消息支持,Last Will 消息支持,TCP/SSL 连接支持,MQTT/WebSocket/SSL 支持,HTTP 消息发布接口支持等。
EMQX 作为物联网应用开发和物联网平台搭建的基础设施软件,主要在边缘和云端实现物联网设备互联与设备上云,提供物联网设备接入、协议处理、消息路由、数据存储、流数据处理等核心能力。
观测云
观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。
安装 DataKit
DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。
登录观测云控制台,在 集成 -> DataKit 选择对应安装方式,当前采用 Linux 主机部署 DataKit。
采集 EMQX 指标
EMQX 默认暴露指标端口为:18083
,可通过浏览器查看指标相关信息:http://clientIP:18083/api/v5/prometheus/stats
。
由于 EMQX
能够直接暴露 metrics url
,所以可以直接通过 prom
采集器进行采集。进入 DataKit 安装目录 /usr/local/datakit/conf.d
,复制 prom
目录下的配置文件并命名为 emqx.conf
。 示例如下:
调整内容如下:
调整文档以上参数。
重启 DataKit
关键指标
统计(Statistics)
消息 (PUBLISH 报文)
字节 (Bytes)
报文 (Packets)
视图
登录观测云控制台,点击「场景」 -「新建仪表板」,输入 “EMQX”, 选择 “EMQX 监控视图”,点击 “确定” 即可添加视图。
监控器
EMQX 节点消息丢弃速率过高
如果消息丢弃数量突然增加,可能表明系统过载,设置告警。
EMQX 报文请求存在错误
总结
通过将 EMQX 指标数据接入到观测云,可以让用户更好地理解和控制 EMQX 集群的行为,从而提高系统的可靠性和效率。
评论