当前位置: 首页 > news >正文

openEuler2403安装部署Kafbat

文章目录

  • openEuler2403安装部署Kafka with KRaft
  • 一、前言
    • 1.简介
    • 2.环境
  • 二、正文
    • 1.基础环境
      • 1)关闭防火墙
      • 2)安装Kafka集群
      • 3)Kafka启动JMX
      • 4)Docker安装(可选)
      • 5)安装JDK21(可选)
      • 6)创建目录
    • 2.Kafbat UI安装
      • 1)JAR包启动
      • 2)Docker启动
      • (1)运行kafka-ui的DEMO
      • (2)docker配置文件启动

openEuler2403安装部署Kafka with KRaft

一、前言

1.简介

Kafbat UI 是一款多功能、高效、轻量级且灵活的 Web 界面工具,专为监控和管理 Apache Kafka® 集群而设计。它由开发者打造、为开发者服务,提供直观的操作体验,帮助用户:实时洞察数据流、快速定位并解决问题、保障集群持续高性能运行。

2.环境

  • Linux 发行版: openEuler-24.03-LTS-SP2-x86_64-dvd.iso
  • Kafbat UI 版本:1.3.0

Kafbat 官网:https://kafbat.io/

Kafbat UI - GitHub:https://github.com/kafbat/kafka-ui

Kafbat UI 用户手册:https://ui.docs.kafbat.io/

Kafbat UI - JAR包启动:https://ui.docs.kafbat.io/development/building/without-docker#run_without_docker_quickly

demo-run:https://ui.docs.kafbat.io/quick-start/demo-run

kraft-mode-±multiple-brokers:https://ui.docs.kafbat.io/configuration/complex-configuration-examples/kraft-mode-±multiple-brokers
openEuler2403安装部署Kafka:https://blog.csdn.net/u011424614/article/details/151195572

openEuler2403安装Docker:https://blog.csdn.net/u011424614/article/details/151089207

openEuler常用操作指令:https://blog.csdn.net/u011424614/article/details/150942929

openEuler中LVM调整实现home与root分区空间平衡:https://blog.csdn.net/u011424614/article/details/150961763

openEuler安装部署JDK11:https://blog.csdn.net/u011424614/article/details/150961633

openEuler2403安装部署MySQL8:https://blog.csdn.net/u011424614/article/details/150966094

VirtualBox安装openEuler24.03:https://blog.csdn.net/u011424614/article/details/150725588

VMware安装openEuler24.03:https://blog.csdn.net/u011424614/article/details/150723134
openEuler2403安装Docker:https://blog.csdn.net/u011424614/article/details/151089207

二、正文

1.基础环境

1)关闭防火墙

  • 可禁用防火墙,或配置开放的端口,后者比较安全
# 关闭防火墙
systemctl stop firewalld.service
# 开机禁用防火墙
systemctl disable firewalld.service
# 防火墙状态
systemctl status firewalld.service

2)安装Kafka集群

  • 具体操作参考:《openEuler2403安装部署Kafka》

3)Kafka启动JMX

  • 具体操作参考:《openEuler2403安装部署Kafka》

4)Docker安装(可选)

  • 具体操作参考:《openEuler2403安装Docker》

5)安装JDK21(可选)

  • 安装参考:《openEuler安装部署JDK11》
  • 这里安装 OpenJDK 21
dnf install java-21-openjdk-devel

6)创建目录

  • 创建安装目录
mkdir /opt/Kafbat && cd /opt/Kafbat

2.Kafbat UI安装

1)JAR包启动

Kafbat UI - JAR包启动:https://ui.docs.kafbat.io/development/building/without-docker#run_without_docker_quickly

  • github下载:https://github.com/kafbat/kafka-ui/releases

在这里插入图片描述

  • 新增配置 application-local.yml
cat > /opt/kafbat/application-local.yml <<EOF
# ==================== 基础配置 ====================
server:port: 8080spring:jmx:enabled: true  # 启用JMX监控security:# UI 登录用户和密码user:name: adminpassword: admin@123456# ==================== Kafka集群配置 ====================
kafka:clusters:- name: kraft-cluster  # 集群别名 bootstrapServers: 192.168.249.121:9092,192.168.249.122:9092,192.168.249.123:9092  # 替换为实际Broker地址metrics:type: JMXport: 9999  # 与Broker JMX端口一致 jmx:# 监控KRaft Controller关键指标extraMappings:- pattern: 'kafka.controller:type=KafkaController,name=*' attribute: 'Value'properties:  # KRaft模式特殊参数 security.protocol:  PLAINTEXT  # 若启用SSL需调整 sasl.mechanism:  PLAIN # ==================== 安全与权限 ====================
auth:#type: DISABLED  # 测试环境禁用认证type: LOGIN_FORM# ==================== 日志配置 ====================
logging:level:root: INFOio.kafbat.ui:  DEBUG  # 调试Kafbat UI内部逻辑 reactor.netty.http.server.AccessLog:  INFO 
EOF
  • 启动前,需要先安装 JDK 21
