在rsyslog中,我为名为 NV 的数据库插入语句创建了一个模板,并将这些插入语句写入文件 ys_nv_haproxy.log ,如下所示
if $programname startswith 'haproxy' and $msg contains '/nextVehicles' then action(type="omfile" file="/var/log/ys_nv_haproxy.log" template="NV")
然后,当每天轮换日志时,我设置 postrotate 以将 ys_nv_haproxy.log 中的insert语句加载到h2数据库中,如下所示:
java -cp "$dir/h2-1.4.196.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.RunScript -url jdbc:h2:tcp://127.0.0.1:7002/rsyslogdb -user rsysloguser -password rsyslogpwd -script /var/log/ys_nv_haproxy.log.1
我可以使用h2浏览器查看它们。显然,这是一个批量负载,我必须等到第二天查看前几天的数据。
问题是有一种简单的方法可以使用模板 NV 在rsslog中出现后立即在h2数据库中立即记录数据。我已经看到了mysql和postgres的rsyslog输出模块,我正在寻找类似于我的h2设置的东西。