[syslog-ng] 3.2.5 and Multiline(?) messages from Solaris
Ray Van Dolson
rvandolson at esri.com
Tue May 12 17:01:36 CEST 2015
On Tue, May 12, 2015 at 08:49:20AM +0200, Scheidler, Balázs wrote:
> The most important thing with multiline is the transport.
>
> Udp can transmit multiline messages just as syslog(transport(tcp))
> but of course the client has to support the same protocol.
>
> What do you use on the solaris side?
Using the default syslog daemon in Solaris 10 (uses UDP).
>
> If you haven't changed the client I don't see why the message would
> be truncated like that. Once received syslog-ng would only replace
> newlines with spaces.
>
> So I guess it is a transport issue on the sending side. But
> tcpdump/wireshark should help a lot here.
Packet capture results leave me scratching my head a bit:
714 2015-05-12 03:41:06.172567 10.49.6.166 10.49.7.16 Syslog 150 KERN.WARNING: May 12 03:41:06 scsi: [ID 243001 kern.warning] WARNING: /pci at 0,0/pci8086,3410 at 9/pci15d9,400 at 0 (mpt_sas0):
715 2015-05-12 03:41:06.172575 10.49.6.166 10.49.7.16 Syslog 127 KERN.WARNING: May 12 03:41:06 \tmptsas_handle_event_sync: IOCStatus=0x8000, IOCLogInfo=0x31110610
718 2015-05-12 03:41:10.172475 10.49.6.166 10.49.7.16 Syslog 138 KERN.INFO: May 12 03:41:10 scsi: [ID 365881 kern.info] /pci at 0,0/pci8086,3410 at 9/pci15d9,400 at 0 (mpt_sas0):
719 2015-05-12 03:41:10.172483 10.49.6.166 10.49.7.16 Syslog 105 KERN.INFO: May 12 03:41:10 \tLog info 0x31110610 received for target 24.
721 2015-05-12 03:41:10.172487 10.49.6.166 10.49.7.16 Syslog 142 KERN.WARNING: May 12 03:41:10 scsi: [ID 107833 kern.warning] WARNING: /scsi_vhci/disk at g5000c50019bc81e1 (sd31):
722 2015-05-12 03:41:10.172491 10.49.6.166 10.49.7.16 Syslog 110 KERN.WARNING: May 12 03:41:10 \tSCSI transport failed: reason 'reset': giving up
(Sorry for the word-wrap).
So, you can see the second line comes through as a completely separate
message with a tab character '\t' at the beginning.
The odd thing? Packets 714 & 715 come through fine and syslog-ng
appends them both to my output log.
However, for pairs 718 & 719 and 721 & 722, only the first line comes
through. In both cases the tab character is 0x09 so not seeing a
difference there.
Makes me think it's something in the syslog-ng config rather than the
message. Probably will move to something super simple to see that
fixes it (keeping in mind this behavior didn't occur w/ syslog-ng 2.x).
Ray
>
> On May 12, 2015 05:43, "Ray Van Dolson" <rvandolson at esri.com> wrote:
>
> Admittedly haven't done enough searching or testing on this, but am
> hoping someone might have a quick answer.
>
> Recently moved from the 2.x verions to 3.2.5 (as part of EPEL on
> RHEL6). Have noticed that we're no longer getting the full messages
> from some Solaris boxen using the tcp() and udp() source definitions.
>
> Messages like this:
>
> May 10 02:29:30 dev-zfs2 scsi: [ID 365881 kern.info] /pci at 0,0/
> pci8086,3410 at 9/pci15d9,400 at 0 (mpt_sas0):
> May 10 02:29:30 dev-zfs2 Log info 0x31080000 received for target 24.
> May 10 02:29:30 dev-zfs2 scsi_status=0x0, ioc_status=0x804b,
> scsi_state=0x0
>
> Come through looking like this:
>
> May 10 02:29:30 dev-zfs2 scsi: [ID 365881 kern.info] /pci at 0,0/
> pci8086,3410 at 9/pci15d9,400 at 0 (mpt_sas0):
>
> (Only the initial line)
>
> However, messages like this one:
>
> May 9 04:12:57 dev-zfs2 scsi: [ID 243001 kern.warning] WARNING: /pci at 0,0/
> pci8086,3410 at 9/pci15d9,400 at 0 (mpt_sas0):
> May 9 04:12:57 dev-zfs2 mptsas_handle_event_sync: IOCStatus=0x8000,
> IOCLogInfo=0x31110610
>
> .. do seem to be coming through "whole" (I do note that the priority
> is different in both).
>
> Relevant config items are as follows:
>
> log {
> source(remote);
> filter(syslog);
> destination(hosts_syslog);
> };
>
> source remote {
> udp();
> tcp();
> # udp(ip(0.0.0.0) port(514));
> # tcp(ip(0.0.0.0) port(514));
> };
>
> destination hosts_syslog {
> file("/logs/hosts/$HOST/$YEAR/$MONTH/syslog.$HOST.$YEAR.$MONTH.log"
> create_dirs(yes));
> pipe("/logs/hosts/everything.fifo");
> };
>
> filter syslog {
> (not facility(mail)
> and not filter(f_ucgw)
> and not filter(f_esx));
> };
>
> Will try and do some packet captures to confirm Solaris is, in fact,
> sending the entire message (I believe it is since this worked on
> syslog-ng 2.x).
>
> Thanks,
> Ray
More information about the syslog-ng
mailing list