当前位置: 首页 > news >正文

日志根因分析:Elastic Observability 的异常检测与日志分类功能

作者:来自 Elastic Bahubali Shetti

Elastic Observability 不仅提供日志聚合、指标分析、APM 和分布式追踪,Elastic 的机器学习能力还能帮助分析问题的根因,让你将时间专注于最重要的任务。

随着越来越多的应用程序迁移到云端,收集的遥测数据(日志、指标、追踪)也越来越多,这些数据有助于提升应用性能、运营效率和业务 KPI。然而,面对如此海量的数据,分析变得极其繁琐且耗时。传统的告警和简单模式匹配方法(如可视化或关键词搜索等)已无法满足 IT 运维团队和 SRE 的需求,就像在大海捞针一样困难。

在本文中,我们将介绍 Elastic 在 IT 运维人工智能(AIOps)和机器学习(ML)方面的一些能力,帮助进行根因分析。

Elastic 的机器学习功能将通过提供异常检测来帮助您调查性能问题,并通过时间序列分析和日志异常值检测来精准定位潜在的根本原因。这些功能将帮助您缩短在大海捞针的时间。

Elastic 平台让你能快速开始使用机器学习,无需数据科学团队或自行设计系统架构,也无需将数据迁移到第三方框架中进行模型训练。

Elastic 预置了适用于可观测性和安全场景的机器学习模型。如果这些模型无法很好地适应你的数据,Elastic 工具内的向导可以引导你通过几个简单步骤配置自定义异常检测并用监督学习训练模型。

为了帮助你快速上手,Elastic Observability 内置了多项关键功能来辅助分析,无需手动运行 ML 模型,从而减少日志分析所需的时间和精力。

以下是一些内置机器学习功能的简介:

异常检测:Elastic Observability 启用后(参考文档),会实时建模你的时间序列数据的正常行为,学习趋势、周期性等,从而自动检测异常,简化根因分析并减少误报。异常检测在 Elasticsearch 中运行并可随之扩展,并配有直观的用户界面。

日志分类:借助异常检测,Elastic 能快速识别日志事件中的模式。日志分类视图会基于日志消息和格式对其进行分组,避免你手动分析,让你能更快采取行动。

高延迟或出错的事务:Elastic Observability 的 APM 功能可以帮助你发现导致事务延迟的关键属性,并识别哪些属性最能区分成功和失败的事务。相关功能概览见:Elastic Observability 中的 APM 相关性分析:自动识别慢速或失败事务的可能原因。

AIOps Labs:AIOps Labs 使用高级统计方法提供两个主要功能:

  • 日志突增检测器:帮助识别日志速率上升的原因。通过分析流程视图,你可以轻松发现和调查异常突增的根本原因。它会展示指定数据视图的日志速率直方图,并找出日志中跨字段、值的突变背后可能的原因。

  • 日志模式分析:帮助你在非结构化日志中发现模式,便于更高效地分析数据。它会对选定字段执行分类分析,基于数据创建类别,并展示各类别的分布图和匹配该类别的示例文档。

在本文中,我们将基于 Google 开发并由 OpenTelemetry 改进的流行应用 “Hipster Shop” 演示异常检测和日志分类。

有关高延迟分析功能的概览请参阅此处,AIOps Labs 的概览请见此处。

本文将通过一个实际场景展示如何使用异常检测和日志分类功能,在 Hipster Shop 应用中帮助识别问题的根因。

前提条件与配置

如果你打算跟随本文操作,以下是我们用于演示的一些组件和配置详情:

  • 确保你已在 Elastic Cloud 上拥有账户,并在 AWS 上部署了一个 Stack(部署说明见此)。由于 Elastic Serverless Forwarder 的要求,必须部署在 AWS 上。

  • 使用广受欢迎的 Hipster Shop 演示应用的某个版本。该应用最初由 Google 编写,用于展示 Kubernetes,在多个变种中都很常见,例如 OpenTelemetry Demo App。Elastic 版本可以在此处找到。

  • 确保你已为应用配置 Elastic APM Agent 或 OpenTelemetry Agent。更多详情请参考以下两篇博客:在 Elastic 中使用 OTel 实现独立性 和 在 Elastic 中实现可观测性与安全性。另外,也可以参考 Elastic 中的 OTel 文档。

  • 查看 Elastic Observability 的 APM 功能概览。

  • 阅读 Elastic 的日志异常检测文档和日志分类文档。

