Red Hat Bugzilla – Bug 432160
rsyslog is unusable with netconsole
Last modified: 2012-04-05 07:29:33 EDT
Description of problem:
The rsyslog only captures the first packet of an oops.
On the same system, netcat (nc) works.
Version-Release number of selected component (if applicable):
May depend on CPU speed and/or NIC.
Steps to Reproduce:
1. Configure rsyslog to listen on port 514 (-r514).
2. Configure a remote host to send with netconsole.
3. Make remote host to produce kernel messages (sysrq works)
Only first line in a burst is captured.
All lines are captured.
I've checked with nc and it seems to work. With dmesg -n 4 the received message is
only "SysRq : Show Memory" for example.
Could you retry with dmesg -n 8, please?
Tomas, this is a complaint about rsyslogd's pathetic performance,
not about nc, not about dmesg levels on the system with netconsole.
In my setup rsyslog catches all of the messages, even under load. Can you provide steps
to reliably reproduce your problem?
I looked at what netconsole sends on the wire, ewww... It's not RFC3164
_at all_. The documentation for netconsole claims that syslog can be used,
but it lies. I guess that rsyslog took the kernel-standard priority and
interpreted it as syslog facility.
So if this is not a bug, can we at least consider this as a feature request ?
Fact is that every company is looking into this for storing kernel panic output and as the documentation says that it can use syslog, people think their configuration is wrong instead.
Actually, /etc/init.d/netconsole also implies syslog support as it uses SYSLOGADDR and SYSLOGMACADDR as variables, and default udp/514.
So it's safe to say that netconsole needs to be made RFC3164 compliant and this has to be backported to RHEL4 and RHEL5, maybe ?