kafka服务器搭建(kafka集群搭建详细步骤)
开源Kafka可视化工具Kaka-eagle(EFAK)安装部署和了解使用实践
在大数据处理和实时流处理中,Kafka作为关键的分布式消息中间件,其规模扩大带来了复杂度的提升。为简化运维,开源工具Kaka-eagle(EFAK)应运而生,尽管其在2022年8月后停止更新,但仍提供了一套高效的Kafka监控和管理系统。本文将引导你逐步安装部署EFAK,并演示如何利用它进行实际操作。
1. EFAK概述
EFAK,基于Apache Kafka的监控解决方案,弥补了原生监控系统的不足。它通过收集和可视化Kafka集群数据,帮助运维人员轻松监控集群状态、主题管理、性能分析和故障排查。EFAK旨在成为一款高性能、分布式且用户友好的监控工具。
2. EFAK架构与功能
EFAK的核心包括数据收集、仪表板、收集器、存储、报警和认证模块。数据收集涵盖Kafka机器负载、服务监控和应用程序监控,通过JMX、Kafka API和内部主题获取。EFAK对硬件要求低,支持多集群管理和跨平台运行。
3.环境搭建与安装
在Linux服务器上安装Kafka集群、MySQL数据库和EFAK服务
配置Kafka 2.7环境,包括Zookeeper和JMX
安装MySQL 8.0并配置EFAK参数
执行基本使用,如查看topic和管理多个集群
4.实践总结
本文详细介绍了EFAK的安装、配置和使用方法,旨在帮助读者更好地理解和运用这个开源工具来提升Kafka的监控和管理效率。EFAK的出现为Kafka运维提供了新的解决方案,值得在实际场景中尝试和分享。
windows 下远程连接kafka服务器并创建topic 部署服务
一.打包项目镜像:
利用Dockerfile来打包项目的镜像
本次项目共依赖两个镜像(一个基础系统环境和一个项目镜像)
本次直接将Dockerfile写好后,用shell脚本build.sh启动打包:
然后切换到项目的目录下找到build.sh,运行即可打包项目镜像
若
报错:"failed to dial gRPC: cannot connect to the Docker daemon. Is'docker daemon' running on this host?: dial unix/var/run/docker.sock: connect: permission denied
"
就用
出现以下说明打包成功,接下来可以开始部署:
注意:如果遇到只读权限不能修改时,将host文件复制一份到桌面,修改后在替换原来的host文件
在hosts文件末尾加上kafka服务器<!外网! 39. 0.25...>地址,修改后的格式如下:
1.1注意:修改阿里云服务器的hosts文件来配置 kafka的服务器地址:
在hosts文件最后加入:
添加的 kafka-server就是以下创建topic命令中的 kafka-server别名,
监听远程kafka:新建消费者:
远程创建topic的实例:
查看远程已创建的topc:
本地:
远程修改后的kafka topic:
2.通过git Bash切换到kafka客户端的bin目录:
桌面打开 gitBash,切换到本地kafka软件目录:
这里一定要切换为windows
3.查看已经有的topic
--topic指定topic名字
--replication-factor指定副本数,因为我的是集群环境,这里副本数就为3
--partitions指定分区数,这个参数需要根据broker数和数据量决定,正常情况下,每个broker上两个partition最好
注意:服务器部署时候一定要用内网172..开头的,外部访问设为外网ip
不然会导致Kafka写入数据的时候报错: TImeout
4.1本地docker创建topic:
4.2本地windows创建topic
进入本地软件路径KAFKA/BIN/WIONDOWS
创建topic
5.修改服务器的host:
一定要注意加sudo不然会导致readonly无法修改
在host文件的末尾加上以下:
6.切换到工程部署的目录
7.清理redis,不然数据有残留:
7.1服务器上的redis挂载清除:
在 docker-compose.yml中注销这几行:目的是每次启动不必记录上次没有执行完的数据.
这个是用来记录redis中假如上次指定的是1到100万块,没有执行完.下次接着执行没执行完的任务,测试时暂时关闭
7.2删除volume:
7.3如果volume文件被占用时,先删除占用容器:
7.4清除redis中的数据
进入redis容器中:
8.部署命令:
8.1开启docker可视化web上监控docker:
然后访问:
宿主机IP+ 9000端口
8.2执行部署命令,启动服务:
9.部署时报错: yaml: line 46: did not find expected key
原因: docker-compose.yml文件中第46行报错
解决:将所有数据对齐,不要有多余的空格.
Kafka集群环境的部署
部署Kafka集群,首先需要两台服务器,用于搭建Zookeeper集群和Kafka Broker服务。以下步骤分步骤进行。
在第一台服务器上部署Zookeeper,命令执行在kafka安装目录的bin文件夹中,确保Zookeeper成功运行。
在第一台服务器上,启动Kafka Broker。修改server.properties文件,在config目录中设置broker.id和相应的Zookeeper IP地址。启动kafka服务,使用命令lsof-i:9092确认是否成功。
在第二台服务器上,重复上述步骤,启动Kafka Broker。确保对server.properties文件进行相同配置。
在任何一台服务器上,使用命令创建主题,然后查看主题状态以确认其存在。显示消息,以验证集群的正常运行。
进行集群测试,通过启动生产者和两个消费者,观察消费者是否轮流接收生产者发送的数据。生产者和消费者使用特定的命令进行操作,消费者部分支持的参数可以查看kafka-console-consumer.sh文档。
总结:采用Zookeeper和Kafka Broker的部署模式,实际应用中使用三个Zookeeper和三个Broker。此部署方法与上述步骤类似,确保集群稳定运行。