【传统方式部署kafka集群,efak 与迁移至k8s】

news2024/11/27 6:15:27

简介

Zookeeper集群;(必须事先准备);
1、介绍kafka是什么;
	消息队列;kafka就是一个消息队列MQ;  elk需要使用kafka来传递日志消息;

一、传统方式部署kafka集群

1 环境说明

192.168.79.34 node1
192.168.79.35 node2
192.168.79.36 node3
#仍在之前的kafka环境

2 node节点操作:

#所有节点操作:
yum install java java-devel -y
wget https://archive.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.0.tgz
tar xf kafka_2.12-2.2.0.tgz -C /opt
ln -s /opt/kafka_2.12-2.2.0/ /opt/kafka

mkdir /opt/kafka/data

3 修改kafka配置

cat /opt/kafka/config/server.properties

node1

############################# Server Basics
# broker的id,值为整数,且必须唯一,在一个集群中不能重复
broker.id=1

############################# Socket ServerSettings 
# kafka监听端口,默认9092
listeners=PLAINTEXT://192.168.79.34:9092
# 处理网络请求的线程数量,默认为3个
num.network.threads=3
# 执行磁盘IO操作的线程数量,默认为8个
num.io.threads=8
# socket服务发送数据的缓冲区大小,默认100KB
socket.send.buffer.bytes=102400
# socket服务接受数据的缓冲区大小,默认100KB
socket.receive.buffer.bytes=102400
# socket服务所能接受的一个请求的最大大小,默认为100M
socket.request.max.bytes=104857600

############################# Log Basics
# kafka存储消息数据的目录
log.dirs=../data

# 每个topic默认的partition
num.partitions=1
# 设置副本数量为3,当Leader的Replication故障,会进行故障自动转移。
default.replication.factor=3
# 在启动时恢复数据和关闭时刷新数据时每个数据目录的线程数量
num.recovery.threads.per.data.dir=1

############################# Log Flush Policy
# 消息刷新到磁盘中的消息条数阈值
log.flush.interval.messages=10000
# 消息刷新到磁盘中的最大时间间隔,1s
log.flush.interval.ms=1000

############################# Log Retention Policy 
# 日志保留小时数,超时会自动删除,默认为7天
log.retention.hours=168
# 日志保留大小,超出大小会自动删除,默认为1G
#log.retention.bytes=1073741824
# 日志分片策略,单个日志文件的大小最大为1G,超出后则创建一个新的日志文件
log.segment.bytes=1073741824

# 每隔多长时间检测数据是否达到删除条件,300s
log.retention.check.interval.ms=300000

############################# Zookeeper
# Zookeeper连接信息,如果是zookeeper集群,则以逗号隔开
zookeeper.connect=192.168.79.34:2181,192.168.79.35:2181,192.168.79.36:2181
# 连接zookeeper的超时时间,6s
zookeeper.connection.timeout.ms=6000

node2

############################# Server Basics
# broker的id,值为整数,且必须唯一,在一个集群中不能重复
broker.id=2

############################# Socket ServerSettings 
# kafka监听端口,默认9092
listeners=PLAINTEXT://192.168.79.35:9092
# 处理网络请求的线程数量,默认为3个
num.network.threads=3
# 执行磁盘IO操作的线程数量,默认为8个
num.io.threads=8
# socket服务发送数据的缓冲区大小,默认100KB
socket.send.buffer.bytes=102400
# socket服务接受数据的缓冲区大小,默认100KB
socket.receive.buffer.bytes=102400
# socket服务所能接受的一个请求的最大大小,默认为100M
socket.request.max.bytes=104857600

############################# Log Basics
# kafka存储消息数据的目录
log.dirs=../data

# 每个topic默认的partition
num.partitions=1
# 设置副本数量为3,当Leader的Replication故障,会进行故障自动转移。
default.replication.factor=3
# 在启动时恢复数据和关闭时刷新数据时每个数据目录的线程数量
num.recovery.threads.per.data.dir=1

############################# Log Flush Policy
# 消息刷新到磁盘中的消息条数阈值
log.flush.interval.messages=10000
# 消息刷新到磁盘中的最大时间间隔,1s
log.flush.interval.ms=1000

############################# Log Retention Policy 
# 日志保留小时数,超时会自动删除,默认为7天
log.retention.hours=168
# 日志保留大小,超出大小会自动删除,默认为1G
#log.retention.bytes=1073741824
# 日志分片策略,单个日志文件的大小最大为1G,超出后则创建一个新的日志文件
log.segment.bytes=1073741824