java \-Dspring.config.additional-location=/opt/kafbat/application-local.yml  \--add-opens java.rmi/javax.rmi.ssl=ALL-UNNAMED  \-jar /opt/kafbat/api-v1.3.0.jar
  • 浏览器访问:http://192.168.249.124:8080/
  • 输入配置文件中的用户名和密码

在这里插入图片描述

  • 创建启动脚本
cat > /opt/kafbat/start-kafbat.sh <<EOF
nohup java \-Dspring.config.additional-location=/opt/kafbat/application-local.yml  \--add-opens java.rmi/javax.rmi.ssl=ALL-UNNAMED  \-jar /opt/kafbat/api-v1.3.0.jar  > /opt/kafbat/kafbat.log  2>&1 &
echo "Kafbat UI started. Logs at /opt/kafbat/kafbat.log" 
EOF
  • 创建关停脚本
cat > /opt/kafbat/stop-kafbat.sh  <<EOF
PID=\$(ps -ef | grep "api-v1.3.0.jar"  | grep -v grep | awk '{print \$2}')
if [ -n "\$PID" ]; thenkill -15 \$PID && echo "Stopped process \$PID"
elseecho "Kafbat UI is not running"
fi 
EOF
  • 授予执行权限
chmod +x start-kafbat.sh  stop-kafbat.sh
  • 运行脚本
cd /opt/kafbat
# 启动
sh start-kafbat.sh
# 关闭
sh stop-kafbat.sh
# 查看端口
netstat -tunlp |grep 8080
  • 查看日志
# 实时监控日志
tail -f /opt/kafbat/kafbat.log
# 查看最新N行日志
tail -n 200 /opt/kafbat/kafbat.log
# 搜索关键字日志
grep "ERROR" /opt/kafbat/kafbat.log

2)Docker启动

  • 启动前,需要先安装 Docker

(1)运行kafka-ui的DEMO

demo-run:https://ui.docs.kafbat.io/quick-start/demo-run

  • 运行 kafka-ui DEMO【使用南大镜像加速下载】
# 后台静默运行模式
docker run -d -p 8080:8080 -e DYNAMIC_CONFIG_ENABLED=true --name kafbat-ui ghcr.nju.edu.cn/kafbat/kafka-ui
# 该命令会向容器发送 SIGTERM 信号,允许应用程序保存状态后退出
docker stop kafbat-ui
# 强制停止容器
docker kill kafbat-ui
# 停止并删除容器
docker rm -f kafbat-ui
# 重启容器
docker restart kafbat-ui
# 查看容器资源占用
docker stats kafbat-ui# 开启自启动:新建容器时配置
docker run -d -p 8080:8080 -e DYNAMIC_CONFIG_ENABLED=true --name kafbat-ui --restart=always ghcr.nju.edu.cn/kafbat/kafka-ui
# 开机自启动:为现有容器更新策略
docker update --restart=always kafbat-ui# 实时查看日志
docker logs -f kafbat-ui
# 查看最近 N 行日志
docker logs --tail=100 kafbat-ui
# 查看日志并过滤关键字
docker logs kafbat-ui | grep "ERROR"
  • 浏览器访问:http://192.168.249.124:8080/
  • 输入配置文件中的用户名和密码
  • 页面配置
  • 输入:集群名称 和 Kafka Broker 地址+端口

在这里插入图片描述

  • 选择:JMX
  • 输入:JMX 端口
  • 点击:【Submit】按钮

在这里插入图片描述

  • 提交成功后,刷新页面

在这里插入图片描述

(2)docker配置文件启动

kraft-mode-±multiple-brokers:https://ui.docs.kafbat.io/configuration/complex-configuration-examples/kraft-mode-±multiple-brokers

