如何用Loki表达式在Grafana中针对重复日志ID告警?
如何在Loki中按FTP ID统计日志出现次数并告警重复ID?
可以实现这个需求,核心是先提取FTP ID作为独立标签,再按标签分组统计每个ID的日志出现次数,最后过滤出次数超标的结果。
修改后的Loki查询表达式
count_over_time( {job="namespace/files-lister"} |~`\[ftp-([0-9]+)\] Files listing is on process` | label_format ftp_id="$1" [1h]) by (ftp_id) > 1
表达式说明
|~:匹配包含目标日志内容的条目,通过正则括号([0-9]+)捕获ftp-后的数字ID作为分组| label_format ftp_id="$1":将捕获的分组内容(即FTP数字ID)赋值给自定义标签ftp_idby (ftp_id):按新生成的ftp_id标签分组,统计每个ID在过去1小时内的日志出现次数>1:过滤出出现次数超过1次的FTP ID
针对示例日志的效果
你的示例日志中:
- ftp-23392 出现3次
- ftp-12423、ftp-53433 各出现1次
- ftp-12345 的日志内容不匹配目标模式,会被过滤
使用修改后的表达式后,只会返回ftp-23392的统计结果,完全符合你需要动态定位重复ID的需求。
内容的提问来源于stack exchange,提问作者Nagarajan
相关产品推荐
相关产品推荐

