-
Notifications
You must be signed in to change notification settings - Fork 449
Add syslog protocol fields to event #301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
webmat
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's been bugging me that we didn't have specific support for Syslog yet, so thanks for submitting this :-)
@ruflin @MikePaquette What do you think about one more top level field set? Should we nest this under log? (log.syslog.*)
|
@kvch Oh, and your Hunglish is fine ;-) |
|
If you don't want to add a new top-level field, I suggest these are added to |
|
Personally I'd love to see a spot for the syslog pri too, see #36 |
|
We should evaluate if we can fit these into |
|
@ruflin Putting it under log.* is ok for me, as long as it has a place somewhere in ecs. |
|
I agree with adding syslog's priority as well. Any other attributes we should consider? I prefer to see these syslog details under |
|
Ok, seem most kind of agree it needs to be under log and we need facility, severity and priority. Only choice left is if we should place it directly under log like this: or, considering these are really syslog specific place them under log.syslog like this: To me the log.syslog prefix makes more sense. I think there might be other candidats with similar requirements in the future. (such as certain java or .net logging frameworks). |
|
I'd be curious to know which other tool use facility/priority/severity. And are the semantics close enough to Syslog's to map them to the same fields? For now I have a slight preference for |
|
from my understanding, they are really close the Syslog reality, so I think would prefer to have it under |
|
Note: outlier position ahead :-) I think burying these syslog fields down under Reason: in ECS, the "event" is the top level entity. "logs" and "metrics" are sub-entities (See event field definition). Despite the name, "syslog" is just a transport mechanism for events. In fact syslog can be used for any key-value pair, including metrics. For example, Pivotal allows you to send container metrics over the syslog protocol. So nesting syslog fields below So I'd propose that we create new fields for syslog severity -> @webmat ArcSight CEF has a |
|
Personally I've wondered several times why there still is a log top level object. Isn't a log some sort of event? And why would log. Original not fit into event. Original? And log. Level under event. Level or event. Severity? |
|
@willemdh Yeah currently @MikePaquette The reason I was proposing with I agree to go with Our description for these fields should mention the relationship Syslog, but shouldn't limit to Syslog. These values should be populated per event source, and only need to be consistent within that event source (they shouldn't be normalized vs other sources populating the same fields). |
* event.facility * event.facility_label * event.priority * event.priority_label
760baa1 to
d2a6220
Compare
|
I have moved the fields under the namespace event. |
|
@MikePaquette Revisiting this, I'd like to close this loop soon. Another worry I have with adding them directly at In that context, what do we do with the Syslog ones? Should we recommend people populate the fields with the Syslog values as is? And what about other event sources that have attributes similar to severity, priority and facility? Should they be recorded there as is, too? |
True for event categorization fields, but I think these don't fall strictly into that category.
Yes, I think that's fine. Within a syslog transported event stream, the set should be consistent.
Yes, but you raise a good question about |
|
In addition to the syslog fields mentioned above, what about the syslog timestamp and syslog host? In many major vendors (Fortinet, Checkpoint, Palo Alto come to mind), there are log aggregators often in the mix, like a FortiAnalyzer, MLM, or Panorama. Forwarded syslog often contains the TS and host of the log aggregator itself, not of the original [observer] host (or if it does, it contains both, where you'd see "TS HOST TS HOST MESSAGE" where the first pair of TS HOST is a log fowarder). We are currently working on syslog -> ECS parsers for major FW vendors (the above, and Cisco and Juniper), and as ECS was missing fields contained in this PR (plus others), we had decided to just 'store in labels' until we have a more official place (which sounds like it will be at least partially 'event.*' at this time): |
|
Since the facility, the priority are specific to syslog (in it's header), we use a separate We can add some fields to store the However, these fields can be redundant and are not already defined since they are considered as a part of the user message. |
|
@micoq I like your So I think adding the following fields is straightforward:
There's two issues I still see here:
What do you folks think? |
MikePaquette
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fields LGTM
PR Approved with suggested changes to definitions.
| type: long | ||
| example: 1 | ||
| description: > | ||
| Value parsed from messages adhering to RFC 5424 or RFC 3164. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enhance this definition to something like: "The facility or process from which the event originated. Typically associated with syslog facility for events adhering to RFC 5424 or RFC 3164."
| type: long | ||
| example: 1 | ||
| description: > | ||
| Value parsed from messages adhering to RFC 5424 or RFC 3164. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enhance this definition to something like: "The priority of the event. Typically associated with syslog priority for events adhering to RFC 5424 or RFC 3164."
| type: keyword | ||
| example: kernel | ||
| description: > | ||
| Human readable format of `event.facility`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rather than "Human readable", can we add "text-based" or something similar? Humans can read numbers too :-)
| type: keyword | ||
| example: Informational | ||
| description: > | ||
| Human readable format of `event.priority`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rather than "Human readable", can we add "text-based" or something similar? Humans can read numbers too :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Informational example here is an example of a severity label (which maps to log.level in ECS).
I don't think there is such a thing as a priority label in Syslog. The priority number is the one made up of 8*facility + severity.
I think we need to remove this field.
|
Just opened a new PR to potentially replace this one. See details and rationale over there 👉#525 :-) |
This PR adds the following fields to ECS:
event.facilityevent.priorityevent.facility_labelevent.priority_label