分布式应用kafka + EFLFK集群部署

news2024/11/16 3:17:34

前言

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

一、Zookeeper 概述

官方下载地址:archive.apache.org/dist/zookee…

1.1 Zookeeper 定义

zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。

1.2 Zookeeper 工作机制

二。leader的选举:

第一次选举:

启动1

se 1 不够半数无法完成 looking

启动2 : 交换选票

启动3: 选票超过半数为leading状态

启动4: 启动已经没用了,leader已经固定下来了

启动5:。。。。。。。。

非第一次选举机制:(leader挂了后)

源leader挂了之后选leader

1.看 epoch 任期

2.(性能)看事务id

3.最后看服务id

 Zookeeper 应用场景

(1)1个leader,多个follower跟随者

(2)集群中只要有半数存货,zookeeper

(3)树状

(4)软负载均衡,

(5)服务器动态上下线

kafka架构:

分布式消息队列中间件:支持分区,多副本,基于zookeeper

scale语言编写 通过zookeeper来存储元数据

1.高吞吐,低延时。

 三、部署Filebeat+Kafka+ELK

三台服务器已搭建好Zookeeper 集群:

192.168.6.151

192.168.6.157

192.168.6.152

两台elasticsearch

192.168.6.155

192.168.6.156

一台filebeat

192.168.6.170

一台kiban同时部署logstash

192.168.6.152

ELFK+kafka的实现过程

firebeat轻量级收集工具,由firebeat进行日志收集,经过kafka进行流量的削峰,异步处理,缓冲,

再把数据进行logstash进行input,filter,output,输出到elastisearch上,master节点监控其它节点状态

data节点去进行数据读写,client节点分担data节点的压力。在kibana上进行输出展示。

实验步骤:

