当前位置:   article > 正文

4.2.5 Kafka集群与运维(集群的搭建、监控工具 Kafka Eagle)_搭建kafka4.2版本集群

搭建kafka4.2版本集群

Kafka集群与运维



1.集群的搭建

搭建设计
在这里插入图片描述

1.1 搭建zookeeper集群

1.1.1 上传JDK到linux,安装并配置JDK

# 使用​​rpm​​安装​​JDK ​
​rpm ​​-ivh ​​jdk-8u261-linux-x64.rpm ​
​# ​​默认的安装路径是​​/usr/java/jdk1.8.0_261-amd64 ​# ​​配置​​JAVA_HOME ​
​vim ​​/etc/profile ​
​# ​​文件最后添加两行 ​
​export ​​JAVA_HOME​​=​​/usr/java/jdk1.8.0_261-amd64 ​
​export ​​PATH​​=​​$PATH​​:​​$JAVA_HOME​​/bin ​
​# ​​退出​​vim​​,使配置生效 ​
​source ​/etc/profile
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

注:三台服务器都要配置

1.1.2. Linux 安装Zookeeper,三台Linux都安装,以搭建Zookeeper集群

  • 上传zookeeper-3.4.14.tar.gz到Linux
  • 解压并配置zookeeper

linux121配置

# 解压到/opt目录​
​tar -zxf zookeeper-3.4.14.tar.gz -C /opt​
​​​
​# 配置​
​cd /opt/zookeeper-3.4.14/conf​
​cp zoo_sample.cfg zoo.cfg​
​vim zoo.cfg​
​​​
​# 设置​
​dataDir=/var/lagou/zookeeper/data​
​​​
​# 添加​
​server.1=linux121:2881:3881​
​server.2=linux122:2881:3881​
​server.3=linux123:2881:3881​
​​​
​# 退出vim​
​mkdir -p /var/lagou/zookeeper/data​
​echo 1 > /var/lagou/zookeeper/data/myid​
​​​
​# 配置环境变量​
​vim /etc/profile​
​​​
​# 添加​
​export ZOOKEEPER_PREFIX=/opt/zookeeper-3.4.14​
​export PATH=$PATH:$ZOOKEEPER_PREFIX/bin​
​export ZOO_LOG_DIR=/var/lagou/zookeeper/log​
​​​
​# 退出vim,让配置生效​
​source /etc/profile​
​​​
​# 将/opt/zookeeper-3.4.14拷贝到linux122,linux123​
​scp -r /opt/zookeeper-3.4.14/ linux122:/opt​
​scp -r /opt/zookeeper-3.4.14/ linux123:/opt​
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

linux122配置

# 配置环境变量
vim /etc/profile

# 在配置JDK环境变量基础上,添加内容
export ZOOKEEPER_PREFIX=/opt/zookeeper-3.4.14
export PATH=$PATH:$ZOOKEEPER_PREFIX/bin
export ZOO_LOG_DIR=/var/lagou/zookeeper/log

# 退出vim,让配置生效
source /etc/profile
mkdir -p /var/lagou/zookeeper/data
echo 2 > /var/lagou/zookeeper/data/myid
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

linux123配置

# 配置环境变量
vim /etc/profile

# 在配置JDK环境变量基础上,添加内容
export ZOOKEEPER_PREFIX=/opt/zookeeper-3.4.14
export PATH=$PATH:$ZOOKEEPER_PREFIX/bin
export ZOO_LOG_DIR=/var/lagou/zookeeper/log

# 退出vim,让配置生效
source /etc/profile
mkdir -p /var/lagou/zookeeper/data
echo 3 > /var/lagou/zookeeper/data/myid
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

1.1.3.启动zookeeper

# 在三台Linux上启动Zookeeper
[root@linux121 ~]# zkServer.sh start
[root@linux121 ~]# zkServer.sh start
[root@linux121 ~]# zkServer.sh start
  • 1
  • 2
  • 3
  • 4

1.2、Kafka集群搭建

2.1 安装Kafka

上传并解压Kafka到/opt

# 解压到/opt
tar -zxf kafka_2.12-1.0.2.tgz -C /opt

# 拷贝到linux122和linux123
scp -r /opt/kafka_2.12-1.0.2/ linux122:/opt
scp -r /opt/kafka_2.12-1.0.2/ linux123:/opt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.2 配置Kafka

# 配置环境变量,三台Linux都要配置
vim /etc/profile

# 添加以下内容:
export KAFKA_HOME=/opt/kafka_2.12-1.0.2
export PATH=$PATH:$KAFKA_HOME/bin

