Мне не повезло в ответах на Splunk, поэтому я публикую здесь.Замена имен полей в XML с использованием условий, основанных на данных, содержащихся внутри - во время фазы синтаксического анализа
Невозможно определить этот вариант, любая помощь оценивается. Данные чувствительны, но я постараюсь быть максимально ясным.
У меня есть данные в виде XML-файлов, который выглядит следующим образом:
<ROW>
<FIELD1>A</FIELD1>
<FIELD2>randomdata</FIELD2>
<FIELD3>randomdata</FIELD3>
<FIELD4>randomdata</FIELD4>
</ROW>
<ROW>
<FIELD1>B</FIELD1>
<FIELD2>randomdata</FIELD2>
<FIELD3>randomdata</FIELD3>
<FIELD4>randomdata</FIELD4>
</ROW>
Теперь, некоторые из вас могут признать это как XML с кодировкой пошло не так.
Я индексировали эти данные с удовольствием, используя команду SEDCMD
и заменил <
и >
с <
и >
, чтобы сделать его доступным для чтения XML. Каждый ROW
- это новое событие, но несколько из них содержатся в одном файле XML.
Сложный вопрос ... Я хочу изменить FIELDS2,3,4
имена на основе стоимости FIELD1
Итак,
Если FIELD1 = A
Заменить FIELD3
с FIELD99
IF FIELD1 = B
Заменить FIELD4
с FIELD37
и др.
Я попытался использовать строфу [rule::blabla]
в props.conf, чтобы назначить разные источники крови. Но в исходных данных есть как A
, так и B
.
Вот мой props.conf
[st]
SHOULD_LINEMERGE=true
BREAK_ONLY_BEFORE=<ROW>
NO_BINARY_CHECK=true
disabled=false
DATETIME_CONFIG=NONE
SEDCMD-1=s/>/>/g
SEDCMD-2=s/</</g
MAX_EVENTS=1000
Помощь оценили!