案例分享 | 金融微服务场景下如何提升运维可观测性

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

随着金融行业数字化转型战略实践工作的深化推进,数字化业务快速发展,日志类型和日志量急速增加,但各类日志数据(软硬件)分散且繁杂,缺乏统一的全生命周期管理和海量日志的监控分析处理能力,给业务监控告警、日志搜索分析、审计溯源造成了一定制约。
其次,在云原生环境中,随着微服务化进程加快,很多业务系统微服务化后带来了复杂的运维排障屏障。总体难点表现如下:
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"…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
