文档介绍:微效劳平台建立方案
系统设计
总体框架
功能架构
微效劳平台主要由效劳支撑层、根底效劳层、通用效劳及业务效劳层组成,系统总体功能架构图如下:
受到
影响,为此方案中通过集成Apache SkyWalking 组件,来挂念我们快速定位和解决问题。
Apache SkyWalking 包括了分布式追踪、性能指标分析、应用和效劳依靠分析功能。SkyWalking 核心包括探针Probo、后台效劳 Backend、存储Storage、可视化UI 四局部组件,其中存储我们选用Elastic Search 企业级搜寻效劳来来存储监控日志信息。
SkyWalking 的探针只需要部署到要监测效劳的效劳器上,即可实现代码无侵入的方式收集效劳相关日志信息。
探针收集到数据并进展格式转换后,将数据推送到后台效劳,后台效劳对收集的数据进展分析和聚和后存储到本方案选取的存储Elastic Search 上,以便可视化呈现给最终用户。
效劳器与组件监控
为了准时了解平台的安康状况,我们需要建包括效劳器的CPU 空闲率、CPU 使用率、CPU 负载率、可用内存、内存使用率、文件系统空闲空间、网络上传、下载速率、磁盘IO 状况,数据库吞吐量、连接状况、缓冲池使用状况、查询性能,Elastic Search 的查询索引性能、内存安排、垃圾回收状况、集群安康及节点可用性等多种指标。为此,本方案承受Prometheus 组件实现平台的监控与报警功能。Prometheus 是一套开源的系统监控报警框架,他包含了多个独立的组件,其中有些组件是可选的,我们方案主要选择如下组件:
Prometheus Server: 用于收集和存储时间序列数据;
Exporters: 用 于 暴 露 已 有 的 第 三 方 服 务 metrics 给Prometheus , 本方案中主要用到了 Node-Exporter 、 Oracle Exporter 、 Mysqld-Exporter 、 ElasticSearch-Exporter 、Redis-Exporter;
Alertmanager: 从Prometheus server 端接收到报警后,会进展去除重复数据级分组操作,并通过邮件、短信等方式发出报警;
主要工作流程:
Prometheus serve 定期从配置好的exporters 中拉取metrics;
Prometheus server 在本地存储收集到的 metrics,并运行已定义好的 ,记录新的时间序列或者向 Alertmanager 推送报警信息;
Alertmanager 依据配置文件,对接收到的警报进展处理,发出告警;
在图形界面中,可视化显示采集数据;
日志中心
在各个微效劳开发实现过程中,依据业务需要我们会设置一些埋点记录应用日志,比方用 Log4j 记录应用日志信息,以便我们对应用进展分析排查问题或做统计分析。为了能够实时、可视化的方式对日志进展统计、分析、查看,方案选用 ELK 开源组件实现日志中心功能。ELK 核心组件包括:
Elasticsearch:分布式搜寻和分析引擎,具有高可伸缩、高牢靠和易治理等特点。能对大容量的数据进展接近实时的存储、搜寻和分析操作;
Logstash:数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进展过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置;
Kibana:数据分析和可视化平台。通常与Elasticsearch 协作使用,对其中数据进展搜寻、分析和以统计图表的方式呈现;
Filebeat:一个轻量级开源日志文件数据搜集器。在需要采集日志数据的效劳上安装Filebeat,并指定日志名目或日志文件后, Filebeat 就能读取数据,实时发送到 Logstash 进展解析,也可以直接发送到Elasticsearch 进展集中式存储和分析。
另外,我们经常遇到一些需要将数据库中的数据同步到Elasticsearch 中,以便提高查询效率、降低数据库效劳器压力的状况,为了实现这样的功能通常有几个方案:
代码实现〔双写〕,针对代码中进展数据库的增删改操作时, 同时进展elasticsearch 的增删改操作;
mybatis 实现,通过mybatis plugin 截取sql 语句进展分析, 针对insert、update、delete 的语句进展处理;
AOP 实现,依据制定的规章,如标准方法名,注解等进展切面处理;
Logstash,利用 Logst