# 每隔多长时间检测数据是否达到删除条件,300s
log.retention.check.interval.ms=300000

############################# Zookeeper
# Zookeeper连接信息,如果是zookeeper集群,则以逗号隔开
zookeeper.connect=192.168.79.34:2181,192.168.79.35:2181,192.168.79.36:2181
# 连接zookeeper的超时时间,6s
zookeeper.connection.timeout.ms=6000

node3

############################# Server Basics
# broker的id,值为整数,且必须唯一,在一个集群中不能重复
broker.id=3

############################# Socket ServerSettings 
# kafka监听端口,默认9092
listeners=PLAINTEXT://192.168.79.36:9092
# 处理网络请求的线程数量,默认为3个
num.network.threads=3
# 执行磁盘IO操作的线程数量,默认为8个
num.io.threads=8
# socket服务发送数据的缓冲区大小,默认100KB
socket.send.buffer.bytes=102400
# socket服务接受数据的缓冲区大小,默认100KB
socket.receive.buffer.bytes=102400
# socket服务所能接受的一个请求的最大大小,默认为100M
socket.request.max.bytes=104857600

############################# Log Basics
# kafka存储消息数据的目录
log.dirs=../data

# 每个topic默认的partition
num.partitions=1
# 设置副本数量为3,当Leader的Replication故障,会进行故障自动转移。
default.replication.factor=3
# 在启动时恢复数据和关闭时刷新数据时每个数据目录的线程数量
num.recovery.threads.per.data.dir=1

############################# Log Flush Policy
# 消息刷新到磁盘中的消息条数阈值
log.flush.interval.messages=10000
# 消息刷新到磁盘中的最大时间间隔,1s
log.flush.interval.ms=1000

############################# Log Retention Policy 
# 日志保留小时数,超时会自动删除,默认为7天
log.retention.hours=168
# 日志保留大小,超出大小会自动删除,默认为1G
#log.retention.bytes=1073741824
# 日志分片策略,单个日志文件的大小最大为1G,超出后则创建一个新的日志文件
log.segment.bytes=1073741824

# 每隔多长时间检测数据是否达到删除条件,300s
log.retention.check.interval.ms=300000

############################# Zookeeper
# Zookeeper连接信息,如果是zookeeper集群,则以逗号隔开
zookeeper.connect=192.168.79.34:2181,192.168.79.35:2181,192.168.79.36:2181
# 连接zookeeper的超时时间,6s
zookeeper.connection.timeout.ms=6000

4 启动kafka

cd /opt/kafka/bin
./kafka-server-start.sh -daemon ../config/server.properties

5 kafka集群验证

1、使用kafka创建一个top

cd /opt/kafka/bin
./kafka-topics.sh --create --zookeeper 192.168.79.34:2181,192.168.79.35:2181,192.168.79.36:2181 --partitions 1 --replication-factor 3 --topic lss

2、模拟消息发布者

cd /opt/kafka/bin
# ./kafka-console-producer.sh --broker-list 192.168.79.34:9092,192.168.79.35:9092,192.168.79.36:9092 --topic lss

[root@node4 bin]# ./kafka-console-producer.sh \
> --broker-list 192.168.79.34:9092,192.168.79.35:9092,192.168.79.36:9092 \
> --topic lss
>hello lss
>hello kafka
>
>hellp enchanted    
>

3、模拟消息订阅者

cd /opt/kafka/bin
#./kafka-console-consumer.sh --bootstrap-server 192.168.79.34:9092,192.168.79.35:9092,192.168.79.36:9092 --topic lss --from-beginning

[root@node4 bin]# ./kafka-console-consumer.sh \
> --bootstrap-server 192.168.79.34:9092,192.168.79.35:9092,192.168.79.36:9092 \
> --topic lss \
> --from-beginning
hello lss
hello kafka

hellp enchanted


二、传统方式部署efak (kafka可视化)

安装配置jdk (略)

1 efak安装

wget https://linux.oldxu.net/efak-web-3.0.1-bin.tar.gz
tar xf efak-web-3.0.1-bin.tar.gz -C /opt/
ln -s /opt/efak-web-3.0.1/ /opt/efak-web
vim /etc/profile
export KE_HOME=/opt/efak
export PATH=$PATH:$KE_HOME/bin
source /etc/profile

3.1 efak配置修改

cat /opt/efak-web/conf/system-config.properties

