Wildcards mode was not properly detected when wildcards
were only used in a directory name on startup.
This caused imfile not to create a propper dynamic filewatch.
Closes: https://github.com/rsyslog/rsyslog/issues/1672
- session.opened
- session.openfailed
- session.closed
These are useful for monitoring, capacity planning and troubleshooting. They
are reported on a per-listener basis.
imptcp first tries to remove a to-be-shut-down socket from the
epoll set, and errors out if that does not work. In that case, the
underlying socket will be leaked.
This patch refactors the code; most importantly, it is not necessary
to remove the socket from the epoll set, as this happens automatically
on close. As such, we simply remove that part of the code, which
also removes the root cause of the socket leak.
permitnonkernelfacility doesn't work when the new configuration syntax
is used, e.g. 'module(load="imklog" permitnonkernelfacility="on")'.
It does work with the old syntax, e.g. '$KLogPermitNonKernelFacility
on'
This is because the old style config is stored in a static global
struct "cs", while the new style config is passed in as a pointer.
Code in imklog will put old style config entries into the new config
struct, and almost all the code in imklog uses the new config struct
like it should. Except for a check for bPermitNonKernel in Syslog()
that continued to use the static global that only has old style
configs.
Fix this by passing pModConf down into Syslog() and using that in
place of the static global.
closes https://github.com/rsyslog/rsyslog/issues/477
Added check for IN_MOVED_TO in in_handleDirEvent. Statefilename and
event cookie are saved in IN_MOVE_FROM event in a linkedlist now,
so the statefile can be renamed to a new name in IN_MOVED_TO event.
Closes https://github.com/rsyslog/rsyslog/issues/1417
When enabled, failed messages are kept in memory queue and saved on
shutdown and loaded on startup. This prevents message loss of failed
messages.
The failed items are saved in a simple Linked List and automatically
being reprocessed on resume or doaction.
Load/Save logik implemented.
This should also remove the last possible message loss from issue:
https://github.com/rsyslog/rsyslog/issues/1052
When a delivery callback returns with an error, omkafka can put the
message back into the rdkafka queue for transmission.
This should also remove some of the message loss from issue:
https://github.com/rsyslog/rsyslog/issues/1052
This somehow elimitated a lot of failing messages which were not
processed on shutdown (flush) before. The old callback API was
depreceated.
This should also elimitate most of the message loss when
kafka queue is full from issue:
https://github.com/rsyslog/rsyslog/issues/1052
The new code was tested with
queue.buffering.max.messages=100 and 2000 injected messages.
Testbench: Try starting kafka server second time if failed on
first try. Sometimes the broker is still registered in zookeeper.
Also fixed tryresume and doAction handling when action is
in suspend state.
Calling for Callbacks more often.
Adjusted kafka fail test settings.
diag.sh script detects of kafka server comes up proberly
Added liblz4 to dependencies for omkafka/imkafka needed
for static linking.
This addresses the omkafka queue problem from issue:
https://github.com/rsyslog/rsyslog/issues/1052
Yet it does not fully solve the message problem yet,
but I am working on this.
We are using rd_kafka_producev now.
Only works with librdkafka higher than 0.9.4. When using older vresion of
librdkafka, old api is being used (rd_kafka_produce).
closes https://github.com/rsyslog/rsyslog/issues/1559
The timeout feature for multiline reads does not correctly work
for files for which a state file existed. This is usually the
case for files that had been processed by a previous run and
that still exist on the new start. For all other files,
especially those monitored by a wildcard and newly created after
the rsyslog start, timeout worked as expected.
closes https://github.com/rsyslog/rsyslog/issues/1445
- added fallback for _PID proprety when SYSLOG_PID is not available
- introduced new option "usepid" which sets which property should
rsyslog use, it has 3 states system|syslog|both, default is both
- deprecated "usepidfromsystem" option, still can be used
and override the "usepid"
- it is possible to revert previous default with usepid="syslog"