2
responses

Hi,

I tried to use pm_blocker module. My configuration looks like:

<Processor buffer>
Module pm_buffer
# 100Mb disk buffer
MaxSize 102400
Type disk
</Processor>

<Processor blocker>
Module pm_blocker
<Schedule>
Every 5 min
First 2017-11-27 13:12:20
Exec blocker->block(TRUE);
</Schedule>
<Schedule>
Every 5 min
First 2017-11-27 13:12:00
Exec blocker->block(FALSE);
</Schedule>
</Processor>

<Input in>
Module im_batchcompress
ListenAddr 0.0.0.0
Port 1514
</Input>

<Output out>
Module om_file
File 'C:\Temp\NXLog\ + $Hostname + '\' + $FileName
Exec if $FileName =~ s/-/./g;
CreateDir TRUE
</Output>

<Output out2>
Module om_file
File 'C:\Temp\NXLog2\' + $Hostname + '\' + $FileName
Exec if $FileName =~ s/-/./g;
CreateDir TRUE
</Output>

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

<Route 2>
Path in => buffer => blocker => out2
</Route>

If we can see, pm_blocker used only in second Route. But if we run nxlog with this configuration, we can see block and in first Route. Why? I dont understand.

How I can use update our files periodically in Route2??

AskedDecember 4, 2017 - 1:28pm

Answers (2)

Once your buffer fills in Route 2 your input module won't be able to produce more data and gets paused.

You will need to disable FlowControl if you don't want this but in that case there will be dropped events.