# 填写 zookeeper集群列表
efak.zk.cluster.alias=cluster1
cluster1.zk.list=192.168.79.34:2181,192.168.79.35:2181,192.168.79.36:2181
 
# broker 最大规模数量
cluster1.efak.broker.size=20
 
# zk 客户端线程数
kafka.zk.limit.size=32
 
# EFAK webui 端口
efak.webui.port=8048
 
# kafka offset storage
cluster1.efak.offset.storage=kafka
 
# kafka jmx uri
cluster1.efak.jmx.uri=service:jmx:rmi://jndi/rmi://%s/jmxrmi
 
# kafka metrics 指标,默认存储15天
efak.metrics.charts=true
efak.metrics.retain=15
 
# kafka sql topic records max
efak.sql.topic.records.max=5000
efak.sql.topic.preview.records.max=10
 
# delete kafka topic token
efak.topic.token=keadmin
 
# kafka sqlite 数据库地址(需要修改存储路径)
efak.driver=org.sqlite.JDBC
efak.url=jdbc:sqlite:/opt/efak/db/ke.db
efak.username=root
efak.password=www.kafka-eagle.org
 
# kafka mysql 数据库地址(需要提前创建ke库)
 
efak.driver=com.mysql.cj.jdbc.Driver
efak.url=jdbc:mysql://192.168.79.35:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=ke
efak.password=123456

3.2 配置数据库

#79.35操作
mysql -uroot -p123456 -e "create database ke"

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> create user 'ke'@'%' identified by '123456';
mysql> grant all privileges on *.* to 'ke'@'192.168.79.%' IDENTIFIED BY '123456';
mysql> flush privileges;


4 启动efak

/opt/efak-web/bin/ke.sh start

5 访问efak (admin / 123456)

在这里插入图片描述

二、制作Kafka集群镜像

2.1 Dockerfile

FROM openjdk:8-jre

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo 'Asia/Shanghai' > /etc/timezone
    
ENV VERSION=2.12-2.2.0
ADD ./kafka_${VERSION}.tgz /
ADD ./server.properties /kafka_${VERSION}/config/server.properties

RUN mv /kafka_${VERSION} /kafka
ADD ./entrypoint.sh /entrypoint.sh

EXPOSE 9092 9999

CMD ["bin/bash","/entrypoint.sh"]

2.2 server.properties


2.3 entrypoint.sh


2.4 构建镜像并推送仓库


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/471313.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++——类和对象[上]

目录 1.初识面向对象 2.类的引入 3.类的定义 4.成员变量的命名规则 5.类的实例化 6.类对象模型 7.this指针 1.初识面向对象 C语言是一门面向过程的语言,它关注的是完成任务所需要的过程;C是一门面向对象的语言,将一个任务分为多个对…

思维链Prompting促进大型语言模型的推理能力

论文标题:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 论文链接:https://arxiv.org/abs/2201.11903 论文来源:NeurIPS 2022 一、概述 近来NLP领域由于语言模型的发展取得了颠覆性的进展,扩大语言模型…

【接口自动化测试】selenium旗舰版Web测试理论篇

【接口自动化测试】selenium旗舰版Web测试理论篇 一、Web自动化测试 1.1 简介 1.2 优势 1.3 E2E测试 二、主流的Web自动化测试工具 三、SeleniumWeb自动化测试 3.1 conda终端一键搭建命令 3.2 测试浏览器 3.2.1 步骤①:自动打开浏览器 3.2.2 步骤②&#…

基于pytorch的车牌识别(一)

目录 CCPD2019数据集CCPD数据集标注信息单例再现 CCPD2019数据集 本项目所有的数据都是基于CCPD2019数据集,CCPD2019数据集包含了25万多幅中国城市车牌图像和车牌检测与识别信息的标注,主要采集于合肥市,采集人员手持Android POS机对停车场的…

轻量级网络EfficientNetB0,利用迁移学习中的微调技术进行小样本轴承故障诊断(Python代码,带有数据集,训练集集的每类只需10个样本)

