前言:
微服务架构在给我们提供强大业务技术支持的同时,给系统运维管理也增加了难度。传统人工系统运维,主要有以下两个弊端:
⇒及时性比较差,大多都是遇到问题才去分析排查;
⇒微服务架构下应用服务之间关系错综复杂,导致问题排查很难精准找到问题点,过程费时费力。

往往等问题出现了再去排查处理,已经对业务流程产生了影响,严重的可能会阻塞生产过程,造成不可估量的损失。因此如何对程序进行持续监测、自动化分析潜在风险,快速通知相关运维人员规避风险,就成了微服务架构体系下一个亟需解决的重点和难点。

本文详细描述了程序监测和异常预警的架构体系设计,包括程序监测分析方法及异常预警范围。
微服务应用程序部署完成后,保障系统能够持续可靠、稳定,需要考虑两方面影响因素:
环境稳定性。如网络连通性、操作系统配置、内存占用情况、磁盘使用率等;
服务健康状态。如Nginx、Redis、Mysql、Nacos、网关等服务,实时监测服务运行状态,通过监测数据分析服务的健康状态。

通过对环境和服务两方面监测分析,可以明确已经发生的异常和潜在的风险,例如环境配置改变、服务器网络不稳定、服务异常下线、服务负载过高等,将这些异常信息通过多种渠道及时通知运维人员,并提供处理建议和方法指引,快速处理异常,保证系统服务正常运行。

因此,程序监测和异常预警就是来保障系统服务持续可用的两大举措,一方面需要对故障和异常及时发现,另一方面及时通知并提供处理措施和方法,及时处理故障和异常。本文将从架构设计及建设内容两个角度出发来阐述所建设的智能监测体系。

                                    △故障诊断和异常预警导图

系统智能监测与异常预警,主要从三个方面入手,分别是:运行环境监测、服务状态监测、服务性能监测。

一.智能监测
▶(1)运行环境监测

程序运行环境的状况关系到微服务架构中的每个服务的运行状态和可用性。运行环境监测主要从三个方面入手:
1)网络环境:如服务器连通性,检查是否有服务器节点是宕机状态或者网络环境有变化导致主机连通性异常,网络连通性异常会导致服务不能注册到Nacos中或者服务访问不到;
2)系统配置: 操作系统配置往往会影响智能运维平台自身功能的使用,如用户名密码被改变了,h2数据库中的密码没有同步修改,会导致远程文件拷贝操作出错;expect等组件缺失会导致shell脚本调用业务失败;ssh连接数、文件句柄数、目录用户权限都会影响文件拷贝的成功与否;

                                   △硬件环境诊断导图

3)硬件资源监控:硬件资源会直接影响服务的执行效率或者直接导致服务不可用,一般从cup、内存、磁盘等方面进行监控。由于cpu、内存、磁盘的使用情况会不断动态变化,因此需要对这些数据进行收集、统计、图表展示,实时监控,通过实时统计,可以分析出来哪台机器的硬件资源比较紧张,如果硬件资源长期处于紧张状态,建议及时处理。比如增减硬件资源配置,或者卸载部分服务,服务迁移等。

▶(2)中间件监测
中间件服务在微服务架构体系中起着至关重要的作用,是微服务产品服务能够正常运行的基础,包括文件共享NFS、代理服务Nginx、内存数据库Redis、关系型数据库Mysql和Oracle、注册中心Nacos、文件传输服务sftp、分布式查询引擎Presto、图数据库Neo4j、文档数据库MongoDB。架构如图中间件架构图所示:

                                       △中间件导图

▶(3) 应用服务监测
应用服务指的是除中间件外的所有产品服务,应用服务异常监测和分析从三方面入手:服务状态、服务接口及服务性能,具体内容如下:

