0x00 前言
下图形象的说明了filebeat的功能,主要包括两点:
- 支持从不同数据源收集数据并转换成事件
- 发送事件到指定的输出(支持多种输出)
- 支持从多种不同的input(上游)中接受需要收集的数据(如log input从日志文件中收集数据)
- 对收集来的数据进行加工(如多行合并,增加业务自定义字段,json encode等)
- 将加工好的数据发送到output(下游)
- Filebeat实现了ACK反馈确认机制:成功发送到output后,会将当前进度反馈给input
- Filebeat在发送output失败后,会启动retry机制,配合ACK反馈确认机制,保证了每次消息至少发送一次的语义
- Filebeat在发送output时,由于网络等原因发生阻塞,则在input端会减慢收集,自适应匹配output的状态
filebeat基础组件介绍
下面是官方的架构图,两个重要组件Input
、Harvester
:
0x01 libbeat
0x02 源码分析
从源码视角,filebeat的架构如下:
0x03 参考
- Filebeat 收集日志的那些事儿
- 【Elastic Stack系列】第四章:源码分析(一) Filebeat篇
- Configure the output
- filebeat源码解析
- 监控日志系列—- Filebeat原理
FEATURED TAGS
Latex
gRPC
负载均衡
OpenSSH
Authentication
Consul
Etcd
Kubernetes
性能优化
Python
分布式锁
WebConsole
后台开发
Golang
OpenSource
Nginx
Vault
网络安全
Perl
分布式理论
Raft
正则表达式
Redis
分布式
限流
go-redis
微服务
反向代理
ReverseProxy
Cache
缓存
连接池
OpenTracing
GOMAXPROCS
GoMicro
微服务框架
日志
zap
Pool
Kratos
Hystrix
熔断
并发
Pipeline
证书
Prometheus
Metrics
PromQL
Breaker
定时器
Timer
Timeout
Kafka
Xorm
MySQL
Fasthttp
bytebufferpool
任务队列
队列
异步队列
GOIM
Pprof
errgroup
consistent-hash
Zinx
网络框架
设计模式
HTTP
Gateway
Queue
Docker
网关
Statefulset
NFS
Machinery
Teleport
Zero Trust
Oxy
存储
Confd
热更新
OAuth
SAML
OpenID
Openssl
AES
微服务网关
IM
KMS
安全
数据结构
hashtable
Sort
Asynq
基数树
Radix
Crontab
热重启
系统编程
sarama
Go-Zero
RDP
VNC
协程池
UDP
hashmap
网络编程
自适应技术
环形队列
Ring Buffer
Circular Buffer
InnoDB
timewheel
GroupCache
Jaeger
GOSSIP
CAP
Bash
websocket
事务
GC
TLS
singleflight
闭包
Helm
network
iptables
MITM
HTTPS
Tap
Tun
路由
wireguard
gvisor
Git
NAT
协议栈
Envoy
FRP
DPI
gopacket
Cgroup
Namespace
DNS
eBPF
GoZero
Gost
Clash
gopsutil
HIDS
ELKEID
XDP
TC
Linux