2016-01-04 2 views
1

У меня есть экземпляр Splunk, который собирает данные веб-трафика и хотел бы найти список уникальных строк запроса из известного URL-адреса и создать подсчет каждого из них.spunk regex для поиска и подсчета строк запроса URL-адреса

Каждый URL имеет строку запроса прилагается в следующем формате:

httx://www.sitename.com?v=123456&timestamp=1234456456458 
httx://www.sitename.com?v=999999&timestamp=1234456456602 
httx://www.sitename.com?v=123456&timestamp=1234456457001 
httx://www.sitename.com?v=459743&timestamp=1234456457365 
httx://www.sitename.com?v=010101&timestamp=1234456458777 

Что я надеюсь получить это подсчет каждого «V» значение, не зная заранее, что существуют ценности (но я знаю, что они номенклатурные и всегда 6 цифр), поэтому я предполагаю, что мне понадобится регулярное выражение.

Я думаю, что это будет выглядеть примерно так?

index=URLData sourcetype =* www.sitename.com "v=" | rex "(?P<stringdata>.+)(?v=:\d{6}):?" | count by stringdata 
+0

или '(? [^ &] +) (? \ д {6})' или '(? [^? &] +) (? \ d {6})' или '(? [^ &] +) [?] v = (? \ d {6})'. –

+0

Я не могу заставить его работать. Может быть, потому, что URL-адрес содержит «?». Нужно ли ускользнуть от работы с sed? – user5744264

+0

Если вы используете его внутри класса символов, вам не нужно скрывать '?'. Однако в sed вы не можете использовать именованные фрагменты. Просто используйте '([^ &] +) [?] V = ([0-9] {6})' или '([^ &] +) [?] V = ([0-9] \ {6 \}) '. –

ответ

0

Это то, что я придумал

index=scratch www.sitename.com "v=" | rex "v=(?P<stringdata>\d+)"|stats count by stringdata 

индекс Изменение в соответствии с Yours

 Смежные вопросы

  • Нет связанных вопросов^_^