Как получить уникальный счетчик поля с помощью Kibana + эластичный Поиск



можно ли запросить отдельный / уникальный счетчик поля с помощью Kibana? Я использую elastic search в качестве своего бэкэнда для Kibana.



Если да, то каков синтаксис запроса? Вот ссылка на интерфейс Kibana я хотел бы сделать свой запрос:http://demo.kibana.org/#/dashboard



я разбираю журналы доступа nginx с помощью logstash и сохраняю данные в эластичном поиске. Затем я использую Kibana для выполнения запросов и визуализации моих данных в диаграммах. В частности, я хочу знать количество уникальных IP-адресов для определенного периода времени с помощью Kibana.

912   5  

5 ответов:

для Kibana 4 перейдите в ответ

это легко сделать с помощью панели терминов:

Adding a terms panel to Kibana

Если вы хотите выбрать количество различных IP, которые находятся в ваших журналах, вы должны указать в поле clientip, вы должны поставить достаточно большое число в длину (в противном случае он будет присоединяться к другому IP под той же группой) и указать в таблице стилей. После добавления панели, у вас будет таблица с IP, и количество этого IP:

Table with IP and count

теперь Kibana 4 позволяет использовать агрегации. Помимо создания панели, подобной той, что была объяснена в ответ для Kibana 3 Теперь мы можем видеть количество уникальных IP-адресов в разные периоды, это было (IMO) то, что OP хотел в первую очередь.

чтобы построить панель мониторинга, как это вы должны пойти визуализировать - > выберите индекс - > выберите вертикальную гистограмму, а затем в панели визуализации:

  • в оси Y мы хотим уникальный количество IP-адресов (выберите поле, в котором вы сохранили IP-адрес) и по оси X мы хотим получить гистограмму даты с нашим timefield.

Building a visualization

  • после нажатия применить кнопка, у нас должен быть график, который показывает уникальное количество IP, распределенных по времени. Мы можем изменить интервал времени на оси X, чтобы увидеть уникальные IP-адреса ежечасно/ежедневно...

Final plot

просто примите во внимание, что уникальные счетчики примерное. Для получения дополнительной информации ответ.

имейте в виду, что с уникальным подсчетом вы используете метрику "мощность", которая не всегда гарантирует точное уникальное количество. : -)

метрика мощности является приближенным алгоритмом. Он основан на Алгоритм 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

    Ничего не найдено.