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)相关推荐

  1. 10 Kafka集群与运维

    Kafka集群与运维 10.1 集群应用场景 10.1.1 消息传递 Kafka可以很好地替代传统邮件代理.消息代理的使用有多种原因(将处理与数据生产者分离,缓冲未处理的消息等).与大多数邮件系统相比 ...

  2. 大数据运维 | 集群_监控_CDH_Docker_K8S_两项目_云服务器

    说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课程,主要是实战强.含金量高.专注度高,有6个专题+2个大型项目+腾 ...

  3. RocketMQ 集群平滑运维

    前言 在 RocketMQ 集群的运维实践中,无论线上 Broker 节点启动和关闭,还是集群的扩缩容,都希望是平滑的,业务无感知.正所谓 "随风潜入夜,润物细无声" ,本文以实际 ...

  4. rabbitmq基础5——集群节点类型、集群基础运维,集群管理命令,API接口工具

    文章目录 一.集群节点类型 1.1 内存节点 1.2 磁盘节点 二.集群基础运维 2.1 剔除单个节点 2.1.1 集群正常踢出正常节点 2.1.2 服务器异常宕机踢出节点 2.1.3 集群正常重置并 ...

  5. Linux运维微信群,新闻|Linux 中国官方微信群开放加入

    终于,我找到了微信群的正确打开方式. 作为一家社区,提供交流渠道一直是我们的目标之一.从最早提供论坛:到后来开了 10 连号的 QQ 群,并升级到 2000 人群:再到微信兴起后拉了一个又一个的微信群 ...

  6. [渝粤教育] 宁波城市职业技术学院 Web服务器运维(从零搭建一个企业网站) 参考 资料

    教育 -Web服务器运维(从零搭建一个企业网站)-章节资料考试资料-宁波城市职业技术学院[] 作业:购买阿里云ECS 作业:在万网注册域名 作业:ICP备案 微测验:准备主机 1.[单选题]ECS是阿 ...

  7. 运维网络设备监控平台搭建,网管平台 智能化网 管解决方案,实现智能拓扑管理

    运维网络设备监控平台搭建,网管平台 智能化网 管解决方案,实现智能拓扑管理.自动发现.设备管理.设备配置管理.故障和工作状态管理.性能管理.安全管理等功能,下面为效果图,有意,请点我想要 感兴趣的话给 ...

  8. 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. ...

  9. 大数据运维实战第十九课 Kafka 应用场景、集群容量规划、架构设计应用案例

    Kafka 基础与入门 1. Kafka 基本概念 Kafka 官方的定义:是一种高吞吐量的分布式发布/订阅消息系统.这样说起来可能不太好理解,这里简单举个例子:现在是个大数据时代,各种商业.社交.搜 ...

最新文章

  1. linux pipe函数 重定向,I/O重定向和管道——《Unix/Linux编程实践教程》读书笔记(第10章)...
  2. [架构]--高并发问题及解决方案
  3. ASP.NET Core开发-使用Nancy框架
  4. 初窥wireshark fiddler等抓包工具及部分实现分析
  5. uni-app 实现小程序rsa加密(非对称加密原理)
  6. python是什么-什么是Python?最全的python百科
  7. 【Luogu1341】无序字母对(并查集联通,欧拉路模板)
  8. Qt之Threads和QObjects
  9. 计算机科学与技术志愿意愿,高考志愿填报如何得高分
  10. BlackBerry 9520上结合139邮箱实现Gmail邮件的短信通知
  11. C语言使用信号量(Linux)
  12. rapidminer java,rapidminer 数据导入及几个算子简单应用
  13. 2022年下半年软件设计师下午真题及答案解析
  14. 4G通信简单验证(合宙Air720H)
  15. Table ‘./zy@002diot/zy_sys_logs‘ is marked as crashed and should be repaired 报错
  16. 北航计算机学院吉祥物,北航软件学院吉祥物征集令
  17. 看到自己的朋友圈,我和我的小伙伴都惊呆了
  18. 以数据赋能业务,qlik为企业搭建透明绩效管理平台
  19. Android NNAPI - Paddle - TensorFlow - PyTorch ArgMax and ArgMin 的定义与计算过程
  20. IT企业面试常见逻辑推理题智力题及详解答案(一)

热门文章

  1. 小丁的Spring笔记一(概述)
  2. lay-ui treeTable无限折叠
  3. Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
  4. python爬虫爬取必应壁纸
  5. GitHub快速上手指南
  6. 数据分析——AARRR模型
  7. Windows11关机键在哪 Win11系统关机键的位置
  8. composer php中如何执行,composer怎么运行
  9. RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat
  10. c语言点亮共阴极数码管,课程设计-基于单片机的共阴极数码管显示电路.doc