在工作中随着业务量的增大和项目的增多,日志量随之增大,我们需要对日志进行集中化管理,将所有机器上的日志信息收集、汇总到一起。完整的日志数据具有非常重要的作用:
1)信息查找:通过检索日志信息,定位相应的bug,找出解决方案。
2)服务诊断:通过对日志信息进行统计、分析,了解服务器的负荷和服务运行状态,找出耗时请求进行优化等等。
3)数据分析:如果是格式化的log,可以做进一步的数据分析,统计、聚合出有意义的信息,比如根据请求中的商品id,找出TOP10用户感兴趣商品。
开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成:
1)ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。在elasticsearch中,所有节点的数据是均等的。
2)Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到搜索,logstash带有一个web界面,搜索和展示所有日志。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
3)Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志.
4)beats中的filebeat可以将多台机器的日志数据进行采集发送至logstash或elasticsearch,然后通过kiabana进行页面可视化展示。
(注:安装以上服务需要先安装JAVA,并配置好环境变量)
安装篇
系统环境:CentOS Linux release 7.4.1708 (Core)
软件下载:https://www.elastic.co/downloads (所需的软件都可以在该网站下载,所有软件版本都要保持一致)
,以下提供下载地址:
elasticsearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.tar.gz
logstash:https://artifacts.elastic.co/downloads/logstash/logstash-5.4.1.tar.gz
kibana:https://artifacts.elastic.co/downloads/kibana/kibana-5.4.1-linux-x86_64.tar.gz
filebeat:https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.1-linux-x86_64.tar.gz
1.Elasticsearch 源码包的安装与配置:
解压elasticsearch,我这里用的是elast