日志语义异常检测

2023-11-09

日志记录了软件系统运行时的详细信息,系统开发与运维人员可以根据日志监控系统剖析系统的异常行为与错误。日志异常检测可以分为语义异常(执行结果)、执行异常(执行日志序列)与性能异常(执行时间)

1.日志异常类型

日志记录系统在某个时间点执行了某些操作以及相应操作的结果。

可以对异常类型进行大致分类,如网络异常、数据库异常、硬件异常、I/O异常、操作系统异常等。每一个类型又可以进行细分,以硬件异常为例,可能存在CPU异常、磁盘空间不足、磁盘损坏等硬件上的异常。

自动判断日志异常类型的前提是制定统一的日志异常类型说明标准、各类别中的细分类与特征。

2.日志与自然语言文本的区别

基于语义异常的日志分析方法首先对日志进行向量化表示。

日志与自然语言文本有所不同:

(1)日志为半结构化文本,日志通常包括日志头与日志描述信息,日志头中经常包含时间戳、来源、日志等级等字段;日志描述信息中包含对当前操作与对应结果的描述,语义信息丰富

(2)日志中存在大量重复,在日志描述信息中包含常量信息与变量值,往往将变量值作为参数符号化后,大量日志可以压缩为一个日志模板;

(3)日志中包含大量驼峰格式的连写字符串,这与不同编程语言的函数、类等命名格式有关

(4)成熟的系统 / 中间件的日志数据中包含的词汇量较小。

3.日志的向量化

日志的向量化表示需要考虑以下问题:

(1)日志向量化之前需要提取日志描述字段,对日志描述字段进行初始化;

(2)日志中的变量值通常为无意义的数值或者不同的ip、url、path等,需要对变量值替换

(3)日志特殊的写法需要制定新的规则对日志进行分词

(4)日志重复量越大且越成熟的系统,格式与描述越一致,导致日志有效词汇量少,后续会出现OOV问题,需要结合日志数据与通用数据进行向量化训练。

一种基于语义异常的日志分析方法

数据预处理将原始日志数据处理为算法要求的标准输入数据,包括:命名实体识别、分词、过滤、大小写转换、向量化等

命名实体识别需要对timestamp,url,ip,file,path,number,email等日志中经常出现的实体进行识别;

分词需要考虑日志中常见的驼峰表达式;

在日志向量化过程中,利用通用语料(wikidata)+系统/中间件日志语料+业务日志语料训练词向量,最终,词向量维度为200维,词库大小为583511。

日志来源检测针对不同来源的日志进行分析,总结其日志格式,并提取正则表达式,为每一个来源的日志构建日志格式,根据日志格式检测日志来源。

基于规则的日志来源检测方法,针对不同来源组件的日志进行测试,每个组件日志各选择10000条日志进行测试,准确率达99.94%针对成熟的系统/中间组件,构建规则进行来源检测可以达到极高的准确率。

日志分类模型

利用日志中包含的日志等级字段,如debug,info,warning,error等,对日志进行分类,通常会存在两个问题:

(1)有些系统/业务日志中并不包含日志等级字段

(2)有些系统/业务日志中,日志等级字段标注不准确,或者将异常情况发生时的相关状态或情况标注为“error”等,实际上这类日志语义上并不包含错误信息。

首先对错误日志与异常日志进行区分:

异常日志:发生异常时打印的日志,可能仅为异常发生时的某个状态或情况说明,本身并不包含错误信息;

错误日志:语义中包含错误信息的日志。

本文中将日志分为正常日志与错误日志,即根据日志的语义信息将日志进行分类

首先构造数据集:采集系统/中间件日志、业务日志,提取日志模式并进行去重,采用人工标注的方式标注数据集,抽取正常日志8926条,错误日志4051条进行实验

利用传统机器学习中的二分类算法如svm,集成学习算法随机森林,深度学习的bert分别进行实验

异常分类模型:

(1)异常类型分类

将日志中包含的异常类型分为:文件/文件夹操作异常、网络异常、数据库异常、硬件异常、系统异常和其他异常6类。每一类中分别包含多个细分类异常,如文件/文件夹操作异常中包含文件或目录不存在、文件或目录无访问权限、读/写文件失败、其他IO异常等。

实验数据集:数据异常类型及细分类数据集存在类别不平衡且某些细分类中没有数据的情况,

因此采用粗分类进行异常类型分类实验,将日志异常类型分为6类:文件/文件夹操作异常、网络异常、数据库异常、硬件异常、系统异常、其他异常。

参考:智能运维之日志语义异常检测 - 知乎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

日志语义异常检测 的相关文章

  • 使用OpenCV和Python生成视频条形码

    使用OpenCV和Python生成视频条形码 1 效果图 2 原理 2 1 步骤 2 2 项目结构 3 源码 参考 这篇博客将演示如何使用Python OpenCV生成视频条形码 生成视频条形码通常是出于设计美感 它不具有广泛的计算机视觉
  • 阿里云ECS FTP搭建

    阿里云ECS windows版 FTP服务设置教程 1 https www filezilla cn 去下载服务端和客户端并安装好 2 阿里云添加安全组 3 FileZilla服务端配置 4 FileZilla客户端使用端口10021连接服

