SQL老司机,居然是这样智能挖掘异常日志

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 提取异常日志是个大难题 面对海量的日志(TB乃至PB级别),如何从日志中挖掘出异常信息对于大部分的开发者而言是一个大难题。例如,判断机器的延时是否正常,部分request是否正常。通常,我们对于异常的数据,要及时的报警,以尽快的处理。

提取异常日志是个大难题

面对海量的日志(TB乃至PB级别),如何从日志中挖掘出异常信息对于大部分的开发者而言是一个大难题。例如,判断机器的延时是否正常,部分request是否正常。通常,我们对于异常的数据,要及时的报警,以尽快的处理。

通常我们是怎么搞得呢? 在以前,依赖于开发者的经验,来根据某些特定的特征,判断是否达到了阈值,例如根据延时是否达到了某个特定的值,或者http 响应码5xx的比例达到了某个阈值。这个阈值,依赖于资深的开发者的丰富的经验。

AI dev/ops

AI算法的迅猛发展,给异常日志挖掘提供了新的方向。大名鼎鼎的AI领域专家吴恩达(Andrew NG),在他所教授的Machine Learning课程中提供了一种Abnormal Detection算法。算法通过训练数据集,获得一个正态分布。然后检测目标数据是否落在了正态分布的边缘位置,如果落在了边缘位置,则认为是一个异常数据。

算法步骤:

  1. 确定要训练的feature,可以是单个指标,比如latency,也可以是复合指标,例如CPU/NetFlow
  2. 在训练数据集上,求得均值μ和方差σ^2
  3. 对新数据求方程P(x)= 
    image

接下来,我们介绍如何在SQL中使用该算法来检测异常。

日志服务提供的异常检测算法

以延时为例,我们来看哪些延时是异常的。 延时的分布一般是这样的:

不满足正太的需求,要把上述图形转化成正太分布,对latency 求对数:log(latency)

image.png

  • 值μ和方差σ^2:
* | select numeric_histogram(10,latency), stddev_pop(ln(latency)) as stddev,var_pop(ln(latency)) as variance ,avg(ln(latency)) as avg_ln, avg(latency) as avglatency

image.png

stddev即标准差
variance即方差
avg_ln即ln(latency)的均值
avglatency即latency的均值

  • 提取异常数据
| select latency  where  pow(e(), - pow((ln(latency) - 8.223) ,2)/2/0.3975) /sqrt(2*pi()) / 0.53  < 0.01 order by latency desc 

把方差标准差和均值带入公式,使用where筛选出来小于0.01的结果,即异常值。可以看到,获得的结果,明显大于军latency的均值。

image

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
24天前
|
SQL
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
17 0
|
3天前
|
Java
log4j异常日志过滤规则配置
log4j异常日志过滤规则配置
13 0
|
1月前
|
SQL JSON Kubernetes
Seata常见问题之服务端 error日志没有输出,客户端执行sql报错如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
104 0
|
1月前
|
SQL 资源调度 Oracle
Flink CDC产品常见问题之sql运行中查看日志任务失败如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
2月前
|
SQL 数据采集 JSON
弱结构化日志 Flink SQL 怎么写?SLS SPL 来帮忙
弱结构化日志 Flink SQL 怎么写?SLS SPL 来帮忙
125169 136
|
3月前
|
SQL 关系型数据库 MySQL
MySQL SQL性能分析 慢查询日志、explain使用
MySQL SQL性能分析 慢查询日志、explain使用
106 0
|
3月前
|
SQL 监控 关系型数据库
解密SQL性能异常事件及阿里云数据库的性能调优实践
作为开发者想必都知道数据库是现代应用的核心组件之一,而且在当今互联网时代之下,SQL查询的性能直接影响系统的整体性能,它的性能对于系统的稳定性和响应速度至关重要。那么本文就来讨论一下SQL性能异常的排查和优化方法,包括我个人印象深刻的SQL性能异常事件,以及分享一下使用阿里云数据库产品/工具进行SQL性能调优的经验和心得体会。
85 1
解密SQL性能异常事件及阿里云数据库的性能调优实践
|
3月前
|
SQL 监控 关系型数据库
常见的SQL优化和排查性能异常秘籍
常见的SQL优化和排查性能异常秘籍
34 1
|
4月前
|
Java Maven
maven 项目配置日志打印以及异常日志打印问题
maven 项目配置日志打印以及异常日志打印问题
57 0
|
4月前
|
SQL 大数据 HIVE
每天一道大厂SQL题【Day09】充值日志SQL实战
每天一道大厂SQL题【Day09】充值日志SQL实战
30 0

相关产品

  • 日志服务