案例分享 | 金融微服务场景下如何提升运维可观测性
云原生环境下金融业务的微服务化改造以及分布式架构的部署,使得业务与开发部门的关联更为紧密,传统运维监控已满足不了业务运营需求,亟需建设具备可观测性的运维体系。所以这次我们以某金融客户的实践案例为例,跟大家说一说在金融微服务场景下应如何提升运维可观测性,从而助力业务转型。
一、行业痛点
随着金融行业数字化转型战略实践工作的深化推进,数字化业务快速发展,日志类型和日志量急速增加,但各类日志数据(软硬件)分散且繁杂,缺乏统一的全生命周期管理和海量日志的监控分析处理能力,给业务监控告警、日志搜索分析、审计溯源造成了一定制约。
其次,在云原生环境中,随着微服务化进程加快,很多业务系统微服务化后带来了复杂的运维排障屏障。总体难点表现如下:
1.生产环境业务级异常感知滞后
这导致了故障影响范围往往被放大,且降低了服务品质。其次生产故障定位处理,缺少快速有效的辅助工具,也影响了业务连续性。
2.增加问题排查难度
各系统日志数据分散存储,日志路径、格式、打印规范等各有差异,增加问题排查难度技术迭代演进(微服务化、容器化等),传统运维方式支撑不足。
3.国家相关法规要求
国家网络安全法要求及行业监管机构要求对日志进行统一的采集、存储、分析、可视化等,配合审计需实现异常行为快速提取与回溯。
二、建设目标
以云原生可观测性建设为主目标,拉通各类基础监控、数据采集、日志等分析工具的数据孤岛,以云原生领域中对业务场景的需求为驱动,通过技术手段实现业务运营全过程的透明化,提升业务连续性保障,提升服务开发上线效率,提高IT服务质量等,在运维能力提升的同时,亦提升用户体验。
三、解决方案
本方案主要通过协助金融客户完善管理规范制度、建设统一日志平台、整合观测数据三个关键步骤助力可观测性提升。主要从以下几个方面入手解决
1.完善管理制度规范
技术平台为管理服务,要做好技术平台,就需要首先梳理、完善管理规范制度,我司与行方客户一起,对现有的客户规范、业内规范进行调研、条目梳理并进行日志管理规范的总结及能力应用规划。
如对业务日志的规范化进行了4层的丰富度说明,并根据不同的级别梳理了不同的规范度、可以实现的不同效果、达到的不同能力级别,通过规范的梳理,可以更好的评估客户现有不同业务系统及其日志的规范化程度,并根据客户数字化推进的阶段,反推不同业务系统的下一步管理要求。
2.建设统一日志平台
对数字化转型的提升,管理制度的规范化是道,具体实现,还需要有术的支持,我们这里的术就是基于擎创的日志管理平台作为基础底座,通过整合监控及调用链数据,以可观测性提升为核心的统一日志平台。
平台架构主要分4层:最底层为数据源层及接入层。日志数据、监控数据、调用链数据都归为数据源,对不同的数据源,通过不同的采集技术进行纳管,如agnet,syslog、API等。
在数据处理层,采用数据中台进行数据缓冲、计算、存储,把原始的最基础的数据通过规范化、清洗、聚合计算、数据关联等方式实现从数据到业务运行状态观测的转变。
在应用层,通过前端进行交互界面给运维使用方以直观、高效的操作体验,在后端及中间件层,对运行状态观测数据进行缓冲高效查询及部分业务逻辑处理。
3.整合观测数据
数据源的丰富度及质量直接决定了可观测性的挖掘深度,在现有的环境中,我们接入了操作系统、数据库、中间件、硬件设备、容器及应用这些类型的日志及监控数据,在链路层,通过skywalking接入了多套业务系统的链路数据,同时在日志中,根据客户规范,增加的对应的TID标示,用于日志及链路数据的深度结合。
四、解决方案亮点
1.实现业务日志统一查询
能够全局性覆盖主要业务系统,实现日志的统一快速高效的查询,并通过部分日志的合并、解析、分析,实现日志的更高效利用。在这个基础上实现更多贴合实际生产环境的功能开发,如二次查询、全链路排障、数据湖冷备数据查询、上下文行数自动滚动、日志内xmljson段格式化、用户使用统计分析等功能。
2.关注业务系统运行状态及告警
从日志角度,对业务系统进行统计分析,得到业务系统的整体概览状态,方便快速了解系统运行状态。
3.实现业务日志全链路串联
根据现有的系统环境及业务场景,打通统一日志系统与Skywalking的数据,通过中间层处理,用TID在日志及Skywalking做上下文关联,通过全局流水号(SEQ_NO)、业务流水号或任意内容搜索,得到业务系统详细日志及链路信息,实现了排障一体化解决。同时,可以直观方便的了解业务系统中业务拓扑及单笔交易的链路拓扑,为排障提供了非常方便的工具,丰富了排障场景,且易于使用。
4.整合监控内容
运维场景中除了查询日志及trace信息,经常还需要核对到监控平台查看监控数据,通过整合监控数据,减少运维场景下的不同平台跳转,提升运维效率。
5.数据湖冷备数据查询
对接原有数据湖,实现数据的双写,一份用于日常查询排障使用,到存储容量限制后,定期滚动删除;一份存储于数据湖内,长期保存,用于审计场景下使用。
同时,实现冷备数据的在线查询,以及更高的压缩率及接近热数据查询的查询速度。
云原生时代下,金融业务发展迅速,数字化转型的脚步日益加快。
该案例主要解决的是企业在进行云端微服务化改造时,面临传统监控无法高度细化分析与关联数据等问题。我们从日志维度出发,建设可观测运维体系的方法并有效落地,从而提升金融企业用户数据处理和分析能力的精细程度,辅助用户挖掘数据深层价值,全面提升业务运营的连续性与稳定性。
擎创科技,Gartner连续推荐的AIOps领域标杆供应商。公司致力于协助企业客户提升对运维数据的洞见能力,优化运维效率,充分体现科技运维对业务运营的影响力。
行业龙头客户的共同选择
更多运维思路与案例持续更新中,敬请期待
随手点关注,更新不迷路~
相关文章:

