filebeat、kafka
elk的架构
es数据库:非关系型数据库,json格式
logstash:收集日志
kibana:图形化的工具
↓
以上三种结合起来即为日志收集系统
filebeat
- 作用:filebeat是一款轻量级的日志收集工具,不依赖java环境,用来替代在机器上没有java环境的情况下进行日志收集
filebeat启动收集日志,只要10m左右的内存

filebeat.inputs:type: logenabled: truepaths:- /var/log/nginx/access.log- /var/log/nginx/error.logtags: ["nginx"]#标签,为了后续logstash进行识别的fields:service_name: 192.168.233.21 nginx#设定显示的索引名称log_type: nginxfrom: 192.168.233.21
type: logenabled: truepaths:- /usr/local/mysql/data/mysql_general.logtags: ["mysql"]fields:service_name: 192.168.233.21_mysqllog_type: mysqlfrom: 192.168.233.21
zookeeper + kafka
zookeeper :开源的分布式框架协调服务
zookeeper的工作机制:
1、基于观察者模式设计的分布式结构,负责存储和管理架构当中的元信息,架构当中的应用接受观察者的监控,一旦数据有变化,它会通知对应的zookeeper,保存变化的信息
特点:
-
1、最少要有3台机器,一个领导者(leader),多个跟随者(follower)组成
-
2、zookeeper要有半数以上的节点存活,集群就可正常工作,所以都是奇数台部署
-
3、全局数据一致
-
4、数据更新的原子性:要么都成功,要么都失败
-
5、实时性
zookeeper的数据架构:
1、统一命名服务,不是以ip来记录,可以用域名也可以用主机名来记录信息
2、统一配置管理,所有节点信息的配置要一致
3、统一集群管理,在整个分布式的环境中,必须实时的掌握每个节点的状态,如果状态发生变化,要及时更新

kafka消息队列
服务端向客户端发送一个指令,客户端收到指令并且通过这个指令反馈到服务端,完成一个异步方式的通信的流程
kafka消息队列 -----------》大数据场景非常合适
rabbitMQ ------------》适合处理小场景的数据请求
activeMQ -------------》适合处理小场景的数据请求
消息队列的应用场景:
1、异步处理
- 用户的短信验证码,邮件通知
2、系统解耦
-
微服务架构中的服务之间的通信
-
降低各个组件之间的依赖程度(耦合度),提高组件的灵活性和可维护性
3、负载均衡
- 高并发系统中的任务处理
4、流量控制和限流
-
根据api请求来进行处理,通过控制消息的生产速度和消费的处理速度来完成限流
-
端口:应用和应用之间通信
-
api接口:应用程序内部各个组件之间通信的方式
5、任务调度和定时任务:
- 消息队列可以定时的进行任务调度,按照消费者的计划生成对应的数据
6、数据同步和分发:
-
日志收集和数据收集
-
远程的实现数据的统一管理
7、实时数据处理
8、备份和恢复
消息队列的模式:
1、点对点(1对1),生产者生产消息,消费者消费
2、发布/订阅模式
消息的生产者发布一个主题,其他的消费者订阅这个主题,从而实现一对多
主题:topic
kafka组件的名称:
1、主题 topic,主题是kafka数据流的一个基本的单元,类似于数据的管道,生产者将消息发布到主题,其他的消费者订阅主题,来消费消息,主题可以被分区,分区有偏移量
2、生产者:将消息写入主题和分区
3、消费者:从主题和分区当中消费发布的消息,一个消费者可以订阅多个主题
4、分区:一个主题可以被分为多个分区,每个分区都是数据的有序的子集,分区越多,消费者消费的速度就越快,可以避免生产者的消费堆积,分区当中有偏移量,按照偏移量进行有序存储,消费者可以独立的读写每个分区的数据,一般是不考虑的,只有在消息出现堆积的时候,会考虑扩展分区数
kafka的消费堆积出现,应该如何处理:
消费者没有及时处理生产者发布的消息,导致消息堆积
1、扩展分区数
5、偏移量:消息在分区当中的唯一标识
test1 test2 test3 分区1
0 1 2
6、经纪人:zookeeper,存储分区的信息,kafka集群的元数据

