通过日志监控实现日志关键字的监控与报警

云监控统计日志服务(Log Service)中关键字的数量,并在关键字数量达到一定条件时报警,是日志的常见需求之一。通过本文您可以快速掌握日志关键字监控和设置报警的操作方法。

重要

仅2022年09月13日22:00:00之前已订购包年包月套餐(cms_edition)的用户或已开通按量计费(cms_post)的用户能使用日志监控功能。日志监控功能将于2024年09月14日下线,建议您使用企业云监控中的SLS日志监控替代。

前提条件

  • 请确保您已购买日志监控数据处理量。更多信息,请参见计费标准套餐

  • 请确保您已将本地日志收集到日志服务中。更多信息,请参见日志服务

背景信息

日志服务中日志的样例如下:

2017-06-21 14:38:05 [INFO] [impl.FavServiceImpl] execute_fail and run time is 100msuserid=
2017-06-21 14:38:05 [WARN] [impl.ShopServiceImpl] execute_fail, wait moment 200ms
2017-06-21 14:38:05 [INFO] [impl.ShopServiceImpl] execute_fail and run time is 100ms,reason:user_id invalid
2017-06-21 14:38:05 [INFO] [impl.FavServiceImpl] execute_success, wait moment ,reason:user_id invalid
2017-06-21 14:38:05 [WARN] [impl.UserServiceImpl] execute_fail and run time is 100msuserid=
2017-06-21 14:38:06 [WARN] [impl.FavServiceImpl] execute_fail, wait moment userid=
2017-06-21 14:38:06 [ERROR] [impl.UserServiceImpl] userid=, action=, test=, wait moment ,reason:user_id invalid
2017-06-21 14:38:06 [ERROR] [impl.ShopServiceImpl] execute_success:send msg,200ms

本文以监控日志段中关键字ERROR为例,为您介绍通过日志监控实现日志关键字的监控与报警的操作方法。Key为level,Value为具体的日志段。Key-Value格式如下表所示。

Key

Value

level

2017-06-21 14:38:05 [INFO] [impl.FavServiceImpl] execute_fail and run time is 100msuserid=

level

2017-06-21 14:38:05 [WARN] [impl.ShopServiceImpl] execute_fail, wait moment 200ms

level

2017-06-21 14:38:06 [ERROR] [impl.ShopServiceImpl] execute_success:send msg,200ms

操作步骤

  1. (可选)授权云监控访问日志服务的权限。

    当您首次使用日志监控功能时,需要授权云监控访问日志服务的权限。

    1. 登录云监控控制台

    2. 在左侧导航栏,选择接入中心 > 日志监控

    3. 云监控服务关联角色对话框,单击确定

  2. 新建日志监控,监控level中包含关键字ERROR的日志。

    1. 日志监控页面,单击左上角的新建日志监控

    2. 关联资源页面,设置日志服务相关参数,单击下一步

      参数

      描述

      地域

      日志服务中日志项目(日志Project)所在地域。

      日志Project

      日志服务中日志项目的名称。

      日志Logstore

      日志服务中日志库的名称。

    3. 监控项定义页面,设置监控项相关参数,单击下一步

      新建日志监控

      参数

      描述

      监控项

      监控指标的名称。

      单位

      监控项的单位。

      计算周期

      监控项的计算周期。单位:分钟。取值:1、2、3、4、5、10、15、20、30、60。

      统计方法

      在计算周期内根据选定的统计方法对日志数据进行聚合处理。如果字段值是数值型,可以使用所有统计方法,否则只能使用计数countps两种聚合算法。取值:

      • 计数:计算统计周期内指定字段数值的个数。

      • 求和:计算1分钟内指定字段数值之和。

      • 最大值:计算统计周期内指定字段数值的最大值。

      • 最小值:计算统计周期内指定字段数值的最小值。

      • 平均值:计算统计周期内指定字段数值的平均值。

      • countps:计算统计周期内指定字段求count后的每秒平均值。

      • sumps:计算统计周期内指定字段求sum后的每秒平均值。

      • distinct:去重后计算统计周期内指定字段出现的次数。

      扩展字段

      为统计方法中的结果提供四则运算功能,例如:在统计方法中配置了HTTP状态码请求总数TotalNumber和HTTP状态码大于499的请求数5xxNumber,则可以通过扩展字段计算出服务端的错误率:5xxNumber/TotalNumber*100。

      日志筛选

      对日志数据进行过滤,相当于SQL中的where条件,例如:Key为level,Value中需要监控的关键字为ERROR,该参数设置为level>=ERROR

      选择过滤的日志字段名不能包含中文。

      Group-By

      对数据进行空间维度聚合,相当于SQL中的Group By。

      根据指定的维度,对监控数据进行分组。如果Group By不选择任何维度,则根据聚合方法对全部监控数据进行聚合。

      关于Group By,请参见Group By子句

      Select SQL

      将统计方法转化成SQL语句,方便您理解数据的处理方式。

      应用分组

      应用分组的名称。将该监控项添加到指定应用分组中。

    4. 报警设置页面,设置关键字ERROR的报警规则,单击下一步

      参数

      描述

      规则名称

      报警规则的名称。

      规则描述

      报警规则的主体。当监控数据满足指定报警条件时,触发报警规则。

      报警级别

      报警通知方式。取值:

      • 电话+短信+邮件+WebHook

      • 短信+邮件+WebHook

      • 邮件+WebHook

      连续几次超过阈值后报警

      连续几次超过阈值后,报警联系人组中的联系人会收到报警通知。取值:1、3、5、10、15、30、60、90、120、180。

      通道沉默周期

      报警发生后未恢复正常,间隔多久重复发送一次报警通知。取值:5分钟、15分钟、30分钟、60分钟、3小时、6小时、12小时、24小时。

      监控指标达到报警阈值时发送报警,如果监控指标在通道沉默周期内持续超过报警阈值,在通道沉默周期内不会重复发送报警通知;如果监控指标在通道沉默周期后仍未恢复正常,则云监控再次发送报警通知。

      生效时间

      报警规则的生效时间,报警规则只在生效时间内才会检查监控数据是否需要报警。

      报警回调

      填写公网可访问的URL地址,云监控会将报警信息通过POST或GET请求推送到该URL地址,目前仅支持HTTP协议。关于报警回调的设置方法,请参见使用阈值报警回调

    5. 创建结果页面,单击关闭

  3. 查看关键字ERROR的监控数据。

    创建日志监控后,等待3~5分钟。在日志监控页面,单击目标监控项对应操作列的监控图表图标,查看监控图表。

  4. 查看关键字ERROR的报警通知。

    当日志服务中出现ERROR级别的日志时,您会收到报警通知。