2023年7月17日发(作者:)
日志分析平台建设方案
目录
一、 现状和需求 ........................................................... 2
(一) 现状与问题 ......................................................... 2
(二) 需求说明与分析 ..................................................... 2
二、 建设目标 ............................................................. 2
三、 系统设计 ............................................................. 2
(一) 技术选型 ........................................................... 2
(二) 系统架构 ........................................................... 2
1. 架构图 ........................................................... 2
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服务把接受到的日志经过格式处理,转存到本地的kafkabroker+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 上安装 Filebeat,并指定日志目录或日志文件后,Filebeat 就能读取数据,迅速发送
到 Logstash 进行解析,亦或直接发送到 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集群搭建请参考:
elk日志分析系统(一)
elk日志分析系统(二)
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689543515a264800.html
评论列表(0条)