随机推荐

  • AI巨浪下,数据技术如何驱动智能未来?

    引言 数据技术是大数据时代的核心驱动力 也是推动各行各业数字化转型和智能化升级的关键因素 随着云计算 人工智能 区块链等新兴技术的不断发展和融合 数据技术也呈现出多模态 混合处理 自动化管理等新的趋势和特点 8 月 19 日 周六 第八届
  • MongoDB:模糊查询、数量、结果插入新表、重复字段

    模糊查询 body中包含 db getCollection test find body regex 骗子 body或title中包含 db getCollection test find or body regex 骗子 title re
  • astype转换数据类型

    astype方法 通用函数 可以用于把dataframe中的任何列转换成其他类型 常见的数据类型有 int 整型 float 浮点型 object str 字符串 category 分类数据 import pandas as pd impo
  • Django基础知识整理之DRF框架

    文章目录 1 DRF框架简介 2 DRF特点 3 环境安装与配置 4 DRF牛刀小试 1 创建序列化器 2 编写视图 3 定义路由 4 运行测试 1 DRF框架简介 Django REST framework 框架是一个用于构建Web AP
  • Flutter的Toast之oktoast的使用

    1 在pubspec yaml中加入 oktoast 2 0 0 然后运行package get 2 包装 app widget 在main dart中 必须使用OKToast包起来 3 调用 如果只是Toast文字 可直接调用showTo
  • 阿里云的OSS云存储的使用

    阿里云官网 https www aliyun com 通过阿里云官网 登录进入用户的界面 在搜索框中输入OSS 然后进入阿里云的对象存储OSS的控制台 未开通的开通即可 创建 Bucket 点击 Bucket 列表 查看个人的Bucket
  • 区块链:建立加密代币

    启动testrpc 打开终端 启动testrpc testrpc EthereumJS TestRPC v6 0 3 ganache core 2 0 2 代币合约的基本概念 代币合约扮演的角色相当于银行的角色 使用者在代币合约中 用自己的
  • 【Eigen 1】Eigen中的norm、normalize、normalized三者对比

    一 norm 1 对于Vector norm返回的是向量的二范数 即 x 2
  • 【vue2+element ui】添加修改共用表单的下拉框回显问题分析以及解决方案(附共用表单代码)

    目录 简介 问题复原 问题分析 共用表单代码分享 简介 本人前端水平不佳 本文分享在编写个人项目前端代码的时候遇到的回显问题的解决办法 仅供参考 问题复原 首先展示表单中的问题代码 本次前端的设计是添加和修改操作共用表单 但是其中有一个下拉
  • 陀螺产业区块链第三季

    2020年4月 国家发改委在例行新闻发布会上宣布区块链被正式列为新型基础设施中的信息基础设施 自此区块链正式搭上新基建的 风口 与传统基础设施建设相比 新型基础设施建设更加侧重于突出产业转型升级的新方向 无论是5G还是区块链 都体现出加快推
  • 网站服务器停止服务,DDoS攻击是如何让网站停止服务的?

    DDoS攻击 是一种耗尽攻击目标的系统资源 导致攻击目标无法响应正常的服务请求的网络攻击方式 虽然 大规模的DDoS攻击占据了大部分的头条新闻 但实际上 较小的DDoS攻击在网络安全环境中更为常见 在没有做好充分的防护之下 较小规模的DDo
  • 电动汽车移动充电站Mobi Charger问世

    12月26日 电动和混合动力汽车新闻网站Ecomento报道称 初创公司FreeWire针对电动汽车推出了移到充电设备Mobi Charger 目前 社会尚未认同在办公场所为电动汽车充电 举例而言 当你已经开始工作 而电动汽车正在外面充电
  • 微信小程序实现商品列表跳转详情页

    实验要求 模仿京东小程序 实现下列功能 首页包含了手机图片 手机的描述 手机的价格 购物车图标 首页显示两行文字 多余的文字隐藏 以3个点代替 点击页面不同的地方 能够跳转到不同的手机详情页面 手机详情页包含手机图片 上架日期 价格 手机描
  • centos 8 编译安装hyperscan

    一 编译安装环境配置 官方文档 http intel github io hyperscan dev reference getting started html 1 1硬件配置 配置 参数 CPU Intel Xeon Gold 5218
  • 统计学 相关性 因果_为什么相关性不表示因果关系-这种在统计中的常用说法的含义...

    统计学 相关性 因果 You might remember this simple mantra from your statistics class 您可能还记得统计课上的这个简单口头禅 Correlation does not impl
  • phpMyAdmin报错 in ./libraries/config/FormDisplay.php#661 continue targeting switch is equivalent to

    phpMyAdmin报错 in libraries config FormDisplay php 661 continue targeting switch is equivalent to break Did you mean to us
  • Android 13 媒体权限适配指南

    在 Android 系统最近的几个大版本里 更新方向有很大一部分都集中在了隐私安全这一方面 每个版本都会新增隐私安全限制 或者是对之前的隐私项进行进一步的升级 Android 10 分区存储 限制访问不可重置的硬件标识符 限制对剪贴板数据的
  • uView1.0 indexList索引列表遇到的坑

    在使用uView索引列表做通讯录的时候遇到了几个问题 先上图片 问题1 右侧的abcd首字母按钮点击错乱 比如点了f 弹出显示的是a开头的人 应该是f开头的人才对 通过排查 发现传入这个右侧组件参数的时候 后端并没有返回完整的A Z 而是有
  • C++适配器模式

    适配器模式 1 适配器模式简介 适配器模式其实是实现了两个互不兼容的已有系统之间的桥梁效果 所以适配器模式可以说是为了实现功能的一种补救措施 最好的方式是将系统重构使用工厂模式即可 但是对已有系统的重构代价过大 所以一般情况下我们都会通过适
  • 日志语义异常检测

    日志记录了软件系统运行时的详细信息 系统开发与运维人员可以根据日志监控系统剖析系统的异常行为与错误 日志异常检测可以分为语义异常 执行结果 执行异常 执行日志序列 与性能异常 执行时间 1 日志异常类型 日志记录系统在某个时间点执行了某些操