Как получить уникальный счетчик поля с помощью Kibana + эластичный Поиск
можно ли запросить отдельный / уникальный счетчик поля с помощью Kibana? Я использую elastic search в качестве своего бэкэнда для Kibana.
Если да, то каков синтаксис запроса? Вот ссылка на интерфейс Kibana я хотел бы сделать свой запрос:http://demo.kibana.org/#/dashboard
я разбираю журналы доступа nginx с помощью logstash и сохраняю данные в эластичном поиске. Затем я использую Kibana для выполнения запросов и визуализации моих данных в диаграммах. В частности, я хочу знать количество уникальных IP-адресов для определенного периода времени с помощью Kibana.
5 ответов:
для Kibana 4 перейдите в ответ
это легко сделать с помощью панели терминов:
Если вы хотите выбрать количество различных IP, которые находятся в ваших журналах, вы должны указать в поле
clientip, вы должны поставить достаточно большое число в длину (в противном случае он будет присоединяться к другому IP под той же группой) и указать в таблице стилей. После добавления панели, у вас будет таблица с IP, и количество этого IP:
теперь Kibana 4 позволяет использовать агрегации. Помимо создания панели, подобной той, что была объяснена в ответ для Kibana 3 Теперь мы можем видеть количество уникальных IP-адресов в разные периоды, это было (IMO) то, что OP хотел в первую очередь.
чтобы построить панель мониторинга, как это вы должны пойти визуализировать - > выберите индекс - > выберите вертикальную гистограмму, а затем в панели визуализации:
- в оси Y мы хотим уникальный количество IP-адресов (выберите поле, в котором вы сохранили IP-адрес) и по оси X мы хотим получить гистограмму даты с нашим timefield.
- после нажатия применить кнопка, у нас должен быть график, который показывает уникальное количество IP, распределенных по времени. Мы можем изменить интервал времени на оси X, чтобы увидеть уникальные IP-адреса ежечасно/ежедневно...
просто примите во внимание, что уникальные счетчики примерное. Для получения дополнительной информации ответ.
имейте в виду, что с уникальным подсчетом вы используете метрику "мощность", которая не всегда гарантирует точное уникальное количество. : -)
метрика мощности является приближенным алгоритмом. Он основан на Алгоритм HyperLogLog++ (HLL). HLL работает путем хэширования вашего ввода и используя биты из хэша, чтобы сделать вероятностные оценки на мощность множества.
в зависимости от количества данных я могу получить различия 700 + записей, отсутствующих в 300k набор данных через уникальный счетчик в Эластике, которые в противном случае действительно уникальны.
подробнее здесь: https://www.elastic.co/guide/en/elasticsearch/guide/current/cardinality.html
создайте запрос " topN "на" clientip", а затем гистограмму с подсчетом" clientip "и установите запрос" topN " в качестве источника. Затем вы увидите количество различных IP-адресов за раз.
уникальные подсчеты значений полей достигаются с помощью фасетов. Смотрите ES documentation для полной истории, но суть в том, что вы создадите запрос, а затем попросите ES подготовить фасеты по результатам для подсчета значений, найденных в полях. Это до вас, чтобы настроить используемые поля и даже описать, как вы хотите, чтобы значения, возвращаемые. Самый простой из типов фасетов - это просто группировка по терминам, которая была бы похожа на IP-адрес выше. Вы можете получить довольно сложный с ними, даже требуется запрос в пределах вашего фасета!
{ "query": { "match_all": {} }, "facets": { "terms": { "field": "ip_address" } } }




Comments