# 异常检测 异常检测是识别应用程序环境中异常或意外事件和度量的有效方法。异常检测会自动检测与应用、实例、进程、Database、主机相关的性能问题。平台支持根据动态基线生成的阈值,调整问题检测的灵敏度,同时也支持自定义警报阈值。异常检测配置成功以后,基调听云平台会自动分析您的IT基础架构中的异常情况,并尝试识别任何相关影响和根本原因。 平台支持两种类型的阈值检测: - 动态基线:多维基线可自动检测随时间变化的单个参考值。动态基线参考值用于处理应用程序或者服务响应时间、错误率和负载中的动态变化。动态基线会设有两个值,绝对阈值和相对阈值,其计算规则如下: ``` 例如: 动态基线当前参考值是2.4% 错误率绝对阈值为2.4%+5%=7.4% 错误率相对阈值为2.4%+2.4%*100%=4.8% ``` - 静态阈值:平台对所有基础架构事件(例如,检测高CPU、低磁盘空间或低内存)默认使用静态阈值。用动态基线引发的方法与用静态阈值的方法完全不同。静态阈值提供了一种简单直接的方法来定义基线,由于静态阈值不会随时间变化,因此它们是定义正常操作关键边界的重要监视工具。 ## 全局配置 在左侧导航栏中依次选择**管理>配置>异常检测**,进入**异常检测**页面。该页面包括应用、实例、进程、Database和主机5个页签,可在左侧导航栏中进行切换。在该页面配置的阈值适用于所有组件,配置说明如下。 ![](../image/Snipaste_2023-03-20_16-12-26.png) ### 应用异常检测 自动检测与应用相关的性能异常,例如响应时间恶化和错误率增加。每个异常类型都是独立检测的,并触发其自己的问题和警报。 检查模式包括动态基线和静态阈值,默认为动态基线。关于检测的指标,说明如下。 #### 响应时间 静态阈值: - 平均响应时间:应用请求的平均响应时间,默认绝对阈值为500ms。 触发条件:当平均响应时间大于绝对阈值时,触发告警。 - 95分位响应时间:是指95%的应用请求响应时间,默认绝对值为3000ms。 触发条件:当前应用的95分位响应时间在5分钟的观测期内超出该阈值时,触发告警。 - 告警抑制:当每分钟请求数大于多少并且异常状态持续超过多少分钟就会触发告警。 动态基线: - 平均响应时间:当应用的平均响应时间同时超出绝对阈值和相对阈值,触发告警。 - 告警抑制:当每分钟请求数大于多少并且异常状态持续超过多少分钟就会触发告警。 #### 错误率 静态阈值: - 错误率:是指当前数据库调用SQL语句执行的错误率。默认绝对阈值10%。 触发条件:当SQL执行错误率在5分钟的观察期内有5次超过阈值时,触发告警。 - 告警抑制:当每分钟请求数大于多少并且异常状态持续超过多少分钟就会触发告警。 动态基线: - 错误率:当SQL执行错误率在5分钟的观察期内有5次同时超过绝对阈值和相对阈值时,触发告警。 - 告警抑制:当每分钟请求数大于多少并且异常状态持续超过多少分钟就会触发告警。 #### 基线时间窗口 动态基线模式下,默认使用最近7天的基线作为检查依据,用户也可以自定义时间窗口。如果此期间的数据无效(例如:由于重大的框架变更),可以通过重置按钮重置基线时间窗口,因重置后重新计算基线,自动检测程序可能短期无数据。 如果想要恢复原来的默认值,右上角单击**使用默认值**即可。 ### 实例异常检测 自动检测与实例相关的性能异常 ,例如实例无心跳和GC STW时间过长。每个异常类型都是独立检测的,并触发其自己的问题和警报。 检测模式包括自动检测和静态阈值,默认为自动检测。关于检测的指标,说明如下。 #### 实例无心跳 无需配置阈值,打开后系统会自动采集实例无心跳的情况。 ![](../image/2023-03-20-7.png) #### GC STW时间 - 自动检测:基调听云管理平台会通过内置的算法自动检测实例GC STW的时间,如果时间超出范围时,触发告警。 - 静态阈值:默认阈值为20000ms,当GC STW时间在五分钟3次高于设置的阈值,则触发告警。 #### CPU使用率 - 自动检测:基调听云管理平台会通过内置算法自动检测CPU使用率的情况,如果使用率超出范围时,触发告警。 - 静态检测:默认阈值为90%,当CPU使用率在5分钟内3次高于设置的阈值,则触发告警。 ### 进程异常检测 自动检测与进程相关的性能异常,例如CPU使用率过高或内存使用率过高等。每个异常类型都是独立检测的,并触发其自己的问题和警报。 进程区分Linux系统和Windows系统,Linux系统比Windows系统多一项**打开文件数使用率**,其他都相同。 检测模式包括自动检测和静态阈值,默认为自动检测。 ![](../image/2023-03-20-8.png) #### 打开文件数使用率 - 自动检测:基调听云管理平台会通过内置的算法自动检测打开文件数使用率,如果使用率超出范围时,触发告警。 - 静态阈值:默认阈值为97%,当打开文件数使用率在5分钟内3次高于设置的阈值,则触发告警。 #### CPU使用率 同打开文件数使用率一样,可参考上方的配置说明。 #### 内存使用率 同打开文件数使用率一样,可参考上方的配置说明。 ### Database异常检测 自动检测与数据库服务相关的性能异常,例如响应时间恶化和错误率增加。每个异常类型都是独立检测的,并触发其自己的问题和警报。 该模块配置同应用模块一样,可参考[应用异常检测](#应用异常检测)的配置说明。 ### 主机异常检测 自动检测与基础框架相关的性能异常,例如CPU使用率过高或内存不足。每个异常类型都是独立检测的,并触发其自己的问题和警报。 进程区分Linux系统和Windows系统,Linux系统比Windows系统多一项**磁盘inode节点使用率高**,其他则都相同。 检测模式包括自动检测和静态阈值,默认为自动检测。自动检测的原理都相同,下面只描述静态阈值检测模式。 - 检测主机CPU使用率过高 静态阈值:默认值为90%,如果CPU使用率5分钟有3次高于设置的阈值,则触发告警。 - 检测主机上的内存不足 静态阈值:同时设置内存使用率和Major Page Fault两个阈值,如果主机上内存使用率5分钟有3次高于设置的两个阈值,则触发告警。 > **说明**:Major Page Fault是指需要访问的内存不在虚拟地址空间,也不在物理内存中,需要从慢速设备载入。 - TCP重传率过高 静态阈值:默认值为10%,如果TCP重传率5分钟有3次高于设置的阈值,则触发告警。 > **说明**:TCP重传率是指重新发送信息的与全部的调用信息之间的比值。 - 主机磁盘缓慢 静态阈值:默认值为200ms,如果5分钟有3次磁盘延迟高于设置的阈值,则触发报警。 - 磁盘分区使用率 静态阈值:默认值为95%,如果5分钟有3次磁盘分区使用率高于设置的阈值,则触发告警。 - 磁盘inode节点使用率过高 静态阈值:默认值为95%,如果5分钟有3次inode节点使用率高于设置的阈值,则触发告警。 - 网卡丢包严重 静态阈值:需要设置丢包数和丢包率,如果5分钟有3次网卡丢包高于设置的两个阈值,则触发告警。 - 网卡错误严重 静态阈值:需要设置错误数和错误率,如果5分钟有3次网卡错误高于设置的阈值,则触发告警。 - 网卡流量过高 静态阈值:默认值为950Mbps,当CPU使用率在5分钟的观测期内有3次高于设置的阈值,则触发告警。 ## 单独配置 在异常检测页面配置的阈值是适用于所有组件,如果想要对单个组件进行单独配置请参考如下操作。 - 在左侧导航栏中选择**应用与微服务>应用**,单击目标应用名称,进入**应用概览**页面,然后单击右上角的“…”选择**异常检测**,进入异常检测应用配置页面。 ![](../image/2023-03-20-2.png) - 在左侧导航栏中选择**应用与微服务>应用**,单击目标应用名称,进入**应用概览**页面。单击应用服务器,从下方选择目标实例,进入**实例概览**页面。然后单击右上角的“…”选择**异常检测**,进入异常检测实例配置页面。 ![](../image/2023-03-20-3.png) - 在左侧导航栏中选择**基础设施>主机**,单击目标主机名称,进入**主机概览**页面,然后单击主机名称右侧的“…”选择**异常检测**,进入异常检测主机配置页面。 ![](../image/2023-03-20-4.png) - 在左侧导航栏中选择**基础设施>主机**,单击目标主机名称,进入**主机概览**页面。然后单击**进程**页签,在进程列表的**配置**列单击**异常检测**,进入异常检测进程配置页面。 ![](../image/2023-03-20-5.png) - 在左侧导航栏中选择**应用与微服务>服务组件>Database组件**,单击目标数据库实例名称,进入**数据库概览**页面。然后单击概要信息右上角的“…”选择**异常检测**,进入异常检测Database配置页面。 ![](../image/2023-03-20-6.png) > **说明**:对单个组件配置的优先级要高于异常检测的全局配置。