如何让Rsyslog+LogAnalyzer留存并展示当日热门网络设备事件?
实现Rsyslog+LogAnalyzer当日热门事件持续展示方案
可以实现,以下是具体操作思路:
1. 日志预处理与聚合
- 在Rsyslog端配置日志过滤与聚合规则,用
rsyslog的模板或mmnormalize模块对重复事件进行计数。针对相同事件内容(如特定错误码、设备告警),统计当日内的出现次数,生成包含事件内容、出现次数、首次触发时间的聚合日志。 - 示例Rsyslog配置片段:
module(load="mmnormalize") template(name="AggregatedEvent" type="string" string="%msg%|%$!count%|%timestamp:::date-rfc3339%") if $msg contains "ERROR_CODE_XXX" then { set $!count = $!count + 1; action(type="omfile" file="/var/log/aggregated/hot_events.log" template="AggregatedEvent") }
2. LogAnalyzer定制展示
- 登录LogAnalyzer后台,创建自定义视图:
- 选择聚合后的日志文件作为数据源,设置过滤条件为
时间范围=当日。 - 添加展示字段:事件内容、出现次数、首次触发时间,按
出现次数降序排序。
- 选择聚合后的日志文件作为数据源,设置过滤条件为
- 配置视图自动刷新:在视图设置中开启自动刷新(比如每5分钟),确保热门事件的计数实时更新。
- 锁定视图位置:将该自定义视图设置为首页默认展示模块,或添加到固定侧边栏,避免被其他操作覆盖。
3. 持久化存储保障
- 确保Rsyslog的聚合日志文件每日归档但保留当日文件不被轮转:修改
logrotate配置,当日的hot_events.log不参与轮转,次日再归档为历史文件。 - 示例logrotate配置片段:
/var/log/aggregated/hot_events.log { daily missingok notifempty delaycompress postrotate /usr/bin/systemctl reload rsyslog > /dev/null 2>&1 || true endscript dateext dateformat -%Y%m%d olddir /var/log/aggregated/archive }
这样就能实现当日热门事件的持续展示,计数实时更新且不会随普通日志刷新消失。
内容的提问来源于stack exchange,提问作者user21402031
相关产品推荐
相关产品推荐

