ELK介绍
【ELK简介】
随着业务的不断扩大,服务器的不断增加,各种服务的不断增加,相应的日志量也大量增加,访问日志、应用日志、错误日志种类繁多。
从两个角度进行分析:1、开发人员的角度来说,还需要去到服务器上查看繁多的日志,无法高效的定位问题所在,所以并不方便;2、运营人员的角度来说,他们也需要获取一些特定的数据,日志数据庞大,运维通过grep awk来分析如此庞大的日志就显得异常麻烦了。那么可以做到收集并能方便快速多维度准确的分析日志的ELK应运而生,目前已经成为最流行的集中式日志解决方案。
总的来说,ELK的优势在于能够及时高效的通过分析日志准确的暴露问题所在。
【ELK组件介绍】
ELK由Elasticsearch(下文统一使用es代替)、Logstash、Kibana三大件构成,近年来随着技术的更新,又新添了一个组件--Filebeat,当然现在还有结合kafaka、redis、rabbitmq等模式,本文着重讲解es+Logstash+Kibana+Filebeat模式。
在开讲整体架构之前先带大家了解一下ELK相关一些名词,es是一个接近实时的搜索平台,换一个角度而言es就是一个非关系型数据库,,在ELK中常见的一些名词可以和MySQL数据库进行类比,如下表格所示:
Elasticsearch | MySQL |
Index(索引) | Database(数据库) |
Type(类型) | Table(表) |
Document(文档) | Row(行) |
Field(字段) | Column(列) |
Mapping | Schema |
GET http:// | SELECT * from table |
PUT http:// | UPDATE table SET |
先来讲一下这个模式的架构之后再细细分析每一个组件吧。先上文字描述:
Filebeat部署在需要收集的日志所在的服务器上,然后通过Filebeat进行日志收集传送至logstash,logstash收到filebeat传来的日志后,根据配置的策略对数据进行
【filebeat】
其实在早期,采集日志的工作是由Logstash来完成,但是它在消耗资源方面(内存、cpu、io等)的能力实在太强,如果用它同时进行采集和分析,那资源消耗可想而知,所以有了在ELK 5.0之后,占用cpu和内存资源可以忽略不计的beat大家族就诞生了,beat大家族的六个成员如下:
1、Packetbeat: 收集网络流量数据
2、Metricbeat: 收集系统,进程,文件系统级别cpu,内存使用情况
3、Filebeat: 收集日志等文件数据
4、Winlogbeat windows:收集windows事件日志数据
5、Audibeat:收集审计日志
6、Heartbeat:收集系统运行时的数据
持续更新中,敬请期待.......