Elastic Stack技术栈深入研究
elastic stack技术整理理
elastic stack栈涉及到以下⼏个组件
beats:⽤于轻量级⽇志采集,⽀持⽂件采集,系统数据采集,特定中间件数据采集等
logstash:⽤于⽇志结构化,标签化,⽀持DSL⽅式将数据进⾏结构化
elasticsearch:⽤于提供⽇志相关的索引,使得⽇志能够有效的检索
kibana:⽤于提供⽇志检索,特定metric展示的⾯板,⽅便使⽤的UI
x-pack:⽤于监控与预警相关的组件,可以集成到es中,kibana有特定的⾯板⽤于展示UI
curator:⽤于管理ES集群的索引相关的数据,对索引进⾏分析
beats组件
beats是elasticstack的⼀一员,属于⼀一种轻量量级的⽇日志采集组件,使⽤用go语⾔言开发,没有依赖,可
以简化部署和运维操作,使⽤用yaml格式的配置⽂文件来采集⽇日志或者系统信息,⽬目前beats⽀支持的
事件采集包括:⽹网络数据,⽇日志⽂文件,mysql,system,mongodb,kafka,nginx,redis,
zookeeper,haproxy等
beats提供了了⼀一个易易于开发和扩展的框架⽤用于扩展相关的监控指标的采集来满⾜足各种不不同的指标
采集需求,logstash提供了了对beats数据采集的接⼊入接⼝口,因此只需要使⽤用beats⼯工具进⾏行行数据采
集,然后将数据推到logstash集群即可;另外beats的数据还⽀支持直接写⼊入es,这种场景适合不不需
要针对性的对数据做结构化的场景。
⽬目前beats⽀支持以下⼏几种:
filebeat:⽤用于采集⽂文件数据
metrcbeat:⽤用于采集各种系统数据
packetbeat:⽤用于采集⽹网络数据
winlogbeat:⽤用于采集Windows系统数据
heartbeat:⽤用于采集⼼心跳数据【未开发完成】
beats使⽤用指南
下载beats
使⽤用yaml配置beats
启动beats
使⽤用beats组件需要测试的项
filebeats采集数据的速率
采集数据对系统资源的占⽤用
cpu
mem
采集数据时新增⽂文件,减少⽂文件,变更更⽂文件采集⽅方式
采集数据时如果接收数据的集群异常是否能够正确处理理
logstash数据处理理
logstash的hello world
logstash -e 'input { stdin { } } output { stdout {} }'
在logstash中有输⼊,过滤,输出即:input,filter,output三种配置,这三种功能在logstash中
是通过不不同的线程进⾏行行处理理,通过top命令然后H可以查看logstash的各个线程的⼯工作情况