I would like to add an Issue#9 to Chris list ;)

RFC3195/COOKED allows us to specify meta data (like the path element).
This is very valuable information. However, it can be forwarded inside a
relay chain only if all realys speak COOKED.

Let's take my (somewhat artifical) sample from the issue #8 post:

#1 Device  -- RFC3164     --> Relay 1
#2 Relay 1 -- 3195/COOKED --> Relay 2
#3 Relay 2 -- RFC3164     --> Relay 3
#4 Relay 3 -- 3195/RAW    --> Relay 4
#5 Relay 4 -- 3195/COOKED --> Collector

Let's focus on the path element. In this sample, the relay in step #1
can generate all necessary information to create a path element that is
correct up to the device. It can also forward it correctly in step #2,
so that realy 2 can add its path element. HOWEVER, there is no way to
transmit the path in steps #3 & #4. So it is LOST. In step #4, Relay 4
will construct a new path element, but it can only point back to Relay 3
and this will eventually be invalidly be flagged as a device (because
there is no iam element in 3195/RAW that can tell the relay differently.
That path element will be transmitted in step #5 and the receiving
collector can add the fact that it received from Relay 4(acting as a
relay). So the resulting path will just be:

Device Relay 3 --> Realy Relay 4 --> Collector

This is obviously an incorrect and too short path element. I agree that
the path will not be correct until either the emiting device itself
speaks COOKED or the first relay does. However, I would like to see the
path preserved in cases as above.

As such, I propose we integrate into some existing/future RFC the
ability to transfer metadata over a "plain" syslog packet. It can be
done quite simple by just adding an additional cookie, more or less like
-sign is done. For example, a packet with tag "syslog " and @#MeTaDaTa
at the start of message could carry over the XML otherwise exchanged in
COOKED.

A rough example might be

<121>Oct 10 12:12:12 myhost syslog @#MeTaDaTa <path
fromFQDN='lowry.records.example.com' fromIP='10.0.0.50'
toFQDN='kurtzman.records.example.com' toIP='10.0.0.51' linkprops='ULRI'
pathID='173'><path fromFQDN='screen.lowry.records.example.com'
fromIP='10.0.0.47' toFQDN='lowry.records.example.com' toIP='10.0.0.50'
linkprops='DLI' pathID='24'></path></path>

[Please note: I have not made sure that this fits in 1024 bytes. It
should all be on a single "line" without any CRLF (but the mailer breaks
it ;)) There are obviously some issues with fragmenting oversize
messages. I haven't taken care of this - this can be done once the WG
finds it is useful to think in this direction.]

For the intial example, it would the final path at the collector at
least make look like:

Device Device --> Relay Relay 1 --> Relay Realy 4 --> Collector

[Relay 4 would be discovered by the collector]
Even though there is still something missing, it looks much more correct
to me.

I specifically propose this as I think legacy syslog will be in relay
chains for quite a while and cause us to loose important information for
many years.

Any comments are highly appreciated ;)

Rainer


Reply via email to