настроен на пересылку логов сквида в graylog
На graylog настроен input, принимающий данные от rsyslog
В грейлог настроен индекс
Сообщения полились и в вебинтерфейсе грейлога я их вижу
Затем для сообщений настроен extractors:
%{NUMBER:timestamp}\s+%{NUMBER:response_time} %{IPORHOST:req_client_address} %{NOTSPACE:squid_request_status}/%{NUMBER:http_status_code} %{INT:transfer_size} %{NOTSPACE:http_method} (%{URIPROTO:url_scheme}://)?(?<url_host>\S+?)(:%{INT:url_port})?(/%{NOTSPACE:url_path})?\s+%{NOTSPACE:client_identity}\s+%{NOTSPACE:peer_code}/%{NOTSPACE:peerhost}\s+%{NOTSPACE:content_type}
Но возникают ошибки
1. Когда подключаю elasticsearch в grafana и пытаюсь получать какие либо данные , то получаю ошибку "Error updating options: Elasticsearch error: undefined"
2. В веб интерфейсе грайлога по извлеченному из экстрактора полю transfer_size пытаюсь построить график: график пустой
Во всех приеведенных случаях с
Но в логах еластикса ошибки: org.elasticsearch.transport.RemoteTransportException: [70vw3u9][127.0.0.1:9300][indices:data/read/search[phase/query]] Caused by: java.lang.IllegalArgumentException: Expected numeric type on field [transfer_size], but got [keyword]
Почему из эластикса число прилетает как строка?
Очевидно, ты шлёшь строку вместо числа. В JSON это выглядит как отсутствие или наличие кавычек вокруг значения.
Ну видимо да... А почему шлется строка? В экстракторе написано %{INT:transfer_size} .... И такое похоже происходит со числовыми всеми полями — данные шлются как строки... Где это можно посмотреть в опциях и исправить поведение на корректное?
Обсуждают сегодня