log.retention.hours=168(单位为小时,即7天,默认是7天)
消费队列当中,数据保存的最大时间
./kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
kafka-topics.sh --create --bootstrap-server 192.168.233.61:9092,192.168.233.62:9092,192.168.233.63:9092 --replication-factor 2 --partitions 3 --topic test1
-bootstrap-server:这里的地址一般是一个集群当中的地址即可,默认为包含所有
-replication-factor 2:定义主题的副本数 2个副本,不宜超过6个,影响性能,副本数必须是偶数
–partitions 3:定义分区数
./kafka-topics.sh --list --bootstrap-server 192.168.233.61:9092:查看主题数
kafka-console-consumer.sh --bootstrap-server 192.168.233.61:9092,192.168.233.62:9092,192.168.233.63:9092 --topic test1 --from-beginning(消费)
kafka-console-producer.sh --broker-list 192.168.233.61:9092,192.168.233.62:9092,192.168.233.63:9092 --topic test1(生产)
- 修改主题的分区数:
kafka-topics.sh --bootstrap-server 192.168.233.61:9092,192.168.233.62:9092,192.168.233.63:9092 --alter --topic test1 --partitions 6

Topic: test1 TopicId: 2vuwpY75Qj2bk2e9EYS4Vg PartitionCount: 3 ReplicationFactor: 2 Configs:Topic: test1 Partition: 0 Leader: 1 Replicas: 1,0 Isr: 1,0
Topic: test1 Partition: 1 Leader: 0 Replicas: 0,2 Isr: 0,2
Topic: test1 Partition: 2 Leader: 2 Replicas: 2,1 Isr: 2,1
leader: 每一个分区都有一个leader
领导者负责处理分区的读写操作
Replicas: 副本数0 1 2分别对应每个leader
Isr: 表示和哪个leader进行同步
Partition: 分区的数量
- 删除topic:
kafka-topics.sh --delete --bootstrap-server 192.168.233.61:9092,192.168.233.62:9092,192.168.233.63:9092 --topic test1

