Назад | Перейти на главную страницу

Кибана и Логсташ: Когда поле - это не поле?

Я включил grok фильтр в нашей конфигурации logstash, чтобы анализировать журналы из HAProxy с помощью %{HAPROXYHTTP} и %{HAPROXYTCP} узоры. Кажется, это отлично работает, и, просматривая подробности любой записи журнала из haproxy, я вижу различные извлеченные поля (bytes_read, client_ip, client_port, termination_state, actconn, feconn и т. Д.).

Но из экрана Kibana «Создать новую визуализацию» ни одно из этих полей не доступно во всплывающем окне «Поля» при настройке оси Y.

Что мне нужно сделать, чтобы эти извлеченные поля стали доступны для визуализации?

Kibana независимо отслеживает сопоставления ElasticSearch, поэтому может выполнять переводы между типами данных ES и видами полей, которые использует Kibana. Этот список сопоставлений необходимо обновить. Вы можете найти его в Management -> Index Patterns. Как только вы окажетесь в списке шаблонов индекса, выберите индекс, в который вы добавили поля, и нажмите круглую кнопку обновления (рядом с кнопкой корзины, конечно же). Он напомнит вам, что сбрасывает значения популярности полей; но это нормально, ты хочешь видеть новые.

Ответ @ sysadmin1138 был половиной проблемы. В Другой половина проблемы заключается в том, что по причинам, которые в то время должны были казаться хорошими, но теперь кажутся невероятно близорукими, шаблоны logstash для haproxy не указывайте явные типы данных для полей. Например., HAPROXYTCP определяется как:

HAPROXYTCP (?:%{SYSLOGTIMESTAMP:syslog_timestamp}|%{TIMESTAMP_ISO8601:timestamp8601}) %{IPORHOST:syslog_server} %{SYSLOGPROG}: %{IP:client_ip}:%{INT:client_port} \[%{HAPROXYDATE:accept_date}
\] %{NOTSPACE:frontend_name} %{NOTSPACE:backend_name}/%{NOTSPACE:server_name} %{INT:time_queue}/%{INT:time_backend_connect}/%{NOTSPACE:time_duration} %{NOTSPACE:bytes_read} %{NOTSPACE:termin
ation_state} %{INT:actconn}/%{INT:feconn}/%{INT:beconn}/%{INT:srvconn}/%{NOTSPACE:retries} %{INT:srv_queue}/%{INT:backend_queue}

Так как, например, bytes_read определяется как %{NOTSPACE:bytes_read}, это string тип данных и поэтому недоступен для визуализаций. Чтобы исправить это, нужно создать пользовательские сопоставления в шаблоне индекса. перед вы заполняете его с опозданием любыми данными, поэтому (а) отбрасываете все ваши существующие данные и (б) составляете список всех неправильно набранных полей, которые вы хотите использовать.

(NB: это также верно для httpd шаблоны, как %{HTTPD_COMMONLOG}. И, наверное, для всего остального.)