1)服务状态方面的监控分析:目标是分析出来一些问题,比如主机的服务经常挂掉,由此可以推断出来这个主机性能比较差,不稳定;再比如某些服务在某一天经常挂掉,可能是那一天系统访问量特别大,需要及时采取措施缓解系统访问压力。

2)接口访问监测:主要是捕获执行异常的接口数据,比如响应非常慢的接口,调用出错的接口,哪些接口调用次数比较多等。可能需要存储大量接口请求数据,通过图表统计来可视化反映接口响应情况。

3)服务性能监控:主要是对服务代码运行时数据区的一个动态监测。比如线程数监控、JVM内存使用情况分析、垃圾收集器工作情况等。同样需要动态收集大量时间点JVM各指标数据,以时间维度做数据可视化统计分析。并通过数据分析,及时发现问题。

                                        △应用诊断导图

二.异常预警
异常预警智能监测和异常分析的最终目标是及时反馈用户或运维人员,并通过提供的解决措施及方法快速解除异常,让系统在最短的时间内恢复正常状态。

▶ (1)运行环境预警
运行环境异常一般不能系统自动修复,需要运维人员手动处理,比如服务器网络环境异常、磁盘爆满等需要提示出来,运维人员自行处理即可。有些异常需要说明处理措施,比如登录密码改变了,需要同步修改h2数据里面存的密码密文。

▶ (2)中间件预警
中间件异常一般分这样几种情况:集群中某节点服务不可用,集群配置异常(如Mysql主、主同步异常、Redis哨兵异常、Nacos同步异常)。这些异常需要及时提示出来,运维人员线下处理或者通过智能运维平台提供的功能进行处理。

▶ (3)应用预警
应用异常故障分为三类:服务状态、接口响应情况、服务性能。

1)服务状态,指的是应用服务的启停状态,比如某个应用服务挂了,提示出来即可,运维人员可以通过智能运维平台的功能或者后台启动服务即可。但是更为重要的是需要通过长时间监控分析出来哪个主机的哪些服务经常掉线,哪些时间段经常掉线等。

2)接口响应预警,是通过大量接口响应时间数据,过滤出经常响应比较慢的接口,这些接口应该及时反馈给开发人员进行接口性能优化。

3)服务性能状态指的是服务所在的JVM实例中资源使用情况,比如老年代内存快满了,需要提示出来,及时调整JVM资源配置参数或者重新启动服务。

通过智能监测和异常预警,提高系统运维效率,减少系统故障率,可以让用户在体验微服务架构的便利性的同时,让系统运维工作更加轻松,不断提升用户体验。

美林数据——释放数据潜能,激发企业活力
为你带来最新大数据资讯
欢迎关注与评论!

