认识ELK
一个完整的集中式日志系统,需要包含以下几个主要特点:
收集:能够采集多种来源的日志数据。
传输:能够稳定的把日志数据传输到中央系统。
存储:如何存储日志数据。
分析:可以支持 UI 分析。
警告:能够提供错误报告,监控机制
官网https://www.elastic.co/cn/
一、需求背景
(1)业务发展越来越庞大,服务器越来越多;
(2)各种访问日志、应用日志、错误日志量越来越多,导致运维人员无法很好的去管理日志;
(3)开发人员排查问题,需要到服务器上查日志,不方便;
(4)运营人员需要一些数据,需要我们运维到服务器上分析日志。
二、ELK即 Elasticsearch 、 Logstash、Kibana
(1)Elasticsearch:开源分布式搜索引擎,提供搜集、分析、存储数据3大功能。它的特点有:分布式(即横向扩容),零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
https://www.elastic.co/guide/cn/elasticsearch/guide/current/foreword_id.html
(2)Kibana:也是一个开源和免费的工具,Kibana可以为 Logstash和 ElasticSearch提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
(3)Logstash:主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,Client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往Elasticsearch上去。(采集日志,把日志解析为json格式然后交给Elasticsearch)
(4)Beats:在这里是一个轻量级日志采集器,其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、CPU、io等资源消耗比较高。相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计
(5)X-pack:对Elastic Stack提供了安全、警报、监控、报表、图表于一身的扩展包,收费。
三、ELK架构