[syslog-ng] PostgreSQL Invalid Encoding Errors

David Blewett david at dawninglight.net
Thu Aug 20 15:56:31 CEST 2009


Hi All:

I'm continually getting into a loop of receiving messages like this in
my PostgreSQL log files:
2009-06-19 09:17:36.465 EDT 5846 syslog at syslog: ERROR:  invalid byte
sequence for encoding "UTF8": 0xa8
2009-06-19 09:17:36.465 EDT 5846 syslog at 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".
2009-08-01 00:00:05.216 EDT 3986 syslog at syslog: ERROR:  invalid byte
sequence for encoding "UTF8": 0xc446
2009-08-01 00:00:05.216 EDT 3986 syslog at 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".

I'm using a centralized logging system, and just turned on logging to
syslog for our hardware firewall. I'm positive it was this change that
is resulting in this behavior, but I really do want to continue
pulling this data from the firewall. It appears that random messages
from the firewall will come in as invalid UTF8, and somehow get stuck
in a loop with syslog-ng continually trying to insert the offending
line and PostgreSQL continually refusing. I have several log files
that are > 500MB now because of this. Is there a way to force
syslog-ng to drop these messages, and perhaps log the error? I am
using PostgreSQL 8.3.6.

syslog-ng --version
syslog-ng 3.0.3
Revision: ssh+git://bazsi@git.balabit//var/scm/git/syslog-ng/syslog-ng-ose--mainline--3.0#master#08c9bf9d98e4e021756adc12c42605840140ba8b
Compile-Date: Jul  8 2009 12:16:03
Enable-Threads: on
Enable-Debug: off
Enable-GProf: off
Enable-Memtrace: off
Enable-Sun-STREAMS: off
Enable-Sun-Door: off
Enable-IPv6: off
Enable-Spoof-Source: off
Enable-TCP-Wrapper: on
Enable-SSL: on
Enable-SQL: on
Enable-Linux-Caps: on
Enable-Pcre: on

syslog-ng.conf:
options {
        chain_hostnames(off);
        flush_lines(0);
        stats_level(2);
        stats_freq(43200);
        frac_digits(5);
        ts_format(iso);
};

source src {
        unix-stream(
                "/dev/log"
                max-connections(40)
        );
        internal();
        udp(port(514));
        tcp(port(5140) keep-alive(yes));
};
destination d_sql {
  sql(
        type(pgsql)
        host("10.233.93.18") username("syslog") password("*****")
        database("syslog")
        table("facility_$FACILITY")
        columns("host", "sourceip", "priority", "lvl", "tag", "rcvd",
"sent", "program", "msg")
        values("$HOST", "$SOURCEIP", "$PRIORITY", "$LEVEL", "$TAG",
"$R_ISODATE", "$S_ISODATE", "$PROGRAM", "$MSGONLY")
        indexes("host", "rcvd", "sent", "program", "msg")
  );
};
destination console_all { file("/dev/tty12"); };
destination messages { file("/var/log/messages"); };
log {
        source(src);
        #destination(messages);
        destination(console_all);
        destination(d_sql);
};


More information about the syslog-ng mailing list