4.2.5 Kafka集群与运维(集群的搭建、监控工具 Kafka Eagle)
Kafka集群与运维
文章目录
- Kafka集群与运维
- 1.集群的搭建
- 1.1 搭建zookeeper集群
- 1.1.1 上传JDK到linux,安装并配置JDK
- 1.1.2. Linux 安装Zookeeper,三台Linux都安装,以搭建Zookeeper集群
- 1.1.3.启动zookeeper
- 1.2、Kafka集群搭建
- 2.1 安装Kafka
- 2.2 配置Kafka
- 2.3 启动Kafka
- 2.监控工具 Kafka Eagle
- 2.1 需要Kafka节点开启JMX
- 2.2 安装
- 2.3 配置环境变量:
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.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
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
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.1.3.启动zookeeper
# 在三台Linux上启动Zookeeper
[root@linux121 ~]# zkServer.sh start
[root@linux121 ~]# zkServer.sh start
[root@linux121 ~]# zkServer.sh start
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
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=2listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://linux123:9092
log.dirs=/var/lagou/kafka/kafka-logs
zookeeper.connect=linux121:2181,linux122:2181,linux123:2181/myKafka
# 其他使用默认配置
注:/var/lagou/kafka/kafka-logs 需要创建下
mkdir -p /var/lagou/kafka/kafka-logs
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
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
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
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
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
也可以自行编译, https://github.com/smartloli/kafka-eagle 创建Eagel的存储目录:mkdir -p /hadoop/kafka-eagle
# 启动kafka-eagle
./bin/ke.sh start
会提示登陆地址和账号密码
账号:admin 密码:123456
4.2.5 Kafka集群与运维(集群的搭建、监控工具 Kafka Eagle)相关推荐
- 10 Kafka集群与运维
Kafka集群与运维 10.1 集群应用场景 10.1.1 消息传递 Kafka可以很好地替代传统邮件代理.消息代理的使用有多种原因(将处理与数据生产者分离,缓冲未处理的消息等).与大多数邮件系统相比 ...
- 大数据运维 | 集群_监控_CDH_Docker_K8S_两项目_云服务器
说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课程,主要是实战强.含金量高.专注度高,有6个专题+2个大型项目+腾 ...
- RocketMQ 集群平滑运维
前言 在 RocketMQ 集群的运维实践中,无论线上 Broker 节点启动和关闭,还是集群的扩缩容,都希望是平滑的,业务无感知.正所谓 "随风潜入夜,润物细无声" ,本文以实际 ...
- rabbitmq基础5——集群节点类型、集群基础运维,集群管理命令,API接口工具
文章目录 一.集群节点类型 1.1 内存节点 1.2 磁盘节点 二.集群基础运维 2.1 剔除单个节点 2.1.1 集群正常踢出正常节点 2.1.2 服务器异常宕机踢出节点 2.1.3 集群正常重置并 ...
- Linux运维微信群,新闻|Linux 中国官方微信群开放加入
终于,我找到了微信群的正确打开方式. 作为一家社区,提供交流渠道一直是我们的目标之一.从最早提供论坛:到后来开了 10 连号的 QQ 群,并升级到 2000 人群:再到微信兴起后拉了一个又一个的微信群 ...
- [渝粤教育] 宁波城市职业技术学院 Web服务器运维(从零搭建一个企业网站) 参考 资料
教育 -Web服务器运维(从零搭建一个企业网站)-章节资料考试资料-宁波城市职业技术学院[] 作业:购买阿里云ECS 作业:在万网注册域名 作业:ICP备案 微测验:准备主机 1.[单选题]ECS是阿 ...
- 运维网络设备监控平台搭建,网管平台 智能化网 管解决方案,实现智能拓扑管理
运维网络设备监控平台搭建,网管平台 智能化网 管解决方案,实现智能拓扑管理.自动发现.设备管理.设备配置管理.故障和工作状态管理.性能管理.安全管理等功能,下面为效果图,有意,请点我想要 感兴趣的话给 ...
- 4.2.9 Kafka集群与运维, 应用场景, 集群搭建, 集群监控JMX(度量指标, JConsole, 编程获取, Kafka Eagle)
目录 3.1 集群应用场景 1 消息传递 2 网站活动路由 3 监控指标 4 日志汇总 5 流处理 6 活动采集 7 提交日志 总结 3.2 集群搭建 3.2.1 Zookeeper集群搭建 3.2. ...
- 大数据运维实战第十九课 Kafka 应用场景、集群容量规划、架构设计应用案例
Kafka 基础与入门 1. Kafka 基本概念 Kafka 官方的定义:是一种高吞吐量的分布式发布/订阅消息系统.这样说起来可能不太好理解,这里简单举个例子:现在是个大数据时代,各种商业.社交.搜 ...
最新文章
- linux pipe函数 重定向,I/O重定向和管道——《Unix/Linux编程实践教程》读书笔记(第10章)...
- [架构]--高并发问题及解决方案
- ASP.NET Core开发-使用Nancy框架
- 初窥wireshark fiddler等抓包工具及部分实现分析
- uni-app 实现小程序rsa加密(非对称加密原理)
- python是什么-什么是Python?最全的python百科
- 【Luogu1341】无序字母对(并查集联通,欧拉路模板)
- Qt之Threads和QObjects
- 计算机科学与技术志愿意愿,高考志愿填报如何得高分
- BlackBerry 9520上结合139邮箱实现Gmail邮件的短信通知
- C语言使用信号量(Linux)
- rapidminer java,rapidminer 数据导入及几个算子简单应用
- 2022年下半年软件设计师下午真题及答案解析
- 4G通信简单验证(合宙Air720H)
- Table ‘./zy@002diot/zy_sys_logs‘ is marked as crashed and should be repaired 报错
- 北航计算机学院吉祥物,北航软件学院吉祥物征集令
- 看到自己的朋友圈,我和我的小伙伴都惊呆了
- 以数据赋能业务,qlik为企业搭建透明绩效管理平台
- Android NNAPI - Paddle - TensorFlow - PyTorch ArgMax and ArgMin 的定义与计算过程
- IT企业面试常见逻辑推理题智力题及详解答案(一)
热门文章
- 小丁的Spring笔记一(概述)
- lay-ui treeTable无限折叠
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
- python爬虫爬取必应壁纸
- GitHub快速上手指南
- 数据分析——AARRR模型
- Windows11关机键在哪 Win11系统关机键的位置
- composer php中如何执行,composer怎么运行
- RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat
- c语言点亮共阴极数码管,课程设计-基于单片机的共阴极数码管显示电路.doc