一旦你使用 APM(Elastic 或 OTel)Agent 对应用进行探针接入,并将指标和日志采集进 Elastic Observability 中,你应该可以看到如下的应用服务拓扑图:

在我们的示例中,我们故意引入了一些问题,以便演示根因分析功能:异常检测日志分类。根据你加载应用的方式以及引入问题的不同,所产生的异常和日志分类结果可能会有所差异。

在本次演示中,我们将以 DevOps 或 SRE 的角色来管理生产环境中的这套应用。

根因分析

当应用已正常运行一段时间后,你突然收到通知,提示某些服务状态异常。这种通知可能来自你在 Elastic 中配置的告警规则,也可能来自外部通知平台,或是用户反馈的问题。在这个场景中,我们假设客服接到多位客户投诉,称网站存在问题。

那么,作为 DevOps 或 SRE,你该如何展开调查呢?我们将通过 Elastic 的两种方法来排查问题:

  • 异常检测

  • 日志分类

虽然我们将这两个功能分别展示,但它们是可以 结合使用 的,也是 Elastic Observability 提供的互补工具,旨在帮助你更高效地定位问题根因。

异常检测中的机器学习

Elastic 会根据历史模式检测异常,并识别这些问题发生的概率。

服务拓扑图(Service Map) 开始,你可以看到带有红色圆圈标记的异常。当你选择其中一个异常时,Elastic 会为该异常提供一个评分(score),用于衡量其异常程度。

在这个示例中,我们可以看到 Hipster Shop 应用中的 productCatalogService 服务 出现了一个异常,异常评分为 96。异常评分表示该异常相较于历史上检测到的异常的重要程度,分数越高,异常越显著。关于异常检测结果的更多信息可以参考这里。

我们还可以进一步深入查看这个异常,分析其具体细节。

你会看到,productCatalogService 出现了 平均事务延迟时间的严重飙升,这正是服务拓扑图中检测到的异常。Elastic 的机器学习识别出了这个具体的 指标异常(可在 单指标视图 中看到)。很可能客户已经感受到网站变慢,导致公司正在流失潜在交易。

接下来的一个步骤是,从更宏观的角度审查服务拓扑图中其他潜在的异常。你可以使用 Anomaly Explorer(异常浏览器) 来查看所有已被识别出的异常。

Elastic 检测到多个服务存在异常,其中 productCatalogService 的异常评分最高,此外还有 frontendcheckoutServiceadvertService 等多个服务也具有较高评分。不过,目前的分析仅基于 单一指标

Elastic 的机器学习不仅可以检测单一指标,还可以对 各种类型的数据(如 Kubernetes 数据、指标、追踪信息等)进行异常检测。如果我们在 Elastic 中为这些不同数据类型分别创建了 独立的机器学习任务(job),就能对整个系统的运行状态进行更全面的分析,从而更准确地识别导致延迟问题的根本原因。

一旦选中了所有潜在的任务,并按 service.name 排序,我们可以看到 productCatalogService 仍然显示出较高的异常影响因子评分。

除了图表为我们提供了异常的可视化信息外,我们还可以查看所有潜在的异常。你会注意到,Elastic 还对这些异常进行了分类(参见 category examples 列)。当我们浏览结果时,会注意到其中一个由分类识别出的潜在问题是 postgreSQL,其评分也高达 94。机器学习识别出了一个 “rare mlcategory”,这表示它是极少出现的类型,因此可能是客户所遇问题的潜在原因。

