我在处理夜间批处理日志时遇到了一些问题。
如何将多行日志推送为一个事件?我被一个超过 26000 行的日志文件困住了……
NxLog 在某些时候卡住了 - 我并不怪他 - 但是我怎样才能强迫他处理这些多行文件呢?
我的配置文件:
<Extension json>
Module xm_json
</Extension>
<Extension multiline>
Module xm_multiline
Exec if $raw_event =~ /^\s*$/ drop();
HeaderLine /^\#\#\#$/
EndLine /\* CODE FIN JOB/
</Extension>
<Input in1>
Module im_file
File '/opt/XXX/YYYY/logs/*.nxlog'
SavePos FALSE
ReadFromLast FALSE
InputType multiline
Exec if $raw_event =~ s/^\#\#\#\\n// {}
Exec $nxlog_message = $raw_event;
Exec $nxlog_tags = "YYYY";
Exec $nxlog_hostname = hostname();
Exec $nxlog_filename = file_name();
Exec file_remove($nxlog_filename);
Exec to_json();
</Input>
<Extension fileop>
Module xm_fileop
</Extension>
<Output logstash>
Module om_tcp
Port PPPP
Host ZZZZZZZ
</Output>
这是我推送到 nxlog 的一些文件。
每个文件代表一项工作/事件。第一个文件导致 NxLog 整个周末都处于冻结状态。
# find /opt/XXXX/YYYYY/logs/ -name "*.nxlog" -exec wc -l {} \;
26477 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
104 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
113 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
93 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
49 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
136 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
65 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
278 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
311 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
95 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
598 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
307 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
45 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
191 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
94 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
97 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
91 /opt/XXXX/YYYYY/logs/ZZZZZZ_WWWW.nxlog
知道如何解决这个问题吗?