Splunk - извлечь поле с точкой / точкой

Кажется, что нет способа извлечь поля с . во имя.

Я пытаюсь использовать экстракторы полей для наших старых данных, чтобы создать поля, соответствующие новым полям JSON данных.

{ "pirate": { "say ": "Shiver me timbers" } }

pirate.say = "Shiver me timbers"

Чтобы проверить это, вы можете сделать что-то вроде этого:

| metadata type=hosts index=_internal
| head 1
| eval message="Shiver me timbers, goes the pirate"
| table message
| rex field=message "(?<pirate.say>[^,]+)"

Но все, что я получаю за свои усилия, это одно и то же сообщение об ошибке как в прототипе 'rex', описанном выше, так и на странице 'Извлечение поля'.

Из прототипа 'rex' я получаю:

Ошибка в команде 'rex': обнаружена следующая ошибка при компиляции регулярного выражения '(?[^,]+)': Regex: синтаксическая ошибка в имени подшаблона (отсутствует терминатор)

Из "Поля" Извлечение поля "Добавить новое" я получаю:

Обнаружена следующая ошибка при попытке сохранить: Regex: синтаксическая ошибка в имени подшаблона (отсутствует терминатор)

Любые мысли о том, как я могу решить эту?

1 ответ

Решение

Здесь происходит несколько разных вещей.

Во-первых, нет, вы не можете создать регулярное выражение с точкой в ​​имени извлекаемого поля. (проверено на regex101.com, и оно не работает.)

При извлечении из JSON Splunk может создавать поля, в которых есть точка, обозначающая иерархию JSON.

С другой стороны, при автоматическом извлечении из обычных данных splunk обычно заменяет недопустимые символы подчеркиванием.

Чтобы извлечь JSON, обычно вы используете команду spath.

Чтобы вынуть регулярное выражение, просто дайте ему правильное имя, а затем переименуйте, чтобы он содержал точку.

| makeresults
| eval message="Shiver me timbers, goes the pirate"
| table message
| rex field=message "(?<piratesays>[^,]+)"
| rename piratesays as "pirate.say"

Я забыл, нужны ли вам одинарные или двойные кавычки для нечетного имени, поэтому, если это не сработает, попробуйте это.

| rename piratesays as 'pirate.say'
Другие вопросы по тегам