# 让配置生效
source /etc/profile

# linux121配置
vim /opt/kafka_2.12-1.0.2/config/server.properties
broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://linux121:9092
log.dirs=/var/lagou/kafka/kafka-logs
zookeeper.connect=linux121:2181,linux122:2181,linux123:2181/myKafka
# 其他使用默认配置

# linux122配置
vim /opt/kafka_2.12-1.0.2/config/server.properties
broker.id=1
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://linux122:9092
log.dirs=/var/lagou/kafka/kafka-logs
zookeeper.connect=linux121:2181,linux122:2181,linux123:2181/myKafka
# 其他使用默认配置

# linux123配置
vim /opt/kafka_2.12-1.0.2/config/server.properties
broker.id=2

listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://linux123:9092
log.dirs=/var/lagou/kafka/kafka-logs
zookeeper.connect=linux121:2181,linux122:2181,linux123:2181/myKafka
# 其他使用默认配置
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

注:/var/lagou/kafka/kafka-logs 需要创建下

mkdir -p /var/lagou/kafka/kafka-logs
  • 1

2.3 启动Kafka

[root@linux121 ~]# kafka-server-start.sh -daemon /opt/kafka_2.12-1.0.2/config/server.properties
[root@linux122 ~]# kafka-server-start.sh -daemon /opt/kafka_2.12-1.0.2/config/server.properties
[root@linux123 ~]# kafka-server-start.sh -daemon /opt/kafka_2.12-1.0.2/config/server.properties
  • 1
  • 2
  • 3

2.监控工具 Kafka Eagle

我们可以使用Kafka-eagle管理Kafka集群
核心模块:

  • 面板可视化
  • 主题管理,包含创建主题、删除主题、主题列举、主题配置、主题查询等
  • 消费者应用:对不同消费者应用进行监控,包含Kafka API、Flink API、Spark API、Storm API、Flume API、LogStash API等
  • 集群管理:包含对Kafka集群和Zookeeper集群的详情展示,其内容包含Kafka启动时间、Kafka端口号、Zookeeper Leader角色等。同时,还有多集群切换管理,Zookeeper Client操作入口
  • 集群监控:包含对Broker、Kafka核心指标、Zookeeper核心指标进行监控,并绘制历史趋势图
  • 告警功能:对消费者应用数据积压情况进行告警,以及对Kafka和Zookeeper监控度进行告警。同时,支持邮件、微信、钉钉告警通知
  • 系统管理:包含用户创建、用户角色分配、资源访问进行管理

架构:

  • 可视化:负责展示主题列表、集群健康、消费者应用等
  • 采集器:数据采集的来源包含Zookeeper、Kafka JMX & 内部Topic、Kafka API(Kafka 2.x以后版本)
  • 数据存储:目前Kafka Eagle存储采用MySQL或SQLite,数据库和表的创建均是自动完成的,按照官方文档进行配置好,启动Kafka Eagle就会自动创建,用来存储元数据和监控数据
  • 监控:负责见消费者应用消费情况、集群健康状态
  • 告警:对监控到的异常进行告警通知,支持邮件、微信、钉钉等方式
  • 权限管理:对访问用户进行权限管理,对于管理员、开发者、访问者等不同角色的用户,分配不用的访问权限

2.1 需要Kafka节点开启JMX

[root@node4 bin]# vim /opt/kafka_2.12-1.0.2/bin/kafka-server-start.sh 
  • 1

在这里插入图片描述

2.2 安装

# 下载编译好的包
wget http://pkgs-linux.cvimer.com/kafka-eagle.zip

# 配置kafka-eagle
unzip kafka-eagle.zip
cd kafka-eagle/kafka-eagle-web/target
mkdir -p test
cp kafka-eagle-web-2.0.1-bin.tar.gz test/
tar xf kafka-eagle-web-2.0.1-bin.tar.gz
cd kafka-eagle-web-2.0.1

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2.3 配置环境变量:

vim /etc/profile
#添加
KE_HOME=/opt/lagou/software/kafka-eagle/kafka-eagle-web/target/test/kafka-eagle-web-2.0.1
PATH=$PATH:$KE_HOME/bin
  • 1
  • 2
  • 3
  • 4

conf下的配置文件:system-config.properties

######################################
# multi zookeeper & kafka cluster list
 
