Запрос Splunk, чтобы найти больше, чем - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть журнал регистрации спленка: "TOTAL NUMBER OF RECORDS IS:0"

Мне нужно запросить его таким образом, чтобы он нашел сообщение журнала, если число записей окажется больше 0

Я пробовал следующее

 sourcetype=mylogs | rex "\d+:\d+:\d+\s(?<TOTAL NUMBER OF RECORDS IS:>\d+)$" | where TOTAL NUMBER OF RECORDS IS:>=25

выдает ошибку терминатора

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

В этом запросе есть несколько ошибок:

  • Регулярное выражение ищет 3 набора цифр, разделенных двоеточиями.Это не соответствует вашему примеру.Попробуйте TOTAL NUMBER OF RECORDS IS:(?<field>\d+).Вы даже можете обойтись с :(?<field>\d+).
  • Имя поля в вашем запросе не должно содержать пробелов.Попробуйте что-то вроде TotalNumberOfRecords.
  • Имена полей не могут содержать двоеточия.Это, вероятно, источник сообщения об ошибке.

Попробуйте этот запрос: sourcetype=mylogs | rex ":\d+(?<TotalNumberOfRecords>\d+)" | where TotalNumberOfRecords>=25

0 голосов
/ 27 февраля 2019

Вот пример SPL в соответствии с вашими требованиями:

| makeresults 
| eval _raw="TOTAL NUMBER OF RECORDS IS:10"
| rex field=_raw "TOTAL NUMBER OF RECORDS IS:(?<record_num>.\d+)" 
| where record_num > 0

По строкам Объяснение:

  1. Строка 1-2: Созданиефиктивное событие для этого теста.
  2. Строка 3: извлечь значение количества записей из _raw и сохранить его в поле record_num.
  3. Строка 4: предложение where для фильтрациирезультаты.
...