分布式实时日志分析解决方案ELK部署架构
ELK简介:
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash。
- Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
- Logstash 。数据收集引擎,相较于Filebeat比较重量级,但它集成了大量的插件,支持丰富的数据源收集,主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
- Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
- Filebeat隶属于Beats。目前Beats包含四种工具:
- Packetbeat(搜集网络流量数据)
- Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
- Filebeat(搜集文件数据)
- Winlogbeat(搜集 Windows 事件日志数据)
Filebeat是一款轻量级,占用服务资源非常少的数据收集引擎,它是ELK家族的新成员,可以代替Logstash作为在应用服务器端的日志收集引擎,支持将收集到的数据输出到Kafka,Redis等队列。
安装说明
- Logstash的运行依赖于Java运行环境, Logstash 1.5以上版本不低于java 7推荐使用最新版本的Java。
- ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例,是基于Lucene构建的。支持时间时间索引和全文检索。它对外提供一系列基于java和http的api,用于索引、检索、修改大多数配置。下载
软件名称 | 版本 | 说明 |
---|---|---|
JDK | JDK 1.8.0_151 | Java环境解析器 |
filebeat | ilebeat-6.3.2-linux-x86_64 | 前端日志收集器 |
Logstash | logstash-6.3.2 | 日志收集、过滤、转发 |
zookeeper | zookeeper-3.4.11 | 资源调度、协作 |
Kafka | kafka_2.10-0.10.0.1 | 消息通信中间件 |
elasticsearch | elasticsearch-6.3.2 | 日志存储 |
kibana | kibana-6.3.2-linux-x86_64 | 日志展示、分析 |
架构图
架构解读: (整个架构从左到右,总共分为5层)
- 第一层、数据采集层
- 最左边的是业务服务器集群,上面安装了filebeat做日志采集,同时把采集的日志分别发送给两个logstash服务。
- 第二层、数据处理层,数据缓存层
- logstash服务把接受到的日志经过格式处理,转存到本地的kafka + zookeeper集群中。
- 第三层、数据转发层
- 这个单独的Logstash节点会实时去kafka+zookeeper集群拉数据,转发至ES集群上。
- 第四层、数据持久化存储
- ES集群会把收到的数据,写磁盘,建索引库。
- 第五层、数据检索,数据展示
- ES Master + Kibana 主要协调ES集群,处理数据检索请求,数据展示。
参考地址
本文来自博客园,作者:博客-涛,转载请注明原文链接:https://www.cnblogs.com/htmsmile/p/17605615.html