Я пытаюсь получить пути к каталогам запросов GET и подсчитать их в Splunk, используя это регулярное выражение для захвата.
index=main sourcetype="access_combined_wcookie" | rex "(?i)\"GET /(?P<MYDIR>\w+)/" | timechart count by MYDIR
Такого рода работы. Он захватывает имена каталогов верхнего уровня и суммирует их по времени, как и ожидалось, за исключением того, что он также отображает запросы HEAD как «NULL» или «OTHER».
Регулярное выражение работает, как ожидалось, как в perl, так и в Python (т.е. оно не соответствует запросу HEAD). Кто-нибудь знает, что мне нужно сделать, чтобы Splunk перестал сообщать о материалах, которые я не записал с самого начала? Такое поведение действительно противоречит интуиции.
Причина, по которой вы думаете, что Splunk сообщает о том, что вы не собираете, заключается в том, что вы неправильно понимаете, как рекс команда работает.
рекс не фильтрует записи. Он добавляет поля, которые вы извлекаете, к событиям, если существует регулярное выражение. Итак, в вашем случае вы добавляете поле MYDIR ко всем событиям, содержащим GET, но вы по-прежнему получаете все события.
Тип источника access_combined_wcookie - это готовый исходный тип в Splunk, в котором уже определены извлечения полей. Было бы проще использовать уже извлеченный метод поле, чтобы ограничить ваш поиск только GET.
index=main sourcetype="access_combined_wcookie" method=GET | rex "(?i)\"GET /(?P<MYDIR>\w+)/" | timechart count by MYDIR