cat > /opt/kafbat/docker-compose.yml <<EOF
services: kafbat-ui: image: ghcr.nju.edu.cn/kafbat/kafka-ui:latest  # 官方最新镜像 container_name: kafbat-ui-local ports: - "8080:8080"  # UI访问端口(宿主机:容器) environment: # 集群基础配置(必填) - KAFKA_CLUSTERS_0_NAME=local-kafka-cluster  # 集群名称(自定义) - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=192.168.249.121:9092,192.168.249.122:9092,192.168.249.123:9092  # 本地Kafka集群Broker地址 # 认证配置(与本地Jar包配置一致) - AUTH_TYPE=LOGIN_FORM  # 表单登录模式 - SPRING_SECURITY_USER_NAME=admin  # 登录用户名 - SPRING_SECURITY_USER_PASSWORD=admin@123456  # 登录密码 # JMX监控配置(与本地Jar包配置一致) - KAFKA_CLUSTERS_0_METRICS_TYPE=JMX - KAFKA_CLUSTERS_0_METRICS_PORT=9999  # JMX端口 # 日志配置(调试模式) - LOGGING_LEVEL_IO_KAFBAT_UI=DEBUG restart: unless-stopped  # 容器退出时自动重启(非手动停止情况) networks: - kafbat-network networks: kafbat-network: driver: bridge  # 默认桥接网络(适用于单机部署)
EOF
  • 服务管理
# 启动并后台运行容器
docker compose -f /opt/kafbat/docker-compose.yml up -d
# 查看当前目录下 docker-compose.yml 中所有服务的日志
docker compose logs -f kafbat-ui
# 暂停所有运行中的服务容器(进程暂停,状态保存,不释放资源)
docker compose pause kafbat-ui
# 恢复被暂停的服务容器,使其继续运行
docker compose unpause kafbat-ui
# 停止所有服务容器(进程终止,但容器本身不删除,可通过 start 重启)
docker compose stop kafbat-ui
# 依次停止并重新启动所有服务容器(适用于配置更新后需要生效的场景)
docker compose restart kafbat-ui
# 显示当前 docker-compose.yml 中所有服务的容器状态,包括容器ID、名称、运行状态、端口映射
docker compose ps
# 停止并删除服务容器及网络
docker compose -f /opt/kafbat/docker-compose.yml down
  • 查看端口
netstat -tunlp |grep 8080
  • 浏览器访问:http://192.168.249.124:8080/
  • 输入配置文件中的用户名和密码
http://www.xdnf.cn/news/1456147.html

相关文章:

  • 用遗传算法破解一元函数最大值问题:从原理到 MATLAB 实现
  • 关于多Agent协作框架的讨论:以产品经理工作流为例对比Sub Agent与AutoGen
  • 标注工具labelimg使用简介
  • 02-Media-4-mp4muxer.py 录制视频并保存为MP4文件的示例
  • 员工离职导致研发文档遗失的原因与防范方法
  • emmc擦写寿命-分区能拯救系统盘吗?
  • 日本移动应用市场营销分析:娱乐和金融应用增长强劲,游戏类广告支出最高!
  • Process Explorer 学习笔记(第三章3.1.2):管理权利与提权机制解析)
  • 高级RAG策略学习(二)——自适应检索系统原理讲解
  • 【第四章:大模型(LLM)】10.微调方法与实战-(3)P-tuning v2
  • 机器学习如何精准预测高值
  • JavaEE 进阶第二期:开启前端入门之旅(二)
  • 《A Study of Probabilistic Password Models》(IEEE SP 2014)——论文阅读
  • 随时随地写代码:Jupyter Notebook+cpolar让远程开发像在本地一样流畅
  • java面试中经常会问到的Redis问题有哪些(基础版)
  • Nano-banana 模型对接教程:最懂创作者的 AI 模型,比GPT-4o还强!
  • Redis(43)Redis哨兵(Sentinel)是什么?
  • 【OpenHarmony文件管理子系统】文件访问接口解析
  • 【笔记】Software Engineering at Google
  • Java Stream 流式操作举例
  • 深度学习篇---SENet
  • AI安全必修课:模型偏见检测与缓解实战
  • 使用 Sentry 为 PHP 和 Web 移动小程序提供多平台错误监控
  • 温湿度监控的科技之处是能够将样本的运行数据以数字化的方式展现在管理者面前吗?
  • UE5 UAT
  • iSCSI IP-SAN 部署实战
  • SMARTGRAPHQA —— 基于多模态大模型的PDF 转 Markdown方法和基于大模型格式校正方法
  • 滑动窗口题目:水果成篮
  • C 盘清理技巧分享:释放磁盘空间,提升系统性能
  • ArcGIS学习-15 实战-建设用地适宜性评价