I want to use filebeat to send Oracle alert logs to Elasticsearch. So far I've managed to get the data in (using some multiline magic). Ideally I want to use a pipeline on the ES side to extract the date, errors (ORA-), keywords etc. from the message and have them as separate fields in the indexes. I vaguely remember seeing something similar demonstrated at Elastic{ON} London, wish I'd been paying more attention!
If anyone knows if/how this can be done, I'd really appreciate some guidance.
Many thanks,
Dave
EDIT: OK, so I found some documentation: https://www.elastic.co/guide/en/elasticsearch/reference/master/grok-processor.html
So now I have this:
post _ingest/pipeline/_simulate
{
"pipeline": {
"description" : "grok test",
"processors": [
{
"grok": {
"field": "message",
"patterns": ["%{DATESTAMP_OTHER:ora-date}"]
}
}
]
},
"docs":[
{
"_source": {
"message": "Wed Aug 26 16:29:35 2015\nStarting background process CJQ0"
}
}
]
}
The issue I have is that the Oracle date doesn't appear to be in a standard setting, can I extract this using Grok?
The above gives me the following (presumable because the date is in the wrong format):
java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Provided Grok expressions do not match field value: [Wed Aug 26 16:29:35 2015\nStarting background process CJQ0