проверка спленка, содержит ли сообщение определенную строку - PullRequest
0 голосов
/ 21 сентября 2018

В поисковом запросе Splunk как проверить, есть ли в сообщении журнала текст или нет?

В сообщении журнала:

message:     2018-09-21T07:15:28,458+0000 comp=hub-lora-ingestor-0 [vert.x-eventloop-thread-0] INFO  com.nsc.iot.hono.receiver.HonoReceiver - Connected successfully, creating telemetry consumer ...

и я хочу проверить, есть ли сообщениесодержит «Успешное подключение, создание получателя телеметрии ...» и на основании этого необходимо присвоить 1 или 0 переменной

Запрос поиска Splunk

(index="05c48b55-c9aa-4743-aa4b-c0ec618691dd" ("Retry connecting in 1000ms ..." OR "Connect or create consumer failed with exception" OR "Connected successfully, creating telemetry consumer ...")) 
| rex field=_raw ^(?:[^ \n]* ){7}(?P<success_status_message>\w+\s+\w+,\s+\w+\s+\w+\s+\w+)"
| timechart count as status | eval status=if(isnull(success_status_message), 0, 1)

success_status_message всегда равно нулю

1 Ответ

0 голосов
/ 22 сентября 2018

Частично проблема заключается в строке регулярного выражения, которая не соответствует образцу данных.Другая проблема - ненужная команда timechart, которая отфильтровывает поле success_status_message.Попробуйте этот поиск:

(index="05c48b55-c9aa-4743-aa4b-c0ec618691dd" ("Retry connecting in 1000ms ..." OR "Connect or create consumer failed with exception" OR "Connected successfully, creating telemetry consumer ..."))
| rex "\s-\s(?P<success_status_message>.*)" 
| eval status=if(match(success_status_message, "Connected successfully, creating telemetry consumer"), 1, 0)
...