案例分享 | 金融微服务场景下如何提升运维可观测性
云原生环境下金融业务的微服务化改造以及分布式架构的部署,使得业务与开发部门的关联更为紧密,传统运维监控已满足不了业务运营需求,亟需建设具备可观测性的运维体系。所以这次我们以某金融客户的实践案例为例,跟大家说一说在金…...

CentOS8提高篇3:Centos8安装播放器(mplayer vlc)
1. 准备工作(需要配置epel, rpmfusion源); 配置epel源 下载epel dnf install epel-release 配置rpmfusion源 下载rpmforge dnf install rpmfusion-free-release-8.noarch.rpm 2. 安装mplayer和vlc 直接dnf安装 # dnf install mplayer # dnf install v…...

MySQL-存储过程
什么是存储过程我们前面所学习的MySQL语句都是针对一个表或几个表的单条 SQL 语句,但是在数据库的实际操作中,并非所有操作都那么简单,经常会有一个完整的操作需要多条SQL语句处理多个表才能完成。例如,为了确认学生能否毕业&…...

经典七大比较排序算法 · 下 + 附计数和基数排序
经典七大比较排序算法 下 附计数和基数排序1 插入排序1.1 算法思想1.2 代码实现1.3 插入排序特性2 希尔排序2.1 算法思想2.2 代码实现2.3 希尔排序特性3 七大比较排序特性总结4 计数排序4.1 算法思想4.2 代码实现4.3 计数排序特性5 基数排序5.1 算法思想5.2 代码实现1 插入排…...

HTTPS协议,看这篇就够了
不安全的HTTP 近些年来,越来越多的网站使用 HTTPS 协议进行数据传输,原因在于 HTTPS 相较于 HTTP 能够提供更加安全的服务。 很多浏览器对于使用 HTTP 协议的网站会加上『警告』的标志表示数据传输不安全,而对于使用 HTTPS 协议的网站会加上…...

