认识ELK
1 、需求背景
(1)业务发展越来越庞大,服务器越来越多;
(2)各种访问日志、应用日志、错误日志量越来越多,导致运维人员无法很好的去管理日志;
(3)开发人员排查问题,需要到服务器上查日志,不方便;
(4)运营人员需要一些数据,需要我们运维到服务器上分析日志。
2、ELK 即:ElasticSearch、Logstash、Kibana
(1)Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据3大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
文档https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
(2)Logstash主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,Client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往Elasticsearch上去。
(3) Kibana是一个数据可视化组件(也是一个开源和免费的工具),把处理后的结果通过web界面展示。Kibana可以为 Logstash和 ElasticSearch提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
(4)Beats在这里是一个轻量级日志采集器,其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。
(5) x-pack对Elastic Stack提供了安全、警报、监控、报表、图表于一身的扩展包,是收费的。
3、ELK架构
4、主要特点:
收集:能够采集多种来源的日志数据。
传输:能够稳定的把日志数据传输到中央系统。 存储:如何存储日志数据。
分析:可以支持 UI分析。
警告:能够提供错误报告,监控机制。
ELK一般则提供一整套的解决方案,并且都是开源软件,之间相互配合,完美衔接,高效的满足了很多场合的应用。
列如:
如果我们查看某些服务为什么错误,可以直接使用grep等命令进行查看,可是如果我们查看规模较大,日志较多的时候,此方法效率就小了很多。
现在我们对待大规模的日志,解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问,就需要一个完整的集中式日志系统----ELK日志分析系统
5、ELK介绍
(1)官网https://www.elastic.co/cn/
(2)中文指南https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details
(3) ELK Stack (5.0版本之后)—> Elastic Stack == (ELK Stack + Beats)