On 2016-12-24, Predrag Punosevac <punoseva...@gmail.com> wrote:
> Gregory Edigarov wrote:
>> On 20.12.16 13:47, Stuart Henderson wrote:
>> >
>> > Workaround for this without modifying the syslog daemon:
>> > - run normal OpenBSD syslogd in addition to the other daemon
>> > - have the other syslog daemon bind to a specific IP address
>> > - have OpenBSD syslogd feed the other daemon using a network socket
>> >
>> Or, do not run anything else then syslogd. Seriously, I can't thought 
>> off any case where that wouldn't be enough.

Some people want logging in a different format. 

Some might want host matching based on subnet rather than hostnames.

Some want expression matching and alerting (though I think it's better
to do this in a separate program rather than adding complication to the
main logging daemon).

> I could think of one case. Namely based on reading man pages syslogd
> doesn't support MySQL logging. I am looking to play with echofish 
>
> https://echothrust.github.io/echofish/
>
> which is developed on OpenBSD in-spite of the fact that it is not in the
> ports tree and is real time log monitoring system. Based on this short
> notes
>
> https://github.com/echothrust/echofish/blob/master/INSTALL.md

I think I'd just use the pipe feature in syslog.conf. Just feed it to
a simple perl script to split the input line and write them out a database,
then if there's some kind of problem, it's less likely to have an impact
on the main syslog writing. (I'd always want simple files in addition to
any database-backed logging).

> I inferring that syslog-ng which runs really well on OpenBSD is a good
> choice for echofish. This is my question
>
> @Stuart Could you please clarify if syslogd is automatically going to
> open/hold port 514 upd. Namely I would like to keep running syslog
> daemon on the loggin server itself and send the log files to syslog-ng
> per 
>
> https://www.balabit.com/wiki/syslog-ng-faq-syslogd

Yes, syslogd(8) does bind like this (for _sending_ log messages to
another host):

$ fstat|grep syslogd.*internet
_syslogd syslogd    34322    4* internet dgram udp *:514
_syslogd syslogd    34322    5* internet6 dgram udp *:514

This prevents another process from binding to *:514.

So if you want to do this via syslog-ng rather than my other suggestion,
you have a couple of alternatives:

bind syslog-ng to a specific IP address (127.0.0.1?)

bind syslog-ng to a different port

feed syslog-ng via a named pipe, as suggested on that page - syslogd(8)
doesn't feed directly to named pipes, but if you pre-create one with
mkfifo you can use "*.* |cat > /path/to/fifo" in syslog.conf.

Reply via email to