V5 has the capability to discard messages that cause an action failure.
However, this is mostly untested yet, AND the action must support it by
providing proper status information - it must differentiate between
system-induced errors (which can be retried) and message-induced errors
(which need the discard). ompgsql currently does not provide that status
information.

Rainer

> -----Original Message-----
> From: [email protected] [mailto:rsyslog-
> [email protected]] On Behalf Of Jakob Haufe
> Sent: Wednesday, January 20, 2010 7:21 PM
> To: [email protected]
> Subject: Re: [rsyslog] PostgreSQL: Problems with character encoding
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On Wed, 6 Jan 2010 16:14:59 +0100
> Marc Schiffbauer <[email protected]> wrote:
> 
> > which encoding should be chosen for the database when using postgres?
> 
> As far as I understand the syslog protocol (at least the legacy one),
> it has
> no concept of character encodings at all.  So if you simply want to
> make sure
> that everything ends up in the database "as is", then choose SQL_ASCII.
> 
> > My rsyslog version is 4.4.3.
> >
> > Which client_encoding does rsyslog use in ompgsql?
> 
> Right now, it does net set an encoding by itself, so the database
> default
> applies. If I'm not mistaken, you can even set that per user from
> inside of
> postgres. So I would rather vote against another configuration
> parameter here.
> 
> > I currently have set UTF-8 on the database. It worked for a while
> until
> > some special message arrived at the server where postgres denies the
> INSERT:
> >
> > 2010-01-06 16:13:11 CET syslog syslog ERROR:  invalid byte sequence
> for
> > encoding "UTF8": 0xd220
> > 2010-01-06 16:13:11 CET syslog syslog HINT:  This error can also
> happen if
> > the byte sequence does not match the encoding expected by the server,
> which
> > is controlled by "client_encoding".
> 
> Were you able to isolate the message? Or find out which program was
> sending
> it?
> 
> > Now rsyslog is not able to log anything... it is currently spooling
> to disk
> > because it "hangs" at this message not being accepted by postgres.
> 
> This is bad, because if the machine is an open syslog server that
> simply
> collects everything it gets, we have a potential DoS vector here.
> 
> I can think of three options:
> 
> * Drop the message and report that we did so. That would be rather
> easy,
>   but might not be what people want.
> 
> * Re-insert the message after converting it from ASCII to UTF-8 or
> whatever
>   the DB encoding is. But this might/will produce garbage if the input
> is not
>   ASCII. It also creates more load on the system if these messages are
>   frequent. Guessing the input encoding is hard or even impossible,
> depending
>   on the set you guess from.
> 
> * Make the database SQL_ASCII. This will silently accept anything but
> will
>   create nonsense from UTF/UCS encoded messages. Also might create
> trouble
>   for programs like phplogcon that analyze the logs.
> 
> For me, this sums up to one question:
> 
> Can we make ompgsql UTF/UCS-clean and at the same time not choke on
> non-UTF8
> strings? Everyone is trying to be UTF-8 clean these days, so it would
> be bad
> if ompgsql could not keep up.
> 
> Comments please.
> 
> Regards,
> Jakab Haufe (sur5r)
> 
> - --
> ceterum censeo microsoftem esse delendam.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
> 
> iEYEARECAAYFAktXSW8ACgkQ1YAhDic+adbqXACeIJcx6GW6PhSXFO1YF72PafJG
> 7t8AoLNwnJYMZ4bssqMZt/nkTIPWs0LI
> =vuWN
> -----END PGP SIGNATURE-----
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to