通过 Kafka Web UI 更加便利地管理 Kafka/AutoMQ 集群
随着大数据技术的飞速发展,Kafka 作为一种高吞吐量、低延迟的分布式消息系统,已经成为企业实时数据处理的核心组件。然而,Kafka 集群的管理和监控却并非易事。传统的命令行工具和脚本虽然功能强大,但对于开发者和运维人员来说,操作复杂且不直观。为了解决这些问题,Kafka Web UI 应运而生,为用户提供了一种更加便利和高效的 Kafka 集群管理方式。Apache Kafka 经过十多年的发展,在业内积累了非常丰富的生态。AutoMQ 作为 Apache Kafka 的继任者,由于其对 Kafka 的完全兼容,可以充分利用其生态中的产品。AutoMQ 企业版已经提供了非常强大的控制面能力。如果你使用的是 AutoMQ 也可以使用像 Kafdrop 、Redpanda Console [1] 等这样的产品来管理 AutoMQ 集群。今天分享的内容是如何通过 Redpanda Console [1] 对 AutoMQ 集群状态进行监控,以提高系统的可维护性和稳定性。
集成 AutoMQ 与 Redpanda Console
Redpanda Console 是由 Redpanda [2] 提供的 Kafka Web UI 界面,用于监控和管理 Redpanda 或 Kafka 集群。它提供了一个直观的用户界面,通过这个界面,用户可以轻松地查看集群状态、监控性能指标、以及管理主题和分区等。这个控制台旨在简化数据流系统的日常操作,让用户能够更有效地维护和监控他们的集群。得益于 AutoMQ 对 Kafka 的完全兼容,因此可以无缝与 Redpanda Console 进行集成。通过利用 Redpanda Console ,AutoMQ 用户也可以享受到直观的用户界面,实时监控 AutoMQ 集群状态,包括主题、分区、消费者组及其偏移量等关键元数据。这种监控能力不仅提高了问题诊断的效率,还有助于优化集群性能和资源利用率。这篇教程会教你如何启动 Redpanda Console 服务,并将其与 AutoMQ 集群搭配起来使用,实现集群状态的监控和管理。
Redpanda Console 官方示例
01
前置条件
部署 AutoMQ 集群
准备 Redpanda Console 环境
部署 AutoMQ 集群
请参考 AutoMQ 官方文档:集群方式部署 | AutoMQ [3]。
部署 Redpanda Console
部署 Redpanda Console 有两种方式,包括 Docker 部署以及发行版部署,其中 Docker 部署较为简单,如果你想简单快速的体验 AutoMQ 与 Redpanda Console 的集成,建议选择 Docker 方式进行部署。如果你有特别的需要,如登录验证、SASL 认证、TLS 配置以及日志级别等设置,可以根据发行版方式自行部署。下面我将分别介绍两种配置方法。
Docker 部署
Redpanda Console 可通过 Docker 部署,参考 Quick Start [4]。上述过程中,搭建 AutoMQ 集群之后,我们已经知道了所有的 Broker 节点监听的地址和端口,因此我们可以通过指定 Docker 启动命令中的 KAFKA_BROKERS 参数,将 Redpanda Console 与 AutoMQ 集群建立起关联关系。Docker 启动容器命令如下:
docker run -p 8080:8080 -e KAFKA_BROKERS=192.168.0.4:9092,192.168.0.5:9092,192.168.0.6:9092 docker.redpanda.com/redpandadata/console:latest
-p 8080:8080:指定 Redpanda Console 的服务访问映射端口。
KAFKA_BROKERS:需要指定为你自己的 AutoMQ 集群的 Broker 地址。
发行版部署
你需要在 Redpanda Console 的 Github Releases 页:Release Redpanda Console [5],选择适合的版本进行下载并解压到指定文件夹,如 /opt。操作命令如下:
# ubuntu Linux
cd /opt
sudo curl -L -o redpanda_console.tar.gz https://github.com/redpanda-data/console/releases/download/v2.6.0/redpanda_console_2.6.0_linux_amd64.tar.gz
# unzip, get redpanda_console
sudo tar -xzf redpanda_console.tar.gz
# config set
sudo mkdir -p /etc/redpanda
# write config
sudo vim /etc/redpanda/redpanda-console-config.yaml
redpanda-console-config.yaml配置文件的内容示例如下:
kafka:
#Brokers is a list of bootstrap servers with
#port (for example "localhost:9092").
brokers:
- broker-0.mycompany.com:19092
- broker-1.mycompany.com:19092
- broker-2.mycompany.com:19092
注意:请确保您当前安装 Redpanda Console 所在的服务器能够访问到配置文件中 Broker 节点所在的服务器。
关于更多详细的设置,可以参考官方文档:Redpanda Console Configuration [6]。配置完成后,需要设置环境变量,使得 Redpanda Console 执行文件能获取配置文件信息,并启动 Redpanda Console:
# set env
export CONFIG_FILEPATH="/etc/redpanda/redpanda-console-config.yaml"
# /opt/ run console
./redpanda-console
你将会得到如下结果:
./redpanda-console
{"level":"info","ts":"2024-07-10T09:52:52.958+0800","msg":"started Redpanda Console","version":"2.6.0","built_at":"1717083695"}
{"level":"info","ts":"2024-07-10T09:52:52.963+0800","msg":"connecting to Kafka seed brokers, trying to fetch cluster metadata"}
{"level":"info","ts":"2024-07-10T09:52:54.780+0800","msg":"successfully connected to kafka cluster","advertised_broker_count":1,"topic_count":2,"controller_id":0,"kafka_version":"at least v3.6"}
{"level":"info","ts":"2024-07-10T09:53:05.620+0800","msg":"Server listening on address","address":"[::]:8080","port":8080}
02
访问控制台页面
在完成上述的部署操作后,即可通过在浏览器中输入地址(例如:http://{console_ip}:8080)访问控制台服务。展示效果如下所示:
集群总览
集群总览页面为用户提供了一个宏观的视角,展示了 AutoMQ 集群的核心信息。包括但不限于:
集群运行状态:显示当前集群的健康状况,帮助用户快速识别问题。
存储占用:展示了集群中的数据存储使用情况,便于用户进行存储管理和规划。
版本信息:显示当前 AutoMQ 集群运行的版本,方便跟踪和升级。
在线 Broker 数量:实时显示在线的 Broker 数量,关键指标之一。
Topics 和 Replicas 数量:提供 Topics 和 Replicas 的数量信息,帮助用户了解集群的规模和数据复制情况。
监控集群状态对于确保消息队列系统的稳定性和性能至关重要。通过实时监控集群的运行状态、存储占用、版本信息、在线 Broker 数量以及 Topics 和 Replicas 的数量,运维人员可以快速识别并解决潜在问题,防止系统故障影响业务运行。同时,这些指标有助于进行容量规划和资源管理,确保系统能够应对未来的数据增长。此外,了解集群的版本信息还可以帮助用户及时进行软件升级,利用最新的功能和安全修复,整体提升系统的可靠性和效率。
Topic 总览
在 Topic 列表页面,用户可以看到当前 AutoMQ 集群中所有 Topic 的列表,包括每个 Topic 的关键信息,如分区数、副本策略等。用户可以通过这个页面快速浏览和管理 Topic。
Topic 详情
点击特定的 Topic 后,用户将进入到该 Topic 的详细页面,在这里可以深入了解和操作:
消息列表:浏览和搜索 Topic 中的消息,对于消息的追踪和调试非常有用。
消费者信息:显示当前订阅该 Topic 的消费者和消费者组信息,便于监控消费情况。
分区状态:展示每个分区的详细信息,包括 Leader、ISR 等关键指标。
配置信息:列出 Topic 的配置信息,支持修改以优化性能或行为。
ACL(访问控制列表):管理对 Topic 的访问权限,确保数据安全。
此外,Redpanda Console 还支持用户手动创建和发布消息,这对于测试或特定场景下的消息注入非常有价值。
监控 Topic 详情信息可以让我们深入了解消息队列的运行状况,通过浏览消息列表进行追踪和调试,查看消费者信息监控消费情况,了解分区状态确保数据分布和高可用性,管理配置信息优化性能,以及设置访问控制保障数据安全。这些功能有助于及时识别和解决问题,提高系统的整体效率和可靠性。
03
总结
本文介绍了 Redpanda Console 与 AutoMQ 集成的过程,展示了如何通过这一强大工具简化和增强 AutoMQ 集群的管理。希望这篇文章能够为追求提高消息队列管理效率和功能的用户提供实用的参考。
引用
[1] Redpanda Console: https://redpanda.com/redpanda-console-kafka-ui
[2] Redpanda: https://redpanda.com/
[3] 集群方式部署 AutoMQ: https://docs.automq.com/zh/docs/automq-opensource/IyXrw3lHriVPdQkQLDvcPGQdnNh
[4] Quick Start: https://github.com/redpanda-data/console?tab=readme-ov-file#quick-start
[5] Release Redpanda Console: https://github.com/redpanda-data/console/releases/tag/v2.6.0
[6] Redpanda Console Configuration: https://docs.redpanda.com/current/reference/console/config/#example-redpanda-console-configuration-file
[7] Kafdrop Github: https://github.com/obsidiandynamics/kafdrop
END
关于我们
我们是来自 Apache RocketMQ 和 Linux LVS 项目的核心团队,曾经见证并应对过消息队列基础设施在大型互联网公司和云计算公司的挑战。现在我们基于对象存储优先、存算分离、多云原生等技术理念,重新设计并实现了 Apache Kafka 和 Apache RocketMQ,带来高达 10 倍的成本优势和百倍的弹性效率提升。
🌟 GitHub 地址:https://github.com/AutoMQ/automq
💻 官网:https://www.automq.com?utm_source=openwrite