Я пытаюсь добавить запрос, который будет соответствовать запросу, оканчивающемуся косой чертой, например этому:
n.n.n.n - - [16/Oct/2013:16:40:41 +0100] "GET / HTTP/1.1" 200 25058 "-" "Mozilla/5.0 (iPad; CPU OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53"
Я использую тип запроса Lucene.
Если мой запрос установлен на *
, Я вижу событие.
Если я установил это на request:"css"
, Я вижу запросы CSS, как и ожидалось.
Однако все следующие действия не дают результатов:
request:"/"
request:"\/"
request:"\\/"
Я попробовал регулярное выражение Lucene, но безуспешно:
request:/\//
Я отмечаю, что у кого-то еще возникает похожая проблема, хотя это и на Kibana 2: https://github.com/rashidkpc/Kibana/issues/401
Как я могу запросить запросы, заканчивающиеся на /
персонаж?
Использование скобок вокруг. * Отлично подходит для меня.
request.raw:/(.*)\//
Он возвращает мне все URL-адреса, заканчивающиеся на /
.
Мне удалось обойти мою проблему, добавив поле перед выводом записей в elasticsearch.
В моем indexer.conf
файл, я добавил этот код:
filter {
if [request] =~ /\/$/ {
mutate {
add_field => {
'file_type' => 'html'
}
}
}
}
Теперь я могу выбрать интересующие меня записи с помощью запроса file_type:"html"
.
На самом деле это может быть лучший способ сделать это, поскольку здесь есть предупреждение об использовании ведущих подстановочных знаков:
Разрешить использование подстановочного знака в начале слова (например, «* ing») особенно сложно, потому что все термины в указателе должны быть проверены на всякий случай, если они совпадают.
Итак, я, вероятно, собираюсь добавить тесты для изображений, JavaScript, CSS и т. Д.
Какое отображение вы определили?
В зависимости от сопоставления, которое вы определили в поле [request], возможно, что косая черта '/' не сохраняется в индексе elasticsearch.
Если вы добавите панель терминов в kibana для поля [запрос], вы увидите полные значения запроса или эти значения разделены на ключевые слова / термин?