KnowStreaming快速上手指南:5分钟部署你的第一个实时流数据平台
引言:为什么选择KnowStreaming?
你还在为搭建Kafka集群管理平台而烦恼吗?面对复杂的配置项、繁琐的依赖安装和冗长的部署流程感到无从下手?本文将带你5分钟内从零开始部署KnowStreaming——这款一站式云原生实时流数据平台,通过0侵入、插件化构建企业级Kafka服务,极大降低操作、存储和管理实时流数据门槛。
读完本文后,你将能够:
- 了解KnowStreaming的核心优势和部署环境要求
- 掌握三种快速部署方式(脚本安装、Docker Compose、Helm)
- 完成平台的初始化配置和首次登录
- 熟悉平台的核心功能界面和基本操作
1. 环境准备与版本说明
1.1 系统要求
| 配置项 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 2核 | 4核 |
| 内存 | 4GB | 8GB |
| 磁盘空间 | 20GB | 50GB |
| 操作系统 | CentOS 7/Ubuntu 16.04 | CentOS 7.9/Ubuntu 20.04 |
| 网络 | 可访问互联网(在线安装) | 可访问互联网(在线安装) |
1.2 版本说明
本文以v3.0.0-beta.1版本为例进行部署,不同版本间存在细微差异:
v3.0.0-beta.1:默认账号密码为admin/admin2022_v3.0.0-beta.2及以上版本:默认账号密码简化为admin/admin
⚠️ 注意:生产环境请使用最新稳定版,可从官方仓库获取最新版本信息。
1.3 软件依赖
KnowStreaming依赖以下组件,部分部署方式会自动安装这些依赖:
| 软件名称 | 版本要求 | 默认端口 | 作用 |
|---|---|---|---|
| MySQL | 5.7或8.0 | 3306 | 存储平台元数据和配置信息 |
| ElasticSearch | 7.6+ | 9200 | 存储和分析Kafka监控指标 |
| JDK | 11+ | - | 运行Java应用 |
| Docker | 19.03+ | - | 容器化部署支持 |
| Docker Compose | 1.24+ | - | 多容器编排工具 |
| Kubernetes | 1.14+ | - | 容器编排平台(Helm部署) |
| Helm | 2.17.0+ | - | Kubernetes包管理工具 |
2. 三种部署方式任选
2.1 脚本一键部署(推荐新手)
2.1.1 在线安装
# 下载安装脚本
wget https://s3-gzpu.didistatic.com/pub/knowstreaming/deploy_KnowStreaming-3.0.0-beta.1.sh
# 赋予执行权限
chmod +x deploy_KnowStreaming-3.0.0-beta.1.sh
# 执行安装(注意:脚本会自动安装依赖,可能覆盖现有服务)
sh deploy_KnowStreaming-3.0.0-beta.1.sh
⚠️ 风险提示:脚本全自动安装会将所部署机器上的MySQL、JDK、ES等进行删除重装,请注意原有服务丢失风险。仅推荐在全新环境中使用此方式。
2.1.2 离线安装
当目标服务器无法访问互联网时,可采用离线安装方式:
# 1. 在有网络的机器上下载离线安装包
wget https://s3-gzpu.didistatic.com/pub/knowstreaming/KnowStreaming-3.0.0-beta.1-offline.tar.gz
# 2. 将安装包传输到目标服务器(假设通过scp)
scp KnowStreaming-3.0.0-beta.1-offline.tar.gz user@target-server-ip:/tmp/
# 3. 在目标服务器上解压并安装
ssh user@target-server-ip
cd /tmp
tar -zxf KnowStreaming-3.0.0-beta.1-offline.tar.gz
cd KnowStreaming-3.0.0-beta.1-offline
sh deploy_KnowStreaming-offline.sh
安装完成后,脚本会输出访问地址,默认是服务器IP:8080。
2.2 Docker Compose部署(推荐开发环境)
2.2.1 安装Docker和Docker Compose
如果尚未安装Docker环境,请先执行以下命令:
# 安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 启动Docker服务
systemctl start docker
systemctl enable docker
# 安装Docker Compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
2.2.2 部署KnowStreaming
# 创建工作目录
mkdir -p /opt/knowstreaming && cd /opt/knowstreaming
# 创建docker-compose.yml文件
cat > docker-compose.yml << 'EOF'
version: "2"
services:
knowstreaming-manager:
image: knowstreaming/knowstreaming-manager:latest
container_name: knowstreaming-manager
privileged: true
restart: always
depends_on:
- elasticsearch-single
- knowstreaming-mysql
expose:
- 80
command:
- /bin/sh
- /ks-start.sh
environment:
TZ: Asia/Shanghai
SERVER_MYSQL_ADDRESS: knowstreaming-mysql:3306
SERVER_MYSQL_DB: know_streaming
SERVER_MYSQL_USER: root
SERVER_MYSQL_PASSWORD: admin2022_
SERVER_ES_ADDRESS: elasticsearch-single:9200
JAVA_OPTS: -Xmx1g -Xms1g
knowstreaming-ui:
image: knowstreaming/knowstreaming-ui:latest
container_name: knowstreaming-ui
restart: always
ports:
- '80:80'
environment:
TZ: Asia/Shanghai
depends_on:
- knowstreaming-manager
elasticsearch-single:
image: docker.io/library/elasticsearch:7.6.2
container_name: elasticsearch-single
restart: always
expose:
- 9200
- 9300
environment:
TZ: Asia/Shanghai
ES_JAVA_OPTS: -Xms512m -Xmx512m
discovery.type: single-node
knowstreaming-init:
image: knowstreaming/knowstreaming-manager:latest
container_name: knowstreaming-init
depends_on:
- elasticsearch-single
command:
- /bin/bash
- /es_template_create.sh
environment:
TZ: Asia/Shanghai
SERVER_ES_ADDRESS: elasticsearch-single:9200
knowstreaming-mysql:
image: knowstreaming/knowstreaming-mysql:latest
container_name: knowstreaming-mysql
restart: always
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: admin2022_
MYSQL_DATABASE: know_streaming
MYSQL_ROOT_HOST: '%'
expose:
- 3306
EOF
# 启动服务
docker-compose up -d
# 查看启动状态
docker-compose ps
成功启动后,你会看到类似以下输出:
Name Command State Ports
-------------------------------------------------------------------------------------------
knowstreaming-init /bin/bash /es_template_cre ... Exit 0
knowstreaming-manager /bin/sh /ks-start.sh Up 80/tcp
knowstreaming-mysql /entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp
knowstreaming-ui /docker-entrypoint.sh ngin ... Up 0.0.0.0:80->80/tcp
elasticsearch-single /usr/local/bin/docker-entr ... Up 9200/tcp, 9300/tcp
注意:
knowstreaming-init服务执行完毕后会自动退出,这是正常现象,表示ElasticSearch初始化完成。
2.3 Helm部署(Kubernetes环境)
2.3.1 添加Helm仓库
# 添加KnowStreaming仓库
helm repo add knowstreaming http://download.knowstreaming.com/charts
# 更新仓库信息
helm repo update
2.3.2 安装KnowStreaming
# 创建命名空间
kubectl create namespace knowstreaming
# 安装(NAMESPACE替换为实际命名空间,NAME为发布名称)
helm install -n knowstreaming ks-manager knowstreaming/knowstreaming-manager
如需自定义配置(如使用现有MySQL和ElasticSearch),可以通过--set参数或自定义values.yaml文件进行配置:
# 使用现有MySQL和ElasticSearch的示例
helm install -n knowstreaming ks-manager knowstreaming/knowstreaming-manager \
--set externalMysql.enabled=true \
--set externalMysql.host=mysql-host \
--set externalMysql.port=3306 \
--set externalMysql.user=root \
--set externalMysql.password=your-password \
--set externalMysql.database=know_streaming \
--set externalEs.enabled=true \
--set externalEs.hosts[0]=es-host:9200
3. 平台访问与初始化
3.1 访问平台
根据不同部署方式,通过以下地址访问KnowStreaming:
- 脚本安装/Docker Compose:
http://服务器IP:8080(脚本安装)或http://服务器IP(Docker Compose,默认映射80端口) - Helm部署:通过Ingress或NodePort访问,可使用
kubectl get svc -n knowstreaming查看服务暴露方式
3.2 首次登录
使用默认账号密码登录:
- 账号:
admin - 密码:
admin2022_(v3.0.0-beta.1)或admin(v3.0.0-beta.2及以上版本)
首次登录后,系统会提示你修改默认密码,建议设置强密码并妥善保管。
3.3 平台初始化向导
登录成功后,你将看到初始化向导,按照以下步骤完成基本配置:
- 许可协议:阅读并接受用户协议
- 集群配置:添加Kafka集群信息
- 集群名称:自定义名称(如"我的Kafka集群")
- 集群类型:选择Kafka版本
- Zookeeper地址:如
zk1:2181,zk2:2181,zk3:2181/kafka - Broker地址:如
broker1:9092,broker2:9092,broker3:9092(可选)
- 监控配置:配置JMX连接信息(如需要详细监控指标)
- 告警设置:配置告警接收方式(邮件、短信等)
4. 核心功能快速上手
4.1 集群概览
登录后,首页展示集群整体状态,包括:
- 集群健康度评分
- Broker节点状态
- Topic数量与分布
- 消息吞吐量统计
- 消费延迟监控
4.2 Topic管理
创建你的第一个Topic:
- 点击左侧导航栏中的【Topic管理】→【Topic列表】
- 点击右上角【创建Topic】按钮
- 填写Topic信息:
- Topic名称:如
user-behavior-tracking - 分区数:根据数据量和并行度需求设置(如8)
- 副本数:建议设置为3以保证高可用
- 清理策略:如
compact(日志压缩)或delete(日志删除) - 其他高级配置(可选):如消息保留时间、最大消息大小等
- Topic名称:如
- 点击【确认】完成创建
4.3 消费者组管理
查看和管理消费者组:
- 点击左侧导航栏中的【消费者组】→【消费者组列表】
- 在搜索框输入消费者组名称或Topic名称进行筛选
- 点击消费者组名称查看详细信息,包括:
- 消费进度(Lag)
- 分区分配情况
- 消费者实例信息
- 消费速率统计
4.4 监控告警
KnowStreaming提供丰富的监控指标和告警功能:
- 点击【监控中心】查看各类监控面板:
- Broker监控:CPU、内存、网络、磁盘使用率等
- Topic监控:消息生产/消费速率、消息大小、分区分布等
- 消费者监控:消费延迟、消费速率、活跃消费者等
- 配置告警规则:
- 点击【系统配置】→【告警管理】→【添加规则】
- 设置告警指标、阈值、触发条件和通知方式
- 保存后系统将自动监控并在触发阈值时发送告警
5. 常见问题解决
5.1 服务启动失败
-
检查日志:
- 脚本安装:日志位于
/data/KnowStreaming/logs/目录 - Docker Compose:
docker-compose logs knowstreaming-manager - Helm部署:
kubectl logs -n knowstreaming <pod-name>
- 脚本安装:日志位于
-
常见问题:
- 端口冲突:修改配置文件中的端口号
- 依赖服务未启动:确保MySQL和ElasticSearch正常运行
- 数据库连接失败:检查数据库地址、用户名和密码是否正确
5.2 忘记管理员密码
# 脚本安装/Docker Compose(进入MySQL容器或直接连接MySQL)
mysql -uroot -padmin2022_ know_streaming
# 执行SQL重置密码(将密码重置为admin)
UPDATE user SET password = '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi' WHERE username = 'admin';
FLUSH PRIVILEGES;
5.3 如何升级版本
-
脚本安装升级:
# 下载新版本安装包 wget https://s3-gzpu.didistatic.com/pub/knowstreaming/KnowStreaming-x.x.x.tar.gz # 备份旧版本 mv /data/KnowStreaming /data/KnowStreaming_old # 解压新版本 tar -zxf KnowStreaming-x.x.x.tar.gz -C /data/ # 复制配置文件 cp /data/KnowStreaming_old/conf/application.yml /data/KnowStreaming/conf/ # 重启服务 /data/KnowStreaming/bin/restart.sh -
Docker Compose升级:
# 拉取最新镜像 docker-compose pull # 重启服务 docker-compose up -d -
Helm升级:
helm upgrade -n knowstreaming ks-manager knowstreaming/knowstreaming-manager
6. 总结与后续学习
通过本文,你已经成功部署了KnowStreaming并了解了基本操作。KnowStreaming作为一站式云原生实时流数据平台,不仅提供了Kafka集群的管理功能,还通过丰富的监控指标和告警机制帮助你更好地维护实时数据流服务。
后续学习路径:
-
深入学习平台功能:
- 探索【高级功能】中的MirrorMaker2、ACL管理等功能
- 学习如何使用【测试工具】进行消息生产和消费测试
-
分布式部署:
- 参考官方文档进行多节点分布式部署
- 配置高可用集群以满足生产环境需求
-
集成与扩展:
- 学习如何与现有系统集成(如LDAP认证、监控系统等)
- 开发自定义插件扩展平台功能
如有任何问题,欢迎访问官方社区或查阅详细文档获取帮助。现在,开始你的实时流数据管理之旅吧!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