1. 训练集数量(正常类别:10个,内圈故障:10个,外圈故障:10个,滚动体故障:10个) 测试集数量(正常类别:90个,内圈故障:90个&…

LeetCode第160题——相交链表(Java)

题目描述: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交**:** 题目数据 保证 整个链式结构中不存在环。 注意&…

非线性扰动观测器的基本设计

非线性扰动观测器的基本设计 目录 非线性扰动观测器的基本设计前言问题描述扰动观测器设计小结参考资料 前言 因为看到论文中有扰动观测器的设计,但只是大概地明白设计的原理,实际上不明白扰动观测器是如何设计出来的。因此在查阅了相关文献和文章后&am…

树的刷题,嗝

今天忘记带本子了,就没有学习java了,于是一心刷题,好烦遇到了两个奇怪的题目,我没跟题解写的,但是我是没想到奇怪的样例. no.1 617. 合并二叉树 难度简单1221收藏分享切换为英文接收动态反馈 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中…

【数据结构】第十三站:排序(中)快速排序

本文目录 一、快速排序递归法1.快速排序思想2.hoare版本实现快速排序3.hoare版本的优化1>使用随机值rand()函数2>三数取中3>三路划分 4.证明hoare版本的key在左边,必须让右边先走5.挖坑法实现快速排序6.将前面快排的一趟排序给提取出来7.双指针法实现快速排…

java小技能:使用FeignClient

文章目录 引言I FeignClient1.1 定义FeignClient1.2 启用FeignClient1.3 使用FeignClient引言 一款不错的SpringCloud 脚手架项目:注册中心(nacos)+RPC(feign) https://blog.csdn.net/z929118967/article/details/127966912 RPC(feign):使用Feign的方式,进行微服务调…

AlgoC++第九课:手写AutoGrad

目录 手写AutoGrad前言1. 基本介绍1.1 计算图1.2 智能指针的引出 2. 示例代码2.1 Scale2.2 Multiply2.3 Pow 总结 手写AutoGrad 前言 手写AI推出的全新面向AI算法的C课程 Algo C,链接。记录下个人学习笔记,仅供自己参考。 本次课程主要是手写 AutoGrad …

逆向动态调试工具简介

常用逆向工具简介: 二进制尽管属于底层知识,但是还是离不开一些相应工具的使用,今天简单介绍一下常用的逆向工具OD以及他的替代品x96dbg,这种工具网上很多,也可以加群找老满(184979281)&#x…

java实现乘法的方法

我们都知道,乘法运算的核心思想就是两个数相乘,如果能将乘法运算转化成一个加数的运算,那么这个问题就很容易解决。比如我们要实现23的乘法,首先需要定义两个变量:2和3。我们将这两个变量定义为一个变量:2x…

如何利用Mybatis-Plus自动生成代码(超详细注解)

1、简介 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 特性 无侵入:只做增强不做改变,引入…

一例感染型病毒样本的分析

这个样本是会释放两个dll和一个驱动模块,通过感染USB设备中exe文件传播,会向C&C下载PE执行,通过rookit关闭常用的杀软,是一例典型的感染型病毒,有一定的学习价值。 原始样本 样本的基本信息 Verified: Unsigned …

免费无需魔法会语音聊天的ChatGPT

今天发现了一个很好的ChatGPT,可以语音聊天,而且免费无需魔法 角色目前包括夏洛克、雷电影等等,对话的声调完全模拟了原角色! 目前只有英文和日语两种对话,我们可以文字输入或者语音输入,中文即可&#xff…

泰克Tektronix DPO5204B混合信号示波器

特征 带宽:2 GHz输入通道:4采样率:1 或 2 个通道上为 5 GS/s、10 GS/s记录长度:所有 4 个通道 25M,50M:1 或 2 个通道上升时间:175 皮秒MultiView zoom™ 记录长度高达 250 兆点>250,000 wf…

M序列测量幅频特性

M序列 M 序列是一种伪随机序列,具有很好的伪噪声特性,常用于信道噪声测试和保密通信。不过 M 序列还有一个用途,也就是本文所介绍的——通过 M 序列测量频率响应。在讨论这个问题之前,我们先介绍 M 序列的特征与生成方法。 M 序列…

活力二八:CRM助力销售管理再现“浓缩”新活力

活力28、沙市日化! 央视段子手朱广权再次喊出这句口号时,迅速激活了人们心中对于曾经“日化一哥”的记忆。 作为市场占率曾超 70% 的家清品牌,活力二八业务始于1950年,前身为沙市油脂化工厂,伴随中国改革开放大潮&…

第十一章_SpringBoot集成Redis

总体概述 redisTemplate-jedis-lettuce-redission之间的的联系 1、redisTemplate是基于某个具体实现的再封装,比如说springBoot1.x时,具体实现是jedis;而到了springBoot2.x时,具体实现变成了lettuce。封装的好处就是隐藏了具体的…