C语言学习之路--结构体篇
目录一、前言二、结构体的声明1、结构的基础知识2、结构的声明3、结构体成员的类型4、结构体变量的定义和初始化三、结构体成员的访问四、结构体传参一、前言 本人是一名小白,这一篇是记录我C语言学习中的结构体的所学所得,仅为简单的认识下C语言中的各…...

【LINUX】初识文件系统
文章目录一、前言二、回顾C语言文件操作三、初识系统调用openreadwriteclose四、文件系统初识五、结语一、前言 二、回顾C语言文件操作 int main() {FILE* fp fopen("log.txt", "w");if (fp NULL){perror("fopen");}int cnt 0;fputs("…...

金三银四Java面试题及答案整理(2023最新版) 持续更新
作为一名优秀的程序员,技术面试是不可避免的一个环节,一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识。 如果你参加过一些大厂面试,肯定会遇到一些这样的问题: 1、看你项目都用的框架,熟悉 …...

7个角度,用 ChatGPT 玩转机器学习
大家好,我是机器学习科普创作者章北海mlpy,探索更高效的学习方法是我一直等追求。现在的初学者太幸福了,可以利用ChatGPT来帮助你学习机器学习的各个方面。 比如【个人首测】百度文心一言 VS GPT-4这篇文章中,我就用文心一言、GP…...

关于多层板,你了解多少?
01 前言 大家好,我是张巧龙。好久没写原创了,记得之前刚接触PCB时,还在用腐蚀单层板,类似这种。 慢慢随着电子产品功能越来越多,产品越来越薄,对PCB设计要求越来越高了,复杂程度也随之增加。因此…...

使用sqlalchemy-gbasedbt连接GBase 8s数据库
测试环境: 操作系统:CentOS 7.9 64-bit数据库版本:GBase8sV8.8_AEE_3.0.0_1,对应的CSDK版本为3.0.0_1 1,确认安装python3 确认已经安装python3和python3-devel [rootlocalhost test]# python3 -V Python 3.6.8如果…...

前端如何丢掉你的饭碗?
对于后端而言,我们常有“删库跑路”的说法,这说明后端的操作对于信息系统而言通常影响很大,可以轻易使信息系统宕机、崩溃,直接导致项目失败。所以,不要去逼后端程序员! 作为前端程序员,我们似…...

栈、队列、优先级队列的模拟实现
优先级队列的模拟实现栈stack的模拟实现push()pop()top()size()empty()swap()stack总代码队列queue的模拟实现push()pop()front()back()empty()size()swap()queue总代码优先级队列(堆)push()pop()top()empty()size()swap()priority_queue总代码deque的了解栈 在CSTL中栈并不属…...

JMM内存模型
JMM内存模型JMM内存模型定义三大特性原子性可见性有序性volatile语义JMM规则操作系统实现术语缓存一致性要求缓存一致性机制写传播事务串行化重排序as-if-serial 语义(像是有序的)happens-before 原则happens-before 原则的八大子原则内存屏障总结finalf…...

Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花
文章目录1、背景2、命令浏览器-双生姐妹花2.1、姐妹花简介2.2 、验名正身2.3、常用功能选项3、常用实操3.1、发送请求获取文件3.1.1、抓取页面内容到一个文件中3.1.2、多个文件下载3.1.3、下载ftp文件3.1.4、断点续传3.1.5、上传文件3.1.6、内容输出3.2 、利用curl测试接口3.3 …...

【深度学习】基于Hough变化的答题卡识别(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳座右铭&#…...

Linux - 进程控制(创建和终止)
1.进程创建fork函数初识 在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。返回值:子进程返回0,父进程返回子进程id,出错返回-1getpid()获取子进程id,…...

依赖注入~
依赖注入之setter注入: 依赖注入是IOC具体的一种实现方式, 这是针对资源获取的方式角度来说的,之前我们是被动接受,现在IOC具体的实现叫做依赖注入,从代码的角度来说,原来创建对象的时候需要new࿰…...

【嵌入式硬件芯片开发笔记】HART协议调制解调芯片AD5700配置流程
【嵌入式硬件芯片开发笔记】HART协议调制解调芯片AD5700配置流程 XTAL_EN接地,CLK_CFG的两个引脚由同一个GPIO控制 初始时HART_CLK_CFG输出低电平 由RTS引脚控制调制/解调。当RTS处于高电平时,为解调(输入);否则为调…...

Go语言异步下载视频
异步下载mp4视频列表 下面是一个简单的Go语言示例,用于异步下载视频。我们将使用goroutines来实现异步下载,并使用sync.WaitGroup来等待所有下载任务完成。此示例依赖于net/http包来执行HTTP请求。 package mainimport ("fmt""io"…...

前缀树(字典树/Trie) -----Java实现
目录 一.前缀树 1.什么是前缀树 2.前缀树的举例 二.前缀树的实现 1.前缀树的数据结构 1.插入字符串 2.查找字符串 3.查找前缀 三.词典中最长的单词 1.题目描述 2.问题分析 3.代码实现 一.前缀树 1.什么是前缀树 字典树(Trie树)是一种树形…...

申请专利需要具备什么条件
申请专利需要具备什么条件 在我国,如果创造出来了新的发明都可以申请专利权,一旦申请成功之后,自己的发明就受到了法律的保护,任何人不得以违法的手段进行侵犯。那么申请专利需要具备什么条件?今天律赢时代网就为大家…...

【C++】一篇带你搞懂C++“引用”
前言在C语言的学习中,并没有引用这个概念,但是在C中,加入了引用这个概念,说明引用也是很重要的,但是我们怎么理解引用呢?我是这么理解的,例如在水浒传中,108个英雄好汉都是自己的外号…...

蓝桥杯刷题冲刺 | 倒计时19天
作者:指针不指南吗 专栏:蓝桥杯倒计时冲刺 🐾马上就要蓝桥杯了,最后的这几天尤为重要,不可懈怠哦🐾 文章目录1.抓住那头牛2.排列序数1.抓住那头牛 题目 链接: 抓住那头牛 - C语言网 (dotcpp.com…...

Java每日一练(20230321)
目录 1. 出现次数最多的字符 🌟 2. 最后一个单词的长度 🌟 3. 两数之和 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 出现次数最多的字符并…...

【三维几何学习】从零开始网格上的深度学习-3:Transformer篇(Pytorch)
本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052 从零开始网格上的深度学习-3:Transformer篇引言一、概述二、核心代码2.1 位置编码2.2 网络框架三、基于Transformer的网格分类3.1 分类结果3.2 全部代码引言 本文主要内容如下&#…...

一、基础算法3:二分 模板题+算法模板(数的范围,数的三次方根)
文章目录算法模板整数二分算法模板浮点数二分算法模板模板题数的范围原题链接题目题解数的三次方根原题链接题目题解算法模板 整数二分算法模板 bool check(int x) {/* ... */} // 检查x是否满足某种性质// 区间[l, r]被划分成[l, mid]和[mid 1, r]时使用: int b…...

Spring 源码解析 - Bean创建过程 以及 解决循环依赖
一、Spring Bean创建过程以及循环依赖 上篇文章对 Spring Bean资源的加载注册过程进行了源码梳理和解析,我们可以得到结论,资源文件中的 bean 定义信息,被组装成了 BeanDefinition 存放进了 beanDefinitionMap 容器中,那 Bean 是…...

移除元素(双指针)
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的…...

76.qt qml-QianWindow开源炫酷界面框架(支持白色暗黑渐变自定义控件均以适配)
界面介绍界面支持: 透明 白色 黑色 渐变 单色 静态图 动态图侧边栏支持:抽屉、带折叠、多模式场景控件已集成: 暗黑风格 高亮风格、并附带个人自定义控件及开源demo白色场景如下所示:单色暗黑风格如下所示:用户自定义皮肤如下所示:皮肤预览如下所示:b站入口:https://www.bilibi…...