大数据分析工具构建智能监测与异常预警相关推荐

  1. 大数据分析工具BI应用在哪方面

    大数据分析工具BI,是企业数据化管理的一整套方案,用于将企业中现有的数据进行有效整合,快速准确的提供决策依据,帮助企业做出明智的业务经营决策,解决企业管理问题. 随着全球数字化.网络宽带化.互联网应用 ...

  2. 大数据领域的12大工具,市面上主要的大数据分析工具都在这了!

    大数据工具让企业能够从数据仓库获得洞察力,从而在数据驱动的业务环境中提供重要的竞争优势. 为了满足旺盛需求,大数据工具在迅速遍地开花.在大数据这一概念和业务战略出现以来的十年间,市面上出现了成千上万执 ...

  3. 大数据分析工具如何选择

    随着大数据技术与物联网.云计算.人工智能等新技术的相互融合渗透,多技术融合的新应用正在不断涌现,大数据已广泛应用于各个领域.我国大数据产业发展快速增长,产业规模不断扩大,产业链条加速完善,企业实力不断 ...

  4. 2021年好用的几款大数据分析工具

    大数据分析能够帮助认识数据的真实价值,而大数据分析工具在研究大量数据的过程中寻找模式.相关性和其他的有用信息,来帮助人们和企业更好地适应变化,并且做出那些真正明智的决定.一个好用的大数据分析工具,能够 ...

  5. 从月薪30K被裁,到跳槽阿里,多亏了这几个大数据分析工具

    就在前去年年底,我有一个在某旅游公司上班的好朋友被裁员了,他的岗位是大数据分析师,就是通过可视化来给用户做画像和分析整个行业趋势的,那为什么会被裁员呢? 这图已经实锤了 众所周知,旅游业是靠用户来生存 ...

  6. SaaSBase:推荐七款超好用的大数据分析工具

    如今,大小企业都可以利用商业智能工具来理解复杂的大数据.通过收集和分析这些数据,并将其转化成易于理解的报告,这些解决方案可以为企业提供有价值的洞察力,从而提高企业利润.SaaSBase(saasbas ...

  7. 大数据分析工具有哪些特性

    近年来,随着云和大数据时代的来临,数据可视化产品已经不再满足于使用传统的数据可视化工具来对数据仓库中的数据抽取归纳并简单的展现.传统的数据可视化工具仅仅将数据加以组合,通过不同的展现方式提供给用户,用 ...

  8. 2020年使用最多的大数据分析工具

    众所周知,数据是当今 IT 领域的一切.此外,这些数据每天都在大量增长.早些时候,我们常谈论千字节和兆字节.但是现在,我们谈论的是TB.PB.单纯的数据是没有意义的,直到它变成有用的信息和知识,进而帮 ...

  9. 2020十大最佳大数据分析工具,果断收藏

    作者:Sunita Chauhan 转自:InfoQ https://www.infoq.cn/article/IEIa8zX2s0KpLYi34ocE 营销的基本原理是一致的,每个人都喜欢洞察力,因 ...

最新文章

  1. 前端开发之走进Vue.js
  2. AttributeError: module ‘tensorflow‘ has no attribute ‘placeholder‘
  3. 在bash脚本中进行浮点运算
  4. [Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel
  5. 恕我直言:职场上太低调不是装,是愚蠢!
  6. 确保Kubernetes环境安全的3种最佳实践
  7. python s append_Python Pandas Series.append()用法及代码示例
  8. 连接好友服务器失败 无法显示,不显示好友的网络状态
  9. cowpatty无线破解之——WPA-PSK字典攻击
  10. 数据结构(C语言)-串
  11. 设计分享|74LS138译码器实现流水灯
  12. 人工智能之产生式系统(c++实现)
  13. 2021强网杯全国网络安全挑战赛Writeup
  14. java的下标循环_java的for下标循环遍历和foreach循环遍历测试
  15. “pip-script.py”is not present的问题
  16. USACO2018 OPEN TEST - Silver
  17. java怎么通过坐标定位控件_[已解决] 可以定位到控件, 但每次执行 click () 方法会报空指针错误 java.lang.NullPointerException...
  18. 亚马逊海外购 “真黑五”全球狂欢 推出“巅峰6天”钜惠风暴
  19. diy网页加速服务器教程,巧用网络加速工具 加速网页浏览速度
  20. 软件测试系列第一阶段:第一课 计算机基础

热门文章

  1. CVPR2022|比VinVL快一万倍!人大提出交互协同的双流视觉语言预训练模型COTS,又快又好!
  2. Xilinx Zynq UltraScale+ MPSoC 介绍
  3. 案例 | 沃尔玛 x 腾讯云 Serverless 应用实践,全力保障消费者购物体验
  4. 手机PIN、PUK码之谜
  5. 深入理解 TORCH.NN
  6. HTTP长相随--期盼已久的HTTP2.0、WebDAV协议、 QUICHTTP3.0
  7. 8 款浏览器兼容性测试工具介绍,需要的赶紧收藏吧
  8. laravel物流地址查询
  9. vi编辑器上下左右出现ABCD无法正常使用
  10. 基于SqlServer环境下创建触发器、级联更新(删除、修改)