[syslog-ng] is it exist some way to extract the filename listened by file() ?

Scheidler, Balázs balazs.scheidler at balabit.com
Sat Apr 8 09:59:06 UTC 2017


Hi,

I've just sent a PR to implement basename and dirname for your use-case:

https://github.com/balabit/syslog-ng/pull/1420

You can probably apply the same to 3.7, but still you'd need to recompile
from source.


-- 
Bazsi

On Sat, Apr 8, 2017 at 9:09 AM, Jorge Pereira <jpereiran at gmail.com> wrote:

> Btw, somebody knows which the best way to extract only the file name? I
> mean something like the function basename() ?
>
> --
> Jorge Pereira
>
> On Sat, Apr 8, 2017 at 3:50 AM, Jorge Pereira <jpereiran at gmail.com> wrote:
>
>> Hi,
>>
>> Thanks so much!! exactly, I didn find it.
>>
>> --
>> Jorge Pereira
>>
>> On Sat, Apr 8, 2017 at 3:10 AM, Scheidler, Balázs <
>> balazs.scheidler at balabit.com> wrote:
>>
>>> Hi,
>>>
>>> It seems indeed ugly. We do have a FILE_NAME macro that gets set to the
>>> name of the file the message was read from.
>>>
>>> With a quick search I didn't find it documented.
>>>
>>> On Apr 8, 2017 07:27, "Jorge Pereira" <jpereiran at gmail.com> wrote:
>>>
>>>> Hi Team,
>>>>
>>>> Well, I am working on a POC using the syslog-ng 3.7.1, basically, I
>>>> have many of log files that the filename is /path/<file> and I need to
>>>> append the file name into the syslog payload.
>>>>
>>>> My current approach is.
>>>>
>>>> 1. I have the below destination() receiving the file name as a
>>>> parameter.
>>>>
>>>> <snip>
>>>> block destination d_collector_with_fn(__filename("")) {
>>>>     tcp("192.168.2.44"
>>>>         port(514)
>>>>         keep-alive(on)
>>>>         template("$DATE $HOST $MSGHDR $(format-json --scope
>>>> selected_macros             \
>>>>                                                     --exclude TAGS
>>>>                  \
>>>>                                                     --exclude DATE
>>>>                  \
>>>>                                                     --exclude PRIORITY
>>>>                  \
>>>>                                                     --exclude FACILITY
>>>>                  \
>>>>                                                     --exclude SOURCEIP
>>>>                  \
>>>>                                                     --exclude PROGRAM
>>>>                 \
>>>>                                                     --pair
>>>> SYSLOG_WEBAPP_DOMAIN='`__filename`'  \
>>>>                                                     --pair
>>>> SOURCE=${SOURCE}
>>>>         )\n")
>>>>         template-escape(no)
>>>>     );
>>>> };
>>>> </snip>
>>>>
>>>>
>>>> 2. My simple script called by confgen create some dynamic "log {}"
>>>> statements listening to the files and appending the filename as a parameter
>>>> to the d_collector_with_fn()
>>>>
>>>> <snip>
>>>> log {
>>>>         source {
>>>>                 file("/path/thisisafile001.net"
>>>>                         program_override("mytag")
>>>>                         follow_freq(1)
>>>>                         flags(no-parse)
>>>>                 );
>>>>         };
>>>>         destination {
>>>>                 d_collector_with_fn(__filename("thisisafile001.net"));
>>>>         };
>>>> };
>>>>
>>>> log {
>>>>         source {
>>>>                 file("caipirinha4ever.net"
>>>>                         program_override("mytag")
>>>>                         follow_freq(1)
>>>>                         flags(no-parse)
>>>>                 );
>>>>         };
>>>>         destination {
>>>>                 d_collector_with_fn(__filename("caipirinha4ever.net"));
>>>>         };
>>>> };
>>>>
>>>> .........................
>>>> </snip>
>>>>
>>>> But, I have more than 5k files and my current approach creating
>>>> multiples log { } statement resulting in one connection to the collector by
>>>> each file!!! in this case, I have 5k connections... this is terrible,
>>>> someone has some other suggestion? exist some way to catch the filename by
>>>> some internal ${variable} and pass for a single destination()?
>>>>
>>>> --
>>>> Jorge Pereira
>>>>
>>>> ____________________________________________________________
>>>> __________________
>>>> 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
>>>>
>>>>
>>>>
>>> ____________________________________________________________
>>> __________________
>>> 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
>>>
>>>
>>>
>>
>
> ____________________________________________________________
> __________________
> 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
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.balabit.hu/pipermail/syslog-ng/attachments/20170408/d8b462a8/attachment.html>


More information about the syslog-ng mailing list