[syslog-ng] Processing orphaned disk queue files

Steve Bernacki steve at copacetic.net
Wed Mar 8 11:34:03 UTC 2023


László,

Thank you very much for your thorough reply! I've managed to replay the 
logs, and plan to get our systems updated to 4.1.0 shortly :)

Thanks again.
Steve

On 3/6/2023 4:31 PM, László Várady wrote:
> Hi,
>
> You are probably looking for the `dqtool assign` command in syslog-ng 
> OSE.
> Please note that this command has a bug that makes it inoperable, so 
> you can only use it properly if you upgrade to the upcoming syslog-ng 
> 4.1.0 release.
>
> Let me share a quick tutorial.
>
> 1. Prepare a destination with the appropriate disk-buffer type 
> (reliable/non-reliable):
>
> destination {
>     network("localhost" port(4444) disk-buffer(reliable(yes) 
> disk-buf-size(10G)));
>     http(url("https://test.tld/logs") workers(3) 
> disk-buffer(reliable(yes) disk-buf-size(10G)));
> };
>
> 2. Start and stop syslog-ng to generate persist entries for the your 
> destination.
>
> $ bin/persist-tool dump var/syslog-ng.persist
>
> http(https://test.tld/logs,).1.queue = { "value": "..." }
> http(https://test.tld/logs,).2.queue = { "value": "..." }
> http(https://test.tld/logs,) = { "value": "..." }
> afsocket_dd_qfile(stream,localhost:4444) = { "value": "..." }
>
> 3. Find the name of the destination into which you want to inject the 
> orphaned queue file. For example: 
> "afsocket_dd_qfile(stream,localhost:4444)"
>
> 4. Inject the queue file:
>
> $ bin/dqtool assign -p var/syslog-ng.persist -n 
> "afsocket_dd_qfile(stream,localhost:4444)" orphaned/syslog-ng-00001.rqf
>
> You can now start syslog-ng and monitor its "queued" counters with 
> `syslog-ng-ctl stats` to make sure the queue file is drained.
>
> ----
>
> Alternatively, you can use a source called "example-diskq-source", if 
> you are okay with trying experimental features.
> In that case, you need to remove your disk-buffer declaration from 
> your destination, and declare the diskq-source right before
> the destionation:
>
> source {
>     example-diskq-source(file("/tmp/syslog-ng-00000.rqf"));
> };
> destination {
>     network("localhost" port(4444));
> };
>
> ----
>
> The third and the less user-friendly alternative is using 
> `persist-tool dump`:
>
> $ bin/persist-tool dump var/syslog-ng.persist > dump.txt
>
> You can edit the dump file manually (the hex values represent the 
> disk-buffer file name in ASCII, you can replace them),
> and then you can reimport the edited dump:
>
> $ bin/persist-tool add dump.txt -o var/
>
> -- 
> László Várady
>
> On 2023. 03. 06. 18:31, Steve Bernacki wrote:
>> Hello,
>>
>> I am using syslog-ng OSE 3.29. I have two destinations that I 
>> recently redefined in order to spread load out across a number of 
>> receivers. However, having done this, I now have orphaned queue files 
>> of considerable size that I'd like to process through.
>>
>> I found one reference on how to do this with syslog-ng PE which is 
>> documented at 
>> https://support-public.cfm.quest.com/46246_syslog-ng-pe-diskbuffer-recovery.pdf, 
>> but I'm finding the OSE tools are acting slightly differently, for 
>> example persist-tool dump prints its output as hex instead of ASCII, 
>> as is documented in the PDF I linked to above. In addition, the 
>> process is fairly involved, which makes me nervous to experiment with 
>> this.
>>
>> Looking at the command output for "dqtool --help", I see there are a 
>> number of commands listed that are not documented anywhere, like 
>> "relocate" and "assign", which look like they may be helpful to me. 
>> Does anyone know if these can be used to help me process through 
>> these logs?
>>
>> Thanks
>> Steve
>>
>>
>> ______________________________________________________________________________ 
>>
>> Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng
>> Documentation: 
>> http://www.balabit.com/support/documentation/?product=syslog-ng
>> FAQ: http://www.balabit.com/wiki/syslog-ng-faq
>>
>


More information about the syslog-ng mailing list