日志记录了软件系统的生命线,为我们提供了故障排查和性能优化的关键线索。本期EasyOps产品使用最佳实践,我们将为您揭晓:如何监控日志的关键字?如何基于关键字告警?
日 志 关 键 字 监 控日志作为软件系统运行时记录,记录了软件运行生命周期的事件,因此日志监控在监控实践中属于非常关键的一项在日志监控中,我们可能会有这样的需求:针对某个特殊的关键字做监控,关注关键字出现的次数,希望知道在什么时刻,关注的关键字是多少。
如下图所示:
当在周期内出现关键字的次数大于多少次时,希望引起重视,比如下面的告警告诉我1888@ not found这个关键字在一个采集周期内,已经出现了52次。
结合以上信息,很可能代表软件系统的功能发生了故障那么该怎么满足上述的监控效果?下面的文档,演示了如何基于pingtai,实现对关键字的采集和监控,并且基于关键字出现的次数进行告警配 置 说 明1.新建日志采集任务。
选择右上角的新建日志采集并提取关键字加工为指标,注意,这里分为两种类型的指标:关键字加工指标:可通过从日志数据提取关键字,并加工为指标对系统进行实时监控,提升系统健康的感知能力通用指标:通用指标包含各种由日志内容分割出来的指标。
选择监控的ZY对象
选择日志标记
点击下一步后,选择要监控的关键字
此处会新建一个指标:keepalive_timeout_count注意:这个指标会从日志内容中,匹配包含err:keepalive timeout的关键字,如果匹配,则指标数加1日志汇聚频率是15s采集一次,也就是说,如果配置出现次数的阈值是10,那么,在15秒内这个采集周期中,出现10次关键字后,即可触发告警。
最后点击保存。
稍等片刻后,即可看到指标的数据。也就是我们开头提到的图:
2.配置告警规则① 新增监控目标, 这个目标一般是主机,也可以关联具体的部署实例。具体根据上面的配置采集策略时关联的模型而定。在此处,则是一台主机:
② 添加告警条件,这里针对新建的指标,在采集周期内出现超过10次即告警。具体次数可根据您的实际场景而定:
③ 后续根据实际情况添加到告警通知组。此时,当监控的日志出现关键字,超过10次后,即可触发告警通知。
附上告警通知模板:{% set color = "red" %}{{time|ts2str:%Y-%m-%d %H:%M}} 产生告警事件| 事件类型 | 日志监控 || --- | --- |
| 告警等级 | {{levelName}} || 告警ZY | {{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) |