Я использую Elasticsearch для получения нескольких журналов:
http: / localhost: 9200 / collection / _search? Q = type: "log"
Это приносит мне несколько просмотровкак это:
{
"_index": "collection",
"_type": "doc",
"_id": "UL878GMBYKUUOvfyQJWl",
"_score": 6.487114,
"_source": {
"@version": "1",
"type": "log",
"message": "64.242.88.10;[07/Mar/2004:16:11:58 -0800];"GET /twiki/bin/view/TWiki/WikiSyntax HTTP/1.1\"; 200 7352\r",
"@timestamp": "2018-06-11T19:03:23.163Z",
"host": "logstash",
"path": "/opt/access_log.log"
}
}
У каждого попадания есть «сообщение», которое похоже на строку из CSV «access_log.log».
Но каждая полезная информация находится внутри "сообщения" как одна большая строка.Поэтому мне нужно как-то извлечь, чтобы идентифицировать IP сервера (например, 64.242.88.10).
Как я могу разделить эту строку "message" используя ";"в качестве регулярного выражения, чтобы я мог получить только те данные, которые мне нужны?