本文共 1208 字,大约阅读时间需要 4 分钟。
ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
Elasticsearch: 个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash: 一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
kibana: 一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
Logstash: logstash server端用来搜集日志;
Elasticsearch: 存储各类日志;
Kibana: web化接口用作查寻和可视化日志;
Logstash Forwarder: logstash client端用来通过lumberjack 网络协议发送日志到logstash server;
在每个客户端配置安装logstash,直接将日志output到ElasticSearch上,实现对数据的读取、解析和输出处理。
但是在生产环境中,在每台应用服务器运行logstash进程并将数据直接发送到Elasticsearch里,显然是不科学的,原因:
a. 过多的客户端连接对Elasticsearch是一种额外的压力;
b. 网络抖动会影响到 logstash 进程,进而影响生产应用;
c. 运维人员未必愿意在每台生产服务器上部署 Java,或者让logstash跟业务代码争夺Java资源。
所以,在实际运用中,logstash 进程会被分为两个不同的角色。运行在应用服务器上的,尽量减轻运行压力,只做读取和转发,这个角色叫做shipper;运行在独立服务器上,完成数据解析处理,负责写入Elasticsearch 的角色,叫indexer。
Logstash 社区通常习惯用 shipper,broker 和 indexer 来描述数据流中不同进程各自的角色。
在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
ELK官网:
ELK官网文档:
ELK中文手册:
注释
ELK有两种安装方式
ü 集成环境:Logstash有一个集成包,里面包括了其全套的三个组件;也就是安装一个集成包。
ü 独立环境:三个组件分别单独安装、运行、各司其职。(比较常用)
转载地址:http://ubhwl.baihongyu.com/