filebeat在kafka集群上创建主题
kafka {bootstrap_servers => "192.168.233.61:9092,192.168.233.62:9092,192.168.233.63:9092"topics => "nginx_mysql"type => "nginx_kafka"codec => "json"指定数据的格式是jsonauto_offset_reset => "latest"latest:从尾部开始earliest: 从头部开始decorate_events => true传递给es的数据额外的附加kafka的属性数据
}
input {kafka {bootstrap_servers => "192.168.233.61:9092,192.168.233.62:9092,192.168.233.63:9092"topics => "nginx_mysql"type => "nginx_kakfa"codec => "json"auto_offset_reset => "latest"decorate_events => true
}
}
output {if "nginx-1" in [tags] {elasticsearch {hosts => ["192.168.233.10:9200","192.168.233.20:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}}if "mysql-1" in [tags] {elasticsearch {hosts => ["192.168.233.10:9200","192.168.233.20:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}}
}
相关文章:
filebeat、kafka
elk的架构 es数据库:非关系型数据库,json格式 logstash:收集日志 kibana:图形化的工具 ↓ 以上三种结合起来即为日志收集系统 filebeat 作用:filebeat是一款轻量级的日志收集工具,不依赖java环境&…...
js单例模式
保证一个类只有一个实例,并提供一个访问它的全局访问点 实现 静态方法实现 class SingleTon{//全局的访问点static getInstance(){// 保证一个类只有一个实例if(!this.instance){this.instancenew SingleTon()}return this.instance}}let aSingleTon.getInstance()let bSing…...
【设计模式】装饰器与代理模式的对比
文章目录 装饰器模式(Decorator Pattern)代理模式(Proxy Pattern)两者之间的区别 装饰器模式(Decorator Pattern) 装饰器模式是一种结构型设计模式,它允许你动态地将责任附加到对象上ÿ…...
Proteus-8086调试汇编格式的一点心得
这阵子开始做汇编的微机实验(微机原理与接口技术题解及实验指导,吴宁版本13章),中间出了挺多问题,解决后记录下。 先上电路图 用子电路来仿真发现仿真的时候子电路这块根本没有高低电平输出,只好把子电路拿…...
什么是Kafka?有什么主要用途?
大家好,我是锋哥。今天分享关于【什么是Kafka?有什么主要用途?】面试题。希望对大家有帮助; 什么是Kafka?有什么主要用途? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka 是一个分布式流…...
SpringBoot插件
SpringBoot的插件机制是其强大灵活性的重要体现,它允许开发人员将应用程序的不同功能模块打包为独立的插件,并可以动态地加载和卸载这些插件。以下是对SpringBoot插件机制的详细解析: 一、插件机制的概念 插件机制是一种软件开发方法&#…...
UE 5.3 C++ 管理POI 如何对WidgetComponent 屏幕模式进行点击
一.首先对很多对 World 模式下的点击,选择接受 硬件输入,就可以实现点击。 二。Screen 模式下,的POI。如果想要点击, 设置好 Layers。 在Widget下,加个Button。 即使上面有其他,但也能点击到。 。 如果相…...
Nginx实现接口复制
目录 1、前言 2、接口流复制 2.1、方式一:使用mirror指令 2.1.1、nginx配置 2.1.2、配置说明 2.1.3、测试结果 2.1.4、注意事项 2.2、方式二:使用Lua 2.2.1、安装Openresty 2.2.2、nginx配置 2.2.3、配置说明 2.2.4、测试结果 3、小结 1、前…...
Selenium 八大元素定位方法及场景扩展
Selenium 提供了八种常见的元素定位方法,用于在网页中准确找到需要操作的元素。以下是详细介绍以及一些特殊场景的解决方案。 1. ID 定位 用法: 通过元素的唯一 id 属性进行定位。 element driver.find_element(By.ID, "element_id")使用场…...
WebRTC 的优缺点详细解析
在当今数字化浪潮中,WebRTC技术凭借其独特优势,在众多联网平台中得以广泛应用,为实时通信带来了革命性变化。然而,如同任何技术一样,它也并非十全十美,存在着一些有待攻克的短板。 一、WebRTC的优点 卓越…...
B树及其Java实现详解
文章目录 B树及其Java实现详解一、引言二、B树基础1、B树定义2、B树约束 三、B树Java实现1、B树节点实现2、B树操作2.1、搜索2.2、插入2.3、删除 3、B树的Java代码实现 四、总结 B树及其Java实现详解 一、引言 B树是一种多路平衡查找树,广泛应用于数据库和文件系统…...
下载ffmpeg执行文件
打开网址:Download FFmpeg 按下面步骤操作 解压文件就可以看到ffmpeg的执行文件了,需要通过命令行进行使用: ffmpeg命令行使用参考: ffmpeg 常用命令-CSDN博客...
Redis高频知识点
Redis 目录 1 Redis是AP的还是CP的?2 介绍一下Redis的集群方案?3 什么是Redis的数据分片?4 Redis为什么这么快?5 Redis 的事务机制是怎样的?7 Redis的持久化机制是怎样的?8 Redis 的过期策略是怎么样的&a…...
Boost.Asio 同步读写及客户端 - 服务器实现详解
Boost.Asio 同步读写及客户端 - 服务器实现详解 参考文献 Boost.Asio 官方文档学习资料来源: 参考网址 一、引言 Boost.Asio作为一个强大的跨平台网络编程库,为开发者提供了丰富的网络操作接口。在之前的学习中,我们已接触到其同步读写的API函数&…...
LeetCode 3019.按键变更的次数:遍历(转小写)
【LetMeFly】3019.按键变更的次数:遍历(转小写) 力扣题目链接:https://leetcode.cn/problems/number-of-changing-keys/ 给你一个下标从 0 开始的字符串 s ,该字符串由用户输入。按键变更的定义是:使用与…...
ETCD未授权测试
一、测试环境搭建 首先拉取etcd镜像 docker pull quay.io/coreos/etcd:v3.3.1 # 查看镜像 docker images创建自定义网络 docker network create --driver bridge --subnet172.16.1.0/16 --gateway172.16.1.1 mynet # 查看网络 docker network ls创建etcd节点 节点1: docke…...
【Hystrix-1】Hystrix:构建弹性分布式系统的基石
在分布式系统的广袤星图中,服务间的调用如同星辰间的引力,维系着系统的运转。然而,这种依赖关系也如同达摩克利斯之剑,一旦某个服务出现故障,便可能引发连锁反应,导致整个系统的崩塌。Hystrix,如…...
【超详细】MIT 液态神经网络(LNNs)——深度学习新动向
✅作者简介:双一流博士,人工智能领域学习者,深耕机器学习,交叉学科实践者。已发表SCI1/区top论文10+,授权专利4件,公开10+。可提供专利思路和指导,提供科研小工具,分享科研经验,欢迎交流! 📌个人主页: https://blog.csdn.net/allein_STR?spm=1011.2559.3001.5343…...
Git最便捷的迁移方式
#当公司要求git需要迁移时,你是不是感觉到束手无策。今天带来给大家最快,最便捷的迁移方式 这个命令是用于重命名git仓库中的远程仓库名。在这个命令中,我们将远程仓库的名字从"origin"改为"old-origin"。 git remote …...
2024AAAI SCTNet论文阅读笔记
文章目录 SCTNet: Single-Branch CNN with Transformer Semantic Information for Real-Time Segmentation摘要背景创新点方法Conv-Former Block卷积注意力机制前馈网络FFN 语义信息对齐模块主干特征对齐共享解码头对齐 总体架构backbone解码器头 对齐损失 实验SOTA效果对比Cit…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...
