【原创】Nxlog日志收集中的函数替换日期

如题所述,关于Nxlog的日志采集过程中的一些问题,当我们对复杂服务器日志进行收取时,一些我们认为的规则和规律会被狠狠的践踏,在各行各业的技术人的随机命名,或者无序命名的手段下,目前学到的一些Nxlog的皮毛远远不够用了。

我们知道Nxlog的采集可以使用正则匹配日志名,但是仅限于日志名,对路径中出现的可匹配项就无能为力了,这时候,我们通常使用递归采集,加上无脑*.log去进行匹配。

<Input in>
    Module	im_file
    File    "/var/log/*.log"
    SavePos TRue
    ReadFromLast    TRUE
    Recursive    TRUE
    RenameCheck    TRUE
    PollInterval  1
</Input>

<Output out>
    Module	om_file
    File    "/app/test.log"
</Output>

<Route 1>
    Path	in => out
</Route>

虽然大部分情况下都会有很好的效果,但是日志的繁杂度越高,此方式问题就越多,目前本篇文章只是讲解了怎么使用函数替代日期,至于其他的函数有什么功效,大家可以去官网看一下文档。

路径:/var/log/20181008/xxx.log
每天会生成一个文件夹,文件夹下会有很多的以log结尾的,当我们对log进行匹配时可以使用正则,很容易就把各类日志区分开来,但是
当我们对目录名进行操作时,就会发现有些束手无策的感觉,如果使用上面的全部采集,那么时间一长监控的文件数,必然会不断上升,
消耗资源,做无用功。

 而官方文档中的后半部分记载了一种函数,strftime(),下面就是我对这种函数的一些学习心得。

strftime(now(), "%Y%m%d%H%M%S") ==> 20181008185515
strftime(now(), "%Y%m%d") ==> 20181008
用法类似date命令,此外还发现了几个好用的时间函数:

year(now()) 年
month(now()) 月
day(now()) 天

 下面是我对这个函数进行一些小例子:

 

<Input in>
    Module	im_file
    File    "/var/log/"+strftime(now(),"%Y%m%d")+"/cron-"+strftime(now(),"%Y%m%d")+".log"
    SavePos TRue
    ReadFromLast    TRUE
    Recursive    TRUE
    RenameCheck    TRUE
    PollInterval  1
</Input>

<Output out>
    Module	om_file
    File    "/app/test.log"
</Output>

<Route 1>
    Path	in => out
</Route>

这样就可以把当天的cron日志取出来,路径为:/var/log/20181008/cron-20181008.log。

经过项目的不断进行,我们在采集aud的审计日志时,可以不仅仅只是路径中有日期,在文件命中蕴含着日期,当我们采集时遇到了很大的麻烦,但是使用上面的这种方式就很好的解决了,大致可以这样写:

File    "/u01/oracle/adump/*"+strftime(now(),"%Y%m%d")+"*.aud"
#路径类似于/u01/oracle/adump/ora_chls_201810221117234243.aud,这样就可以采集了一整天的aud日志,尽量的减少了日志采集时的资源资源问题。

项目中总会碰到其他问题,比如有的客户想要取前一天的数据,我研究了好久发现了一个来自nxlog社区博客的方法:

File    "/u01/oracle/adump/*"+strftime(now() - 86400,"%Y%m%d")+"*.aud"
# 这样就可以采集前一天数据
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值