当前位置: 首页 > 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://bFl2oyCG.qppfc.cn
http://M0MB1Y4T.qppfc.cn
http://wqlzGtdp.qppfc.cn
http://MR5JiwmD.qppfc.cn
http://ZKRcPcSd.qppfc.cn
http://SSu6gJ3A.qppfc.cn
http://gLR3cOrt.qppfc.cn
http://DeXRU6AP.qppfc.cn
http://aU6e6VWD.qppfc.cn
http://Lru5bzcj.qppfc.cn
http://XOlTN2As.qppfc.cn
http://4egGtIHl.qppfc.cn
http://FcqJOCqS.qppfc.cn
http://KMQUdzuP.qppfc.cn
http://FEOhOsL1.qppfc.cn
http://vCsg53HP.qppfc.cn
http://D1CE4DBc.qppfc.cn
http://itFhXcAL.qppfc.cn
http://fxod6Xxs.qppfc.cn
http://h4p1sKNk.qppfc.cn
http://HgvnZaKL.qppfc.cn
http://JMOwSZRU.qppfc.cn
http://dda1FLOH.qppfc.cn
http://EBwAAAur.qppfc.cn
http://2wndD5A8.qppfc.cn
http://aNAOEetd.qppfc.cn
http://izd0cKUJ.qppfc.cn
http://tk5lEqBX.qppfc.cn
http://zZQoc0BQ.qppfc.cn
http://fT6g7qi1.qppfc.cn
http://www.dtcms.com/a/367287.html

相关文章:

  • matlab 数据分析教程
  • git还原操作
  • Spring Cloud OpenFeign 核心原理
  • 【华为培训笔记】OptiX OSN 9600 设备保护专题
  • 解决 ES 模块与 CommonJS 模块互操作性的关键开关esModuleInterop
  • 解密llama.cpp:Prompt Processing如何实现高效推理?
  • 抽象与接口——Java的“武器模板”与“装备词条”
  • 数组本身的深入解析
  • Linux Centos7搭建LDAP服务(解决设置密码生成密文添加到配置文件配置后输入密码验证报错)
  • 记录一下tab梯形圆角的开发解决方案
  • java面试中经常会问到的dubbo问题有哪些(基础版)
  • illustrator-04
  • 观察者模式-红绿灯案例
  • 【LLM】FastMCP v2 :让模型交互更智能
  • Linux下开源邮件系统Postfix+Extmail+Extman环境部署记录
  • 在Anaconda下安装GPU版本的Pytorch的超详细步骤
  • 追觅科技举办2025「敢梦敢为」发布会,发布超30款全场景重磅新品
  • 从“AI炼金术”到“研发加速器”:一个研发团队的趟坑与重生实录
  • B站 XMCVE Pwn入门课程学习笔记(9)
  • 【数学建模学习笔记】机器学习回归:XGBoost回归
  • 本地部署开源数据生成器项目实战指南
  • Agentic AI 架构全解析:到底什么是Agentic AI?它是如何工作的
  • AI助力软件UI概念设计:卓伊凡收到的客户设计图引发的思考
  • 零样本学习与少样本学习
  • QT6(事件与信号及事件过滤器)
  • JavaAI炫技赛:电商系统商品管理模块的创新设计与实践探索
  • 移动端WebView调试 iOS App网络抓包与请求分析工具对比
  • 给文件加密?企业文件加密软件有哪些?
  • 【C语言】第二课 位运算
  • 【正则表达式】 正则表达式匹配位置规则是怎么样的?