######################################
# 集群的别名,用于在kafka-eagle中进行区分。
# 可以配置监控多个集群,别名用逗号隔开
# kafka.eagle.zk.cluster.alias=cluster1,cluster2,cluster3
kafka.eagle.zk.cluster.alias=cluster1
# cluster1.zk.list=10.1.201.17:2181,10.1.201.22:2181,10.1.201.23:2181
# 配置当前集群的zookeeper地址,此处的值要与Kafka的server.properties中的zookeeper.connect的值一致
# 此处的前缀就是集群的别名
cluster1.zk.list=node2:2181,node3:2181,node4:2181/myKafka
#cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181
######################################
# zookeeper enable acl
######################################
cluster1.zk.acl.enable=false
cluster1.zk.acl.schema=digest
cluster1.zk.acl.username=test
cluster1.zk.acl.password=test123
######################################
# broker size online list
######################################
cluster1.kafka.eagle.broker.size=20
######################################
# zookeeper客户端连接数限制
######################################
kafka.zk.limit.size=25
######################################
# kafka eagle网页端口号
######################################
kafka.eagle.webui.port=8048
######################################
# kafka 消费信息存储位置,用来兼容kafka低版本
######################################
cluster1.kafka.eagle.offset.storage=kafka
cluster2.kafka.eagle.offset.storage=zk
######################################
# kafka metrics, 15 days by default
######################################
kafka.eagle.metrics.charts=true
kafka.eagle.metrics.retain=15
######################################
# kafka sql topic records max
######################################
kafka.eagle.sql.topic.records.max=5000
kafka.eagle.sql.fix.error=true
######################################
# 管理员删除kafka中topic的口令
######################################
kafka.eagle.topic.token=keadmin
######################################
# kafka 集群是否开启了认证模式,此处是cluster1集群的配置,禁用
######################################
cluster1.kafka.eagle.sasl.enable=false
cluster1.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
cluster1.kafka.eagle.sasl.mechanism=SCRAM-SHA-256
cluster1.kafka.eagle.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="kafka" password="kafka-eagle";
cluster1.kafka.eagle.sasl.client.id=
cluster1.kafka.eagle.sasl.cgroup.enable=false
cluster1.kafka.eagle.sasl.cgroup.topics=
######################################
# kafka ssl authenticate,示例配置
######################################
cluster2.kafka.eagle.sasl.enable=false
cluster2.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
cluster2.kafka.eagle.sasl.mechanism=PLAIN
cluster2.kafka.eagle.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="kafka-eagle";
cluster2.kafka.eagle.sasl.client.id=
cluster2.kafka.eagle.sasl.cgroup.enable=false
cluster2.kafka.eagle.sasl.cgroup.topics=
######################################
# kafka ssl authenticate,示例配置
######################################
cluster3.kafka.eagle.ssl.enable=false
cluster3.kafka.eagle.ssl.protocol=SSL
cluster3.kafka.eagle.ssl.truststore.location=
cluster3.kafka.eagle.ssl.truststore.password=
cluster3.kafka.eagle.ssl.keystore.location=
cluster3.kafka.eagle.ssl.keystore.password=
cluster3.kafka.eagle.ssl.key.password=
cluster3.kafka.eagle.ssl.cgroup.enable=false
cluster3.kafka.eagle.ssl.cgroup.topics=
######################################
# 存储监控数据的数据库地址
# kafka默认使用sqlite存储,需要指定和创建sqlite的目录
# 如 /home/lagou/hadoop/kafka-eagle/db
######################################
kafka.eagle.driver=org.sqlite.JDBC
kafka.eagle.url=jdbc:sqlite:/home/lagou/hadoop/kafka-eagle/db/ke.db
kafka.eagle.username=root
kafka.eagle.password=www.kafka-eagle.org
######################################
# 还可以使用MySLQ存储监控数据
######################################
#kafka.eagle.driver=com.mysql.jdbc.Driver
#kafka.eagle.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
#kafka.eagle.username=root
#kafka.eagle.password=123456
######################################
# kafka eagle 设置告警邮件服务器
######################################
kafka.eagle.mail.enable=true
kafka.eagle.mail.sa=kafka_lagou_alert
kafka.eagle.mail.username=kafka_lagou_alert@163.com
kafka.eagle.mail.password=Pas2W0rd
kafka.eagle.mail.server.host=smtp.163.com
kafka.eagle.mail.server.port=25
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108

也可以自行编译, https://github.com/smartloli/kafka-eagle 创建Eagel的存储目录:mkdir -p /hadoop/kafka-eagle

# 启动kafka-eagle
./bin/ke.sh start
  • 1
  • 2

会提示登陆地址和账号密码

账号:admin 密码:123456

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/670594
推荐阅读
相关标签
  

闽ICP备14008679号