日志记录了软件系统的生命线,为我们提供了故障排查和性能优化的关键线索。


本期EasyOps产品使用最佳实践,我们将为您揭晓:

  • 如何监控日志的关键字?

  • 如何基于关键字告警?

日 志 关 键 字 监 控

日志作为软件系统运行时记录,记录了软件运行生命周期的事件,因此日志监控在监控实践中属于非常关键的一项。

在日志监控中,我们可能会有这样的需求:

  • 针对某个特殊的关键字做监控,关注关键字出现的次数,希望知道在什么时刻,关注的关键字是多少。如下图所示:

  • 当在周期内出现关键字的次数大于多少次时,希望引起重视,比如下面的告警告诉我1888@ not found这个关键字在一个采集周期内,已经出现了52次。

结合以上信息,很可能代表软件系统的功能发生了故障。

那么该怎么满足上述的监控效果?下面的文档,演示了如何基于平台,实现对关键字的采集和监控,并且基于关键字出现的次数进行告警。

配 置 说 明

1.新建日志采集任务

选择右上角的新建日志采集并提取关键字加工为指标,注意,这里分为两种类型的指标:

  • 关键字加工指标:可通过从日志数据提取关键字,并加工为指标对系统进行实时监控,提升系统健康的感知能力。

  • 通用指标:通用指标包含各种由日志内容分割出来的指标。

选择监控的资源对象

选择日志标记

点击下一步后,选择要监控的关键字

此处会新建一个指标:keepalive_timeout_count。

注意:

  • 这个指标会从日志内容中,匹配包含err:keepalive timeout的关键字,如果匹配,则指标数加1。

  • 日志汇聚频率是15s采集一次,也就是说,如果配置出现次数的阈值是10,那么,在15秒内这个采集周期中,出现10次关键字后,即可触发告警。

最后点击保存。

稍等片刻后,即可看到指标的数据。也就是我们开头提到的图:

2.配置告警规则

① 新增监控目标, 这个目标一般是主机,也可以关联具体的部署实例。具体根据上面的配置采集策略时关联的模型而定。在此处,则是一台主机:

② 添加告警条件,这里针对新建的指标,在采集周期内出现超过10次即告警。具体次数可根据您的实际场景而定:

③ 后续根据实际情况添加到告警通知组。

此时,当监控的日志出现关键字,超过10次后,即可触发告警通知。

附上告警通知模板:


{% set color = "red" %}

{{time|ts2str:'%Y-%m-%d  %H:%M'}} 产生告警事件</font></h2>


| 事件类型 | 日志监控 |   

 | --- | --- |   

 | 告警等级 | {{levelName}} |   

 | 告警资源 | {{t*****}} |   

 | 告警信息 |  {{originContent}} |     

 | 运营负责人 |{{instance|jsonpath:'$.owner[*].name'|unique|join:','}} |   

| 持续时长 | {{duration|duration_format:'zh'}} |   

 | 首次发生时间 | {{startTime|ts2str:'%Y-%m-%d %H:%M'}} |   

 | 事件详情 | [请点击](http://*****.*******.*****/next/events/{{eventId}}/detail) | 

 | 策略详情 | [请点击](http://*****.*******.*****/next/events/alert-rule/alert-rule/{{ruleId}}/edit) |



- end -