文 |Mr-Bruce 作为系列文章的第四篇,本文将重点探讨数据采集层中的ELK日志系统。 日志,指的是后台服务中产生的log信息,通常会输入到不同的文件中,比如Django服务下,一般会有nginx日志和uWSGI日志。这些日志分散地存储在不同的机器上,取决于服务的部署情况了。 如果我们依次登录每台机器去查阅日志,显然非常繁琐,效率也很低,而且也没法进行统计和检索。因此,我们需要对日志进行集中化管理,将所有机器上的日志信息收集、汇总到一起。完整的日志数据具有非常重要的作用:
ELK是一套开源的集中式日志数据管理的解决方案,由Elasticsearch、Logstash和Kibana三个系统组成。 最初我们建设ELK日志系统的目的是做数据分析,记得第一个需求是期望利用nginx的日志,从API请求的参数中挖掘出用户的位置分布信息。 后来该系统在追踪恶意刷量、优化耗时服务等方面都发挥了重要作用,而且随着对Elasticsearch的认知加深,我们将其应用到了其他方面的数据存储和分析中。 本文的重点是结合自身实践来介绍如何使用ELK系统、使用中的问题以及如何解决,文中涉及的ELK版本是:Elasticsearch 2.3、Logstash 2.3、Kibana 4。 ELK整体方案ELK中的三个系统分别扮演不同的角色,组成了一个整体的解决方案。Logstash是一个ETL工具,负责从每台机器抓取日志数据,对数据进行格式转换和处理后,输出到Elasticsearch中存储。 Elasticsearch是一个分布式搜索引擎和分析引擎,用于数据存储,可提供实时的数据查询。Kibana是一个数据可视化服务,根据用户的操作从Elasticsearch中查询数据,形成相应的分析结果,以图表的形式展现给用户。 ELK的安装很简单,可以按照“下载- |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|