基本概念
ElasticSearch:是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。【百度百科】
Logstash:是一个具有实时渠道能力的数据收集引擎,主要用于日志的收集与解析,并将其存入 ElasticSearch中。与ElasticSearch有很高的适配性。
Kibana:是一款基于 Apache 开源协议,使用 JavaScript 语言编写,为 Elasticsearch提供分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度的表图。
Kibana:是一款基于 Apache 开源协议,使用 JavaScript 语言编写,为 Elasticsearch 提供分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度的表图。
心得
ELK 主要的作用是将日志数据进行标准化、集中化管理,最终达到可视化的效果。
其搭建极其简单,而重点在是在日志格式的定义和整体架构的规划。
日志格式的影响:
例如对Nginx日志不做处理的,只能起到日志集中化的作用。传输过来的日志信息全部被一个message变量标识着,无法去区分其中的细节,包括源IP、访问页面、状态码等。数据呈现可视化的效果也将极差。所以需要在日志产生时就定义其格式,并在Logstash收集处定义传输输出的日志格式(如源IP、访问页面、状态码都用变量定义起来),再将日志数据传输Elasticsearch。最终在Kibana中对这些数据做可视化。
整体规划的影响:
产品的用户上一定规模时,对服务端(Elasticsearch及Kibana)收集及处理的能力将是一个非常大的考验。可适当在中间层级引进缓存技术,也可采取分布式的结构的减少这一压力。