告警示例
实例一:Web应用错误告警
场景介绍
某Web应用的日志通过数据采集工具被导入炎凰数据平台的 web_app_log
数据集中,所有的日志遵循相同的格式。
以其中一条日志为例,日志中的 [error]
部分为日志级别:
[Tue Jun 23 19:06:00 2020] [error] [client 50.0.134.125] File does not exist: /var/www/favicon.ico
日志级别在数据集中保存的字段名为 level
,字段值可以是 info
,warnning
,error
,fatal
等。
告警需要监测Web应用报出的 error
级别及以上的日志,一旦这种日志出现就要及时通过邮件将告警发送给运维团队。
告警配置
配置说明:
使用语句
SELECT * FROM web_app_log WHERE level IN ('error', 'fatal'')
可以查询到全部错误级别的日志每次查询的范围为之前五分钟内的最新日志
触发告警的条件为查询到了任何的错误日志
执行计划为每五分钟执行一次监测,每次执行延后十五秒钟,即执行时间点为每个小时的五分十五秒、十分十五秒、十五分十五秒等
对告警发送的频率不设限制
通知邮件配置说明:
- 使用Token将监测到的错误信息写入邮件内容中(Token清单)
实例二:磁盘空间不足告警
场景介绍
某公司内部服务器集群的日志通过HEI导入炎凰数据平台的itops
数据集中,运维工程师希望能在磁盘即将满负荷运作的情况下收到告警,比如在过去30分钟内的磁盘利用率最大值在95%以上。
告警配置
配置说明:
使用语句
select "disk_usage" from itops cross apply parse_regex("disk_usage.Use%", '(?<disk_usage_str>\d+)%') cross apply (SELECT CAST(disk_usage_str as FLOAT) as disk_usage) where _source = 'resource' and hostname = '<HOSTNAME>' order by _time desc limit 1
可以查询到磁盘利用率每次查询的范围为之前30分钟内的最新结果
触发告警的条件为自定义的磁盘利用率最大值在95%以上
执行计划为每30分钟执行一次监测
对告警发送的频率不设限制
通知Webhook配置说明:
- 预先在希望接收到告警的IM工具(比如Teams/Slack)配置好Webhook,一般通过URL token形式接收
需要注意的标头与负载的内容,必须使用双引号
- 如果需要显示出查询的结果,需要在负载的json中加上{{search.result.FIELD_NAME}}
如:{"text": "当前网络流量大于100M带宽最大值,实际值为{{search.result.Netwrok_traffic_Mbps}} Mbps"}