Нужна помощь в извлечении поля регулярных выражений - PullRequest
0 голосов
/ 06 октября 2019

У меня есть дополнительный запрос ( index = sat sourcetype = "sat_logs" Message = " сообщение приложения, опубликованное для " ), которое возвращает список сообщений, опубликованных различными приложениями. Мне нужночтобы извлечь конкретные значения полей из сообщений. Пожалуйста, дайте мне знать запрос, чтобы получить ожидаемые результаты. Спасибо

Результаты запроса Splunk: Сообщение: Альфа-приложение опубликовано для UserId: 12345678, UID: 92345678, Дата: 2019-10-04, Сообщение: {"Приложение": "Альфа", "ID": "123 "}

Сообщение: опубликовано сообщение приложения бета-версии для ИД пользователя: 12345670, UID: 92345670, Дата: 2019-10-03, Сообщение: {" Приложение ":" Бета "," ИД ":" 623 "}

Сообщение: опубликовано сообщение приложения дзета для идентификатора пользователя: 12345677, UID: 92345677, дата: 2019-10-02, сообщение: {"Приложение": "Зета", "ID": "523"}

Ожидаемые поля будут извлечены и отображены в виде таблицы

Идентификатор UID идентификатора пользователя приложения Альфа 12345678 92345678 123

Бета 12345670 92345670 623

Дзета 12345677 92345677 523

1 Ответ

0 голосов
/ 07 октября 2019

Команда rex может сделать это за вас. Предполагая, что поля всегда в одном и том же порядке, это должно сделать работу.

index=sat sourcetype="sat_logs" Message="application message published for"
| rex field=Message "UserId: (?<UserId>[^,]+), UID: (?<UID>[^,]+).*{"Application":"(?<Application>[^"]+)","ID":"(?<ID>[^"]+)"
| table Application UserId UID ID
...