NXLog - 每小时日志轮换

时间:2021-07-22 15:53:26

标签: syslog nxlog

目标:NXlog 接收大数据源。需要它每小时轮换文件,以便压缩。

我希望文件名表示时间范围,并存储在也表示时间范围的文件夹中。

示例:/fileshare/logsource/$year/$month/$day/log_$year_$date_$month_$hour.log

我在这里走的是正确的道路吗?我可以以任何方式简化它吗?

到目前为止的配置:

########################################
# Global directives                    #
########################################
User nxlog
Group nxlog

LogFile /var/log/nxlog/nxlog.log
LogLevel INFO

########################################
# Modules                              #
########################################
<Extension _syslog>
    Module      xm_syslog
</Extension>

<Extension _fileop>
  Module om_file
  Exec  log_info()
  
<Input in1>
    Module      im_udp
    Port        514
    Exec        parse_syslog_bsd();
</Input>

<Output fileout>
    Module      om_file
    File        "/fileshare/" + strftime(now(), "%Y") + "/" + strftime(now(), "%m") + "/" + strftime(now(), "%d") + "/log_" + strftime(now(), "%Y_%m_%d_%H) + ".log"
    <Schedule>
      When        "0 * * * *"
      <Exec>
       $newfile = "/fileshare/" + strftime(now(), "%Y") + "/" + strftime(now(), "%m") + "/" + strftime(now(), "%d") + "/log_" + strftime(now(), "%Y_%m_%d_%H) + ".log";
       file->rotate_to($newfile);
       exec_async("/bin/gzip", $newfile);
       </Exec>
    </Schedule>
    Exec        to_syslog_bsd();
</Output>


########################################
# Routes                               #
########################################
<Route 1>
    Path        in1 => fileout1
</Route>

任何帮助将不胜感激!谢谢。

0 个答案:

没有答案