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。此部署方法与上述步骤类似,确保集群稳定运行。

阅读剩余
THE END