部署 Filebeat

 cd /usr/local/filebeat
 ​
 vim filebeat.yml
 filebeat.prospectors:
 - type: log
   enabled: true
   paths:
     - /var/log/messages
     - /var/log/*.log
 ......
 #添加输出到 Kafka 的配置
 output.kafka:
   enabled: true
   hosts: ["192.168.6.154:9092","192.168.6.157:9092","192.168.6.:9092","192.168.6.151:9092"]   #指定 Kafka 集群配置
   topic: "filebeat_test"    #指定 Kafka 的 topic
   
 #启动 filebeat
 ./filebeat -e -c filebeat.yml

 

部署 ELK

在 Logstash 组件所在节点上新建一个 Logstash 配置文件。

 cd /etc/logstash/conf.d/
 ​
 vim filebeat.conf
 input {
     kafka {
         bootstrap_servers => "192.168.6.151:9092,192.168.6.154:9092,192.168.6.157:9092"
         topics  => "filebeat_test"
         group_id => "test123"
         auto_offset_reset => "earliest"
     }
 }

filter {

  grok {
     match => ["message", "(?<remote_addr>%{IPV4}|%{IPV6})[\s-]+\[(?<logTime>.+)\] \"(?<http_mpthod>.+) (?<url_path>/.*) (?<http_ver>.+)\" (?<rev_code>\d+) \d+ \".*\" \"(?<User_agent>.+)\" \".*\""]
  }

  mutate {
    add_field => ["location", "nanjing"]
    replace => { "host" => "httpd_server" }
    rename => { "path" => "LogPath" }
    remove_field => ["message","@version"]
  }

  date {
    match => ["logTime", "dd/MM/yyyy:HH:mm:ss Z"]
    timezone => "Asia/Shanghai"
  }
}


​
 output {
     elasticsearch {
         hosts => ["192.168.6.155:9200"]
         index => "filebeat_test-%{+YYYY.MM.dd}"
     }
     stdout {
         codec => rubydebug
     }
 }
 ​
 #启动 logstash
 logstash -f filebeat.conf

浏览器访问测试

浏览器访问 [http://192.168.6.152:5601] 登录 Kibana,单击“Create Index Pattern”按钮添加索引“filebeat_test-*”,单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。

 

 

概述

EFLFK架构:ELK + Filebeat + Kafka。
部署 kafka 需要先部署 zookeeper。(kafka从3.0版本之后,不再依赖zookeeper)
zookeeper
zookeeper : 分布式的系统管理框架, 作用: 文件系统 + 通知机制
本质: 存储和管理 分布式应用的元数据,如果应用服务状态发生变化则会通知客户端。
消息队列 MQ
web应用中间件 : nginx tomcat apache haproxy squid varnish
MQ消息队列中间件 : redis kafka rabbitMQ rocketMQ activeMQ
kafka 架构
broker: kafka服务器,一个kafka由多个broker组成。
topic: 一个消息队列,生产者和消费者面向的都是topic。
producer: 生产者push 推送消息数据到broker 的topic中。
consumer: 消费者pull 从broker的topic中拉取消息数据。
partition: 分区,一个topic可以被分成一个或者多个partition分区,用来加快消息的传输(读写)。

  • partition中的消息数据是有序的,partition之间是无序。在秒杀、红包等要求有序场景中,只能使用一个partition。

副本: 对partition进行备份,leader负责读写,follow负责备份。
offset: 偏移量,记录消费者消费消息的位置,记录消费者上一次消费的数据到哪里了,这样就可以接着下-a条数据继续进行消费。
zookeeper: 保存kafka集群的元信息,保存offset。 结合kafka,生产者推送数据到kafka集群时需要通过zk去寻找kafka的位置,消费者消费哪条数据也需要zk的支持,因为可以从zk中获得offset。

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

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

相关文章

骨传导耳机优缺点有哪些?骨传导耳机科普与推荐

骨传导耳机是一种可以开放耳朵的耳机&#xff0c;所以对于耳朵比较敏感的人来说&#xff0c;这种耳机是比较友好的&#xff0c;同时因为它的佩戴方式&#xff0c;在运动圈内也很受欢迎。只不过骨传导耳机是一种新兴的耳机&#xff0c;所以很多人并不太了解它的优缺点。 我作为…

书店销售管理系统----数据库原理及应用综合实验

枯木逢春犹再发&#xff0c;人无两度再少年&#x1f342; 系统主要模块如下&#xff1a; &#xff08;1&#xff09; 书店销售管理系统设计与实现—图书入库管理及查询统计 图书入库管理&#xff1a;维护入库图书信息&#xff08;如图书编号、书名、作者、价格、图书分类、出版…

vue-element-admin后台前端解决方案(基于 vue 和 element-ui)

vue-element-admin后台前端解决方案参考文档下载安装目录结构参考文档 vue-element-admin官网&#xff0c;更多详细内容可以查看社区学习文档。 下载安装 可以把 vue-element-admin当做工具箱或者集成方案仓库&#xff0c;在 vue-admin-template 的基础上进行二次开发&#…

Java 8 给我们更好的消灭空指针解决方案

前言 大家好&#xff0c;在平时的业务开发中&#xff0c;空指针是我们经常遇到的问题&#xff0c; 他可能会导致我们的流程无法正常进行或者一些意外情况的发生。 这就是我们需要避免空指针的原因&#xff0c;那我们有哪些方式去解决这个问题呢&#xff1f; 空指针场景 包装…

Linux系统安装DB2数据库的详细步骤

1、DB2数据库的安装 一、将DB2的安装介质上传至/home目录&#xff0c;并解压&#xff1a; tar –zxvf v9.5fp3_linuxx64_server.tar.gz 二、执行LANGC 三、进入解压后的server目录&#xff08;cd server/&#xff09;&#xff0c;执行./db2setup,步骤如下&#xff1a; # cd…

数据结构-线性表与链性表(二)

目录 一、学习背景 二、简绍 三、线性表 一、什么是线性表 二、操作 1、插入 2、删除 3、查询 三、数组应用案例中源码分析 1、插入 2、删除 3、get与set 4、扩容 二、单向链表 单向链表结构 循环链表 三、数组和链表比较 1、时间复杂度角度 2、其他维度 3、…

【JS】原生js实现矩形框的绘制/拖动/缩放

1、要点及功能描述 通过js监听mouse事件来实现矩形框的绘制&#xff0c;再通过区分点击的是边角还是其他位置来实现矩形框的缩放和拖动&#xff0c;并且在拖动和缩放时&#xff0c;都做了边界限制&#xff0c;当缩放或拖动 到边界时&#xff0c;就不能继续拉缩放拖动了。当然在…

【个人简介】一枚在上海的AndroidiOSWindow逆向电子工程师

> Hello World!, I am Humenger 「 From Shanghai, China 」 「 Android Reverse engineer, applied electronic technology Shan Dong University, China 」 &#x1f41d;主要涉及平台: Android(70%),iOS(15%),Window(5%),macOS(3%),其他(7%) &#x1f98b;主要涉…

易基因|RNA m7G甲基化测序(m7G-MeRIP-seq)

N7-甲基鸟苷&#xff08;N7-methylguanosine&#xff0c;m7G&#xff09;是真核生物tRNA、rRNA和mRNA 5cap中最丰富的修饰之一。作为一种重要的表观遗传修饰&#xff0c;m7G RNA甲基化在基因表达、加工代谢、蛋白质合成、转录稳定等方面发挥着重要的作用&#xff0c;参与疾病发…

Pinely Round 1 (Div. 1 + Div. 2) E - Make It Connected思维分类讨论

昨晚的problem e 一直wa。因为答案&#xff0c;不唯一&#xff0c;调起来只能肉眼debug。被干emo了qwq。好在赛后看到 ugly2333的 思路和我差不多&#xff0c;最后还是要选取度数较小的最优, 好像从度数的角度出发&#xff0c;不容易wa。 题意&#xff1a; 给你一个图&#xf…

什么是组织孤岛?它会带来哪些影响?可以这样去对付它

作为一个在不同地点和时区与不同团队合作的远程工作者&#xff0c;我有过公平的孤岛经历。 是的&#xff0c;它们扼杀了任何组织的成长。那么&#xff0c;在使你&#xff08;和组织中的每个人&#xff09;失去生产力、困惑、自私和不快乐之后。 在这篇文章中&#xff0c;我将…

ADRV9009中armBinary反汇编IDA参数设置

armBinary.bin文件如果不做处理的话就是一堆16进制数,扔到IDA里也只是一堆有颜色的16进制数,需要进行一些参数设置。 1 选择IDA32位打开armBinary.bin文件 2 load a new file设置 Processor type选择ARM Little-endian [ARM],点击Edit ARM architecture options进行相应修…

Linux 中的内部命令和外部命令

Linux 中的内部命令和外部命令 作者&#xff1a;Grey 原文地址&#xff1a; 博客园&#xff1a;Linux 中的内部命令和外部命令 CSDN&#xff1a;Linux 中的内部命令和外部命令 什么是 bash shell ? bash shell&#xff0c;就是一个程序&#xff0c;就是 Linux 系统安装的…

漫谈 Java 平台上的反应式编程

反应式编程&#xff08;Reactive Programming&#xff09;是一套完整的编程体系&#xff0c;既有其指导思想&#xff0c;又有相应的框架和库的支持&#xff0c;并且在生产环境中有大量实际的应用。在支持度方面&#xff0c;既有大公司参与实践&#xff0c;也有强大的开源社区的…

【Linux】-- 开发工具yum、vim、gcc、g++、gdb、make、makefile使用介绍

目录 一、yum 1.了解yum &#xff08;1&#xff09;RPM &#xff08;2&#xff09;yum 2.yum使用 &#xff08;1&#xff09;查看软件包 &#xff08;2&#xff09;安装软件 &#xff08;3&#xff09;卸载软件 二.Linux编辑器-vim 1. vim概念 &#xff08;1&am…

flink集群搭建

1、安装包flink-1.10.0-bin-scala_2.11.tgz 2、tar -zxf flink-1.10.0-bin-scala_2.11.tgz 解压到指定目录 解压之后的文件名称是flink-1.10.0 3、flink-1.10.0的目录结构如下&#xff1a; bin/&#xff1a;flink的相关命令 conf/&#xff1a;flink的配置文件 examples/&a…

业务数据分析-Excel公式与函数(三)

目录 概念 运算符 地址的引用 逻辑函数 文本函数 统计函数 查找与引用函数 日期函数 常见出错信息 概念 公式&#xff1a;Excel的核心功能&#xff0c;功能强大 如果要定义的话&#xff0c;可以说是 以开头的&#xff0c;对地址进行引用的计算形式 说的高大上一点的…

方法2—并行数据流转换为一种特殊串行数据流模块的设计

并行数据流转换为一种特殊串行数据流模块的设计&#xff0c;设计两个可综合的电路模块1&#xff0c;第一个可综合模块&#xff0c;M1。2&#xff0c;描述M2模块3&#xff0c;描述M0模块的Verilog代码4&#xff0c;描述顶层模块5&#xff0c;电路生成的门级网表&#xff0c;netl…

Camtasia2023简单易用的电脑录屏视频剪辑软件

教学、演示、培训视频轻松制作!Camtasia非常容易学习 你不需要一个大的预算或花哨的视频编辑技能。只需录制屏幕并添加一些特效即可。无论您是有经验还是这是第一次制作视频 Camtasia都会为您提供制作高质量视频所需的一切。创建观看者实际观看的内容。视频将为您提供更多的互动…

军队文职丨2022年武警部队面向社会公开招聘351名文职人员公告!高中学历可报,11月25日前报名!

2022年武警部队面向社会公开招聘 专业技能岗位文职人员公告 根据《军队专业技能岗位文职人员聘用管理暂行规定》及有关政策规定&#xff0c;现就2022年武警部队面向社会公开招聘专业技能岗位文职人员有关事项公告如下&#xff1a; 一、招聘岗位 武警部队所属用人单位运输投送…