Firstly, I'd suggest using a JSON validator to make sure you are using correct syntax. I ran your JSON through a validator and it failed (http://jsonlint.com/). Once I corrected the syntax, Splunk began to automatically parse the JSON in the UI and auto extracted a lot of fields. I then noticed another issue. With the way the JSON is structured, the "event" array item may or may not have "event" listed first. This poses a problem with splitting using LINE_BREAKER. In this case, I would suggest using spath and xpath to parse the information you need.
If you want the timestamps to correctly index each individual event, the JSON should probably be rewritten to allow a more specific extraction.
Example:
Rewrite JSON to :
{
"events": [
{
"event": {
"list": [
{
"type": "W8021X"
},
{
"rssi": "97"
}
],
"id": "ONE",
"systemdate": "2012-10-0910:33:39-0700"
}
},
{
"event": {
"systemdate": "2012-10-0910:35:30-0700",
"list": [
{
"rssi": "97"
},
{
"id": "TWO"
}
],
"id": "TWO"
}
}
]
}
This syntax allows you to use some props/transforms to break the events, without having to worry about which order the variables show up in the JSON. The MAX_TIMESTAMP_LOOKAHEAD needs to have enough characters to grab the systemdate variable. I'll have to play with it to get the props.conf right.
... View more