我们还注意到,这个问题可能是由 pgbench 引起的,pgbench 是一个流行的 postgreSQL 工具,用于对数据库进行基准测试。pgbench 会反复执行相同的 SQL 命令序列,可能会在多个并发的数据库会话中运行。虽然 pgbench 确实是个有用的工具,但它不应在生产环境中使用,因为它会对数据库主机造成较大负载,很可能导致网站出现更高的延迟问题。

虽然这可能不是最终的根因,但我们已经较快地识别出了一个高概率的潜在问题。工程师可能本打算在测试环境的数据库上运行 pgbench 来评估性能,而不是在生产环境中运行。

日志分类的机器学习

Elastic Observability 的服务拓扑图检测到了异常,在本次演示中,我们换一种方法,从服务拓扑图中查看服务详情,而不是一开始就直接探索异常。当我们查看 productCatalogService 的服务详情时,看到以下内容:

服务详情显示了几个方面:

  • 与服务预期范围相比,延迟异常高。我们看到最近延迟明显高于平均值,平均约为 275ms,但有时会超过 1 秒。

  • 在高延迟的同一时间段内,失败率也很高(左下角图表 “Failed transaction rate”)。

  • 事务中,特别是 /ListProduct 请求延迟异常高,且失败率也高。

  • productCatalogService 依赖于 postgreSQL

  • 错误全部与 postgreSQL 相关。

  • 我们可以选择在 Elastic 中深入日志分析,或者使用一种更便捷的功能快速定位日志。

如果我们在 Elastic Observability 的日志分类(Categories)中搜索 postgresql.log 来帮助识别可能导致错误的 postgresql 日志,会发现 Elastic 的机器学习已自动对 postgresql 日志进行了分类。

我们注意到另外两点:

  • 有一个高频分类(消息数为 23,797,异常评分高达 70)与 pgbench 相关(这在生产环境中很少见)。因此,我们在分类中进一步搜索所有与 pgbench 相关的日志。

  • 发现一个关于连接终止的异常问题(消息数较少)。

  • 在调查第二个严重错误时,我们可以在分类中看到该错误发生前后的日志。

这个故障排查显示 postgreSQL 出现了致命错误(FATAL error),数据库在错误发生前已关闭,所有连接被终止。鉴于我们发现的这两个直接问题,可以判断有人运行了 pgbench,可能导致数据库过载,进而引发客户看到的延迟问题。

接下来的步骤可以是调查异常检测结果,或者与开发人员合作,检查代码,确认 pgbench 是否被包含在部署配置中。

结论

希望你已经了解 Elastic Observability 如何帮助你更快地识别并接近问题的根本原因,而无需费力地寻找“干草堆中的针”。下面是本篇博客的快速总结和你所学内容:

  • Elastic Observability 提供了多种能力,帮助你减少定位根因的时间,提升平均修复时间(MTTR)甚至平均检测时间(MTTD)。

  • 本文重点介绍了以下两项主要能力:

    1. 异常检测:开启后(参见文档),Elastic Observability 会持续建模你的时间序列数据的正常行为 —— 学习趋势、周期性等 —— 实时识别异常,简化根因分析,减少误报。异常检测在 Elasticsearch 中运行并可扩展,且配备直观的用户界面。

    2. 日志分类:结合异常检测,Elastic 快速识别日志事件中的模式。日志分类视图会根据日志消息和格式自动分组,无需手动识别相似日志,方便你更快采取行动。

  • 你已经了解如何轻松使用 Elastic Observability 的日志分类和异常检测功能,无需理解底层机器学习原理,也无需复杂设置。

准备好开始了吗?注册 Elastic Cloud,试用上述介绍的功能和能力吧。

原文:Root cause analysis with logs: Elastic Observability's anomaly detection and log categorization — Elastic Observability Labs

相关文章:

日志根因分析:Elastic Observability 的异常检测与日志分类功能

作者:来自 Elastic Bahubali Shetti Elastic Observability 不仅提供日志聚合、指标分析、APM 和分布式追踪,Elastic 的机器学习能力还能帮助分析问题的根因,让你将时间专注于最重要的任务。 随着越来越多的应用程序迁移到云端,收…...

web基础

域名概述 2-1 域名的概念:IP 地址不易记忆,域名是互联网络上识别和定位计算机的层次结构式的字符标识,与该计算机的互联网协议 (IP) 地址相对应,用于在数据传输时标识计算机的电子方位,方便人们记忆和输入。 早期使用…...

WebRTC技术EasyRTC音视频实时通话驱动智能摄像头迈向多场景应用

一、方案背景​ 在物联网蓬勃发展的当下,智能摄像头广泛应用于安防、家居、工业等领域。但传统智能摄像头存在视频传输延迟高、设备兼容性差、网络波动时传输不稳定等问题,难以满足用户对实时流畅交互视频的需求。EasyRTC凭借低延迟、高可靠、跨平台特性…...

替换word中的excel

PostMapping("/make/report/target/performance/first") public AjaxResult makeTargetReportFirst(RequestBody MakeReportDTO makeReportDTO) {Map<String, String> textReplaceMap new HashMap<>();// 替换日期LocalDateTime nowData LocalDateTime…...

【氮化镓】低剂量率对GaN HEMT栅极漏电的影响

2024 年 2 月 22 日,中国科学院新疆理化技术研究所的Li等人在《IEEE ACCESS》期刊发表了题为《Degradation Mechanisms of Gate Leakage in GaN-Based HEMTs at Low Dose Rate Irradiation》的文章,基于实验分析和 TCAD 仿真,研究了低剂量率辐照下基于 GaN 的 p 型栅高电子迁…...

win10使用nginx做简单负载均衡测试

一、首先安装Nginx&#xff1a; 官网链接&#xff1a;https://nginx.org/en/download.html 下载完成后&#xff0c;在本地文件中解压。 解压完成之后&#xff0c;打开conf --> nginx.config 文件 1、在 http 里面加入以下代码 upstream GY{#Nginx是如何实现负载均衡的&a…...

Java 06API时间类

API-时间类 Date jdk8之前1.构造 代表当前的日期和时间 1.Date d1new Date();当前的时间编译成对象 2.Date d2new Date(long time);时间毫秒值代表的Date日期对象 long 类型需要在写L 及8L2.常用方法 public long getTime();获取从1970-1-1到现在的毫秒值总数 void setTime…...

2.11 筹资管理

11.1 筹资主体 11.1.1 企业筹资 1.内源筹资 企业自由资金、应付息税以及未使用或者分配专项基金。自由资金:留存收益、应收账款、闲置资产变卖未使用或者分配专项基金:更新改造基金、生产发展基金以及职工福利基金 2.外源筹资 权益筹资:普通股筹资、优先股筹资债务筹资:借…...

什么是 AI 人工智能?什么是机器学习?什么是深度学习?三者啥关系

AI 到底是个啥&#xff1f;跟咱有啥关系&#xff1f;一文帮你搞懂&#xff01; 最近是不是老听到 “AI”、“人工智能” &#xff0c;“机器学习”&#xff0c;“深度学习”这些词&#xff1f;感觉挺高大上&#xff0c;但又有点懵&#xff1f;别担心&#xff0c;今天咱们就用大…...

C语言经典面试题及答案100道

# C语言经典面试题及答案100道 ## 基础概念部分 1. **什么是C语言&#xff1f;** - 答&#xff1a;C语言是一种通用的、过程式的计算机编程语言&#xff0c;由Dennis Ritchie于1972年在贝尔实验室开发&#xff0c;主要用于系统软件开发。 2. **C语言的特点是什么&#xf…...

RocketMQ 顺序消息实现原理详解

RocketMQ 的顺序消息实现原理主要围绕生产者发送顺序性、Broker存储顺序性和消费者消费顺序性三个核心环节展开&#xff0c;具体分为全局有序和分区有序两种模式。 一、顺序消息的分类 1. 全局有序 定义&#xff1a;某个Topic下所有消息严格按FIFO顺序处理。实现&#xff1a;…...

SpringBoot与GeoHash整合,实现骑手就近派单功能

通过使用GeoHash结合Redis的地理空间功能,能够实时管理和查询骑手的位置信息,并根据订单量和评分等因素动态分配最近的骑手来完成配送任务. 空间索引: GeoHash是一种将地理坐标(经纬度)编码为字符串的算法,可以用于空间索引。 这使得我们可以方便地在Redis这样的内存数据库…...

spark任务的提交流程

目录 spark任务的提交流程1. 资源申请与初始化2. 任务划分与调度3. 任务执行4. 资源释放与结果处理附:关键组件协作示意图扩展说明SparkContext介绍 spark任务的提交流程 用户创建一个 Spark Context;Spark Context 去找 Cluster Manager 申请资源同时说明需要多少 CPU 和内…...

阿博图书馆管理系统 Java+Spring Boot+MySQL 实战项目分享

一、项目简介 为了提升图书馆的管理效率和用户体验&#xff0c;我们基于 Java Spring Boot MySQL 开发了一款完整的图书馆管理系统 —— 阿博图书馆管理系统。系统采用前后端分离架构&#xff0c;功能模块丰富&#xff0c;操作逻辑清晰&#xff0c;适合用于毕业设计、实训项…...

es学习小结

1.​客户端类型​ ​推荐场景​ ​版本兼容性​ Elasticsearch Java API Client 新项目、ES 8.x集群 8.x及以上 Spring Data Elasticsearch Spring生态项目、简化ORM操作 ES 7.x-8.x&#xff08;需版本匹配&#xff09; Low-Level REST Client 需要底层HTTP控制、兼容多版本ES …...

【数据库课程设计】网上投票管理系统

目录 前言&#xff1a; 一&#xff0c;系统需求分析 1&#xff0c;需求概述 2&#xff0c;系统功能图 3&#xff0c;业务流程图 业务流程分析 业务流程图 4&#xff0c;数据流程图 5&#xff0c;数据字典 二&#xff0c;概念结构设计 1&#xff0c;实体分析 2&am…...

STM32+ESP8266+ONENET+微信小程序上传数据下发指令避坑指南

之前只做过类似的但是以为这种烂大街的功能应该不难结果还是踩了不少坑&#xff0c;记录几个需要注意的点 1、创建产品的时候选择onejson&#xff0c;自定义方案。这样选择的就是物模型&#xff0c;之后可以去使用物模型的API调试。 2、设置物模型 大概有以下几种比较常用的&…...

不同消息队列保证高可用实现方案

消息队列的高可用性&#xff08;High Availability, HA&#xff09;是分布式系统中的核心需求&#xff0c;不同消息队列通过多种技术手段实现高可用。以下是主流消息队列的高可用实现方案及对比&#xff1a; 一、Apache Kafka 副本机制&#xff08;Replication&#xff09; 每个…...

Android 蓝牙开发 - 蓝牙相关权限(蓝牙基本权限、Android 12 蓝牙新增权限、位置权限)

蓝牙基本权限 1、基本介绍 <uses-permission android:name"android.permission.BLUETOOTH" />BLUETOOTH&#xff1a;允许应用连接配对的蓝牙设备 <uses-permission android:name"android.permission.BLUETOOTH_ADMIN" />BLUETOOTH_ADMIN&am…...

【Linux】第二十一章 管理存储堆栈

1. 分别说明LVM中物理卷、物理区块、卷组、逻辑卷的概念以及它们之间的关系。 在 LVM (Logical Volume Management) 中&#xff0c;硬盘的管理变得更加灵活&#xff0c;允许动态地调整磁盘空间的分配。 物理卷&#xff08;PV&#xff09;&#xff1a;LVM使用底层物理设备&…...

OpenCV 人脸识别:从基础到实践全解析

在人工智能与计算机视觉蓬勃发展的今天&#xff0c;人脸识别技术已深入我们生活的方方面面&#xff0c;从手机解锁到安防监控&#xff0c;其应用无处不在。而 OpenCV 作为计算机视觉领域最受欢迎的开源库之一&#xff0c;为开发者提供了一套高效且易用的人脸识别解决方案。本文…...

【HTML-2】HTML 标题标签:构建网页结构的基础

在网页开发中&#xff0c;标题标签(<h1>到<h6>)是构建内容层次结构和语义化标记的基础元素。这些标签不仅影响内容的视觉呈现&#xff0c;更对网页的可访问性和SEO有着深远影响。 1. 标题标签的基本用法 HTML提供了六个级别的标题标签&#xff1a; <h1>这…...

vue3前端后端地址可配置方案

在开发vue3项目过程中&#xff0c;需要切换不同的服务器部署&#xff0c;代码中配置的服务需要可灵活配置&#xff0c;不随着run npm build把网址打包到代码资源中&#xff0c;不然每次切换都需要重新run npm build。需要一个配置文件可以修改服务地址&#xff0c;而打包的代码…...

HTML应用指南:利用POST请求获取全国申通快递服务网点位置信息

申通快递&#xff08;STO Express&#xff09;作为中国领先的综合物流服务商&#xff0c;自1993年创立以来&#xff0c;始终秉持“正道经营、长期主义”的发展理念&#xff0c;深耕快递物流领域&#xff0c;开创了行业加盟制先河。经过30余年的发展&#xff0c;申通已成长为国家…...

《医院运营管理典型应用数据资源建设指南2025》全面分析

引言:医院数据资源建设的时代背景与意义 医院运营管理数据资源建设正迎来前所未有的发展机遇与挑战。在深化支付改革与公立医院高质量发展政策驱动下,医院亟需建立智慧化运营管理体系,而数据资源作为关键要素,其建设水平直接关系到医院管理的科学性与效率。《医院运营管理…...

.NET外挂系列:3. 了解 harmony 中灵活的纯手工注入方式

一&#xff1a;背景 1. 讲故事 上一篇我们讲到了 注解特性&#xff0c;harmony 在内部提供了 20个 HarmonyPatch 重载方法尽可能的让大家满足业务开发&#xff0c;那时候我也说了&#xff0c;特性虽然简单粗暴&#xff0c;但只能解决 95% 的问题&#xff0c;言外之意还有一些…...

taro 小程序 CoverImage Image src无法显示图片的问题

目录 一、问题描述 二、解决方案 一、问题描述 使用taro开发的微信小程序图片无法正常显示&#xff0c;并报如下错误&#xff1a; [渲染层网络层错误] Failed to load local image resource /assets/icon/message.png the server responded with a status of 500 (HTTP/1.…...

05_核支持向量机

描述 核支持向量机&#xff08;通常简称为SVM&#xff09;可以推广到更复杂模型的扩展&#xff0c;这些模型无法被输入空间的超平面定义。 SVM 的核心思想是找到一个最优的超平面&#xff0c;将不同类别的数据分开。这个超平面不仅要能够正确分类数据&#xff0c;还要使得两个…...

[解决方案] Word转PDF

背景&#xff1a; 之前做过一些pdf导出&#xff0c; 客户提了一个特别急的需求&#xff0c; 要求根据一个模版跟一个csv的数据源&#xff0c; 批量生成PDF&#xff0c; 因为之前用过FOP&#xff0c; 知道调整样式需要特别长的时间&#xff0c; 这个需求又特别急&#xff0c; 所…...

Oracle 11g post PSU Oct18 设置ssl连接(使用wallets)

说明 oracle 11g 从PSU 2018Oct&#xff08;含&#xff09;及之后的补丁不支持MD5. 要使用JDBC SSL要使用TSL1.2. 有两种方法&#xff0c;一种使用wallet, 一种使用JKS. 本文档使用wallets. 1. 为什么用TSL 1.2 https://blogs.oracle.com/developers/post/ssl-connection-to…...

linux关闭某端口暂用的进程

查看是哪个端口暂用 sudo netstat -tulpn | grep :80根据图片 显示 80端口暂用的 进程id是 3002 结束进程id为3002的进程 sudo kill -9 3002...

web开发全过程总结

目录 利用pnpm创建vue3的文件 使用pnpm创建项目 项目配置 在idea中创建Spring Boot项目 配置基础项目架构(三层架构) 利用pnpm创建vue3的文件 1.打开cmd,以管理员的身份运行 2.切换到自己想要建立项目的文件的目录下或者直接在文件中以cmd的形式打开 输入指令安装pnpm n…...

经典Java面试题的答案——Java 基础

大家好&#xff0c;我是九神。这是互联网技术岗的分享专题&#xff0c;废话少说&#xff0c;进入正题&#xff1a; 1.JDK 和 JRE 有什么区别&#xff1f; JDK&#xff1a;Java Development Kit 的简称&#xff0c;java 开发工具包&#xff0c;提供了 java 的开发环境和运行环境…...

Fiddler 指定链接断点

问题背景 在使用Fiddler进行抓包和mock数据时&#xff0c;由于前端页面通常依赖多个前置接口&#xff08;如JS、CSS、登录态等&#xff09;&#xff0c;导致抓包过程中难以精准定位到目标接口。这种复杂性增加了调试和mock数据的难度。 常见挑战 前置接口过多&#xff1a;页…...

C# 语法篇:字段的定义和运算

对于字段来说&#xff0c;是在对象创建时就被初始化了&#xff1b;而构造函数的运行是在这之后。 因此&#xff0c;不能对字段进行需要用到“构造函数赋值的变量”的运算&#xff0c;因为此时这些变量的值都为0或者随机值&#xff0c;编译器不允许这时候做运算。 因此&#xf…...

音频应用的MediaSession冲突

前提条件 系统级应用&#xff0c;使用了sharedUserId 应用在AndroidManifest.xml中声明了系统级UID&#xff1a;android:sharedUserId"android.uid.system"该配置使应用具有系统级权限&#xff0c;可以访问系统级API和资源 使用MediaSession框架 应用通过MediaSessi…...

【QT】类A接收TCP数据并通过信号通知类B解析

以下是基于Qt的完整示例代码&#xff0c;包含类A接收TCP数据并通过信号通知类B解析的实现&#xff1a; ------------------ ClassA.h 网络数据接收类 ------------------ #pragma once#include <QTcpServer> #include <QTcpSocket> #include <QObject>class…...

【Jitsi Meet】(腾讯会议的平替)Docker安装Jitsi Meet指南-使用内网IP访问

Docker安装Jitsi Meet指南-使用内网IP访问 下载官方代码配置环境变量复制示例环境文件并修改配置&#xff1a;编辑 .env 文件&#xff1a; 修改 docker-compose.yml 文件生成自签名证书启动服务最终验证 腾讯会议的平替。我们是每天开早晚会的&#xff0c;都是使用腾讯会议。腾…...

微服务架构中的多进程通信--内存池、共享内存、socket

目录 1 引言 2 整体架构简介 3 疑问 3.1 我们的共享内存消息机制是用的posix还是system V 3.2 rmmt中&#xff0c;不同线程之间的比如访问同一个内存&#xff0c;用的什么锁控制的 3.3 疑问&#xff1a;假如一个进程发送给了另外两个进程&#xff0c;然后另外两个进程都同…...

使用 adb 命令截取 Android 设备的屏幕截图

使用 adb 命令截取 Android 设备的屏幕截图。以下是两种常见的方法&#xff1a; 方法一&#xff1a;截屏后保存到电脑 adb shell screencap -p /sdcard/screenshot.png adb pull /sdcard/screenshot.png解释&#xff1a; adb shell screencap -p /sdcard/screenshot.png&…...

Jenkins服务器配置密钥对

1. 在 Jenkins 服务器上执行以下命令 # 生成 SSH 密钥对 ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa -N ""# 查看公钥内容 cat ~/.ssh/id_rsa.pub 2. 将显示的公钥内容复制&#xff0c;然后在目标服务器上执行 # 在目标服务器上执行 mkdir -p /root/.ssh chmod …...

Docker中部署Alertmanager

在 Docker 中部署 Alertmanager&#xff08;通常与 Prometheus 告警系统配合使用&#xff09;的步骤如下&#xff1a; 一、拉取镜像prom/alertmanager docker pull prom/alertmanager二、 创建 Alertmanager 配置文件 首先准备Alertmanager的配置文件 alertmanager.yml(如存…...

Keil软件中STM32(ARM)与C51兼容方法

推荐其他UP主&#xff1a;Keil5安装教程&#xff08;包含C51与MDK共存&#xff09; - Kojull - 博客园 我已经实现了&#xff01;...

青少年编程与数学 02-019 Rust 编程基础 19课题、项目发布

青少年编程与数学 02-019 Rust 编程基础 19课题、项目发布 一、准备工作1. 创建和配置项目2. 编写代码和测试3. 文档注释 二、构建发布版本1. 构建优化后的可执行文件2. 静态链接&#xff08;可选&#xff09; 三、发布到 crates.io1. Crates.io核心功能使用方法特点最新动态 2…...

一洽小程序接入说明

接入说明 文档以微信小程序作为示例介绍&#xff0c;其他小程序接入操作与此类似 1、添加校验文件 开发者使用微信小程序提供的 webview 组件可以实现打开一洽的H5对话 小程序的“域名配置”中添加一洽的对话域名地址&#xff0c;需要获取校验文件提供给一洽放在域名根目录下…...

RabbitMQ的基本使用

RabbitMQ 是一个非常流行的消息中间件&#xff0c;用于实现生产者与消费者之间的异步通信。它基于 AMQP 协议&#xff08;高级消息队列协议&#xff09;&#xff0c;支持多种编程语言和平台。 以下是 RabbitMQ 的基本使用说明&#xff0c;包括安装、核心概念、基本操作和 Pyth…...

CSS专题之常见布局

前言 石匠敲击石头的第 13 次 作为一名前端开发&#xff0c;在日常开发中&#xff0c;写页面是必不可少的工作&#xff0c;但有时候发现很多的页面结构都是类似的&#xff0c;所以打算写一篇文章来梳理一下日常开发中常见的布局&#xff0c;如果哪里写的有问题欢迎指出。 单列…...

CentOS 7连接公司网络配置指南

在物理主机上安装了一个CentOS 7&#xff0c;需要连接公司的网络&#xff0c;但是公司的网络需要输入用户名密码才能连接 解决方案 需要 同时设置 wifi-sec.key-mgmt 和 802-1x 参数。以下是分步操作&#xff1a; 1. 创建基础 Wi-Fi 连接 sudo nmcli con add con-name &quo…...

RustDesk CentOS自建中继节点

一、需开放端口 TCP: 21115, 21116, 21117, 21118, 21119 UDP: 21116 二、安装docker 1.使用 root 权限登录 CentOS。确保 yum 包更新到最新 yum update 2. 卸载旧版本 yum remove docker 3. 安装 Docker 所需依赖 yum -y install yum-utils device-mapper-persistent-d…...

CentOS 7上部署BIND9 DNS服务器指南

场景假设&#xff1a; 我们要为内部网络 192.168.1.0/24 搭建一个权威 DNS 服务器。 域名&#xff1a;mylab.localDNS 服务器 IP&#xff1a;192.168.1.10我们将配置正向解析 (hostname -> IP) 和反向解析 (IP -> hostname)。 一、安装 BIND9 更新系统并安装 BIND 及工…...