日志分析平台建设方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
日志分析平台建设方案
目录
一、现状和需求 (2)
(一) 现状与问题 (2)
(二) 需求说明与分析 (2)
二、建设目标 (2)
三、系统设计 (2)
(一) 技术选型 (2)
(二) 系统架构 (2)
1. 架构图 (3)
2. 架构分析 (3)
(三) 系统介绍 (3)
四、实施方案 (4)
(一) 系统配置 (4)
1. 软件 (4)
2. 硬件 (4)
(二) 系统搭建 (4)
一、现状和需求
(一)现状与问题
1.日志文件分散在各个应用服务器,开发人员必须远程登录才能查看日志,不利于
服务器安全管控,加大生产服务器的风险;
2.服务器上各项目日志配置很随意,文件分布杂乱,没有统一的规范和管理;
3.日志文件占用服务器大量的硬盘空间,如不及时清理会发生硬盘占满,影响系统
的正常运行;
4.对于超过百兆的日志文件根本没法打开和关键字搜索,不利于问题的快速定位和
排查;
5.集群和分布式的系统需要查看多个服务器的日志
6.日志保存的时间不统一,不能长时间保存日志
(二)需求说明与分析
1.不需要开发人员登录生产服务器就能查看日志;
2.统一规范日志的配置和输出格式;
3.实时的将日志文件从服务器中迁出;
4.提供日志的检索和统计分析的平台;
二、建设目标
搭建支持高并发高可靠的日志分析平台,方便开发人员快速的检索日志,排查问题,同时提供友好的分析和统计的界面。
三、系统设计
(一)技术选型
针对这些问题,为了提供分布式的实时日志搜集和分析的监控系统,我们采用了业界通用的日志数据管理解决方案- 它主要包括Elasticsearch 、Logstash 和Kibana 三个系统。通常,业界把这套方案简称为ELK,取三个系统的首字母。调研了ELK技术栈,发现新一代的logstash-forward即Filebeat,使用了golang,性能超logstash,部署简单,占用资源少,可以很方便的和logstash和ES对接,作为日志文件采集组件。
所以决定使用ELK+Filebeat的架构进行平台搭建。
为了支持日志的高并发和高可靠需要进了消息队列(MQ),这里选择了kafka,相对其他消息中间件,kafka有支持大并发,快速持久化等优点,而且ELK+Filebeat对kafka 的兼容性也很好。
最终,我们采用Elasticsearch+ Logstash+ Kibana+ Filebeat+ Kafka+ Zookeeper的架构搭建日志分析平台。
(二)系统架构
1.架构图
2.架构分析
第一层、数据采集层
最左边的是业务服务器集群,上面安装了filebeat做日志采集,同时把采集的日志分别发送给两个logstash服务。
第二层、数据处理层,数据缓存层
logstash服务把接受到的日志经过格式处理,转存到本地的kafka broker+zookeeper 集群中。
第三层、数据转发层
这个单独的Logstash节点会实时去kafka broker集群拉数据,转发至ES DataNode。
第四层、数据持久化存储
ES DataNode 会把收到的数据,写磁盘,建索引库。
第五层、数据检索,数据展示
ES Master + Kibana 主要协调 ES集群,处理数据检索请求,数据展示。
(三)系统介绍
1.Elasticsearch:分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特
点。基于Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜
索和分析操作。通常被用作某些应用的基础搜索引擎,使其具有复杂的搜索功
能;
2.Logstash:数据收集额外处理和数据引擎。它支持动态的从各种数据源搜集数
据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定
的位置;
3.Kibana:数据分析和可视化平台。通常与Elasticsearch 配合使用,对其中数
据进行搜索、分析和以统计图表的方式展示;
4.Filebeat:ELK 协议栈的新成员,在需要采集日志数据的server 上安装Fileb
eat,并指定日志目录或日志文件后,Filebeat 就能读取数据,迅速发送到Lo
gstash 进行解析,亦或直接发送到Elasticsearch 进行集中式存储和分析。
5.Kafka: 数据缓冲队列。作为消息队列解耦了处理过程,同时提高了可扩展性。
具有峰值处理能力,使用消息队列能够使关键组件顶住突发的访问压力,而不
会因为突发的超负荷的请求而完全崩溃。
6.Zookeeper:是一种在分布式系统中被广泛用来作为:分布式状态管理、分布
式协调管理、分布式配置管理、和分布式锁服务的集群。kafka增加和减少服
务器都会在Zookeeper节点上触发相应的事件kafka系统会捕获这些事件,进
行新一轮的负载均衡,客户端也会捕获这些事件来进行新一轮的处理。四、实施方案
(一)系统配置
1.软件
Elasticsearch-6.0.0
logstash-6.0.0
kibana-6.0.0
filebeat-6.0.0
JDK 1.8
Kafka_2.12-1.1.0
Zoopkeeper-3.4.12
2.硬件
4台内网linux服务器,centos7系统;
配置要求:内存:3*4G+8G,硬盘:3*20G+500G,10M带宽;
独立的外网域名
(二)系统搭建
具体的ELKF+kafka集群搭建请参考: