Filebeat и AWS Elasticsearch - не работает - PullRequest
1 голос
/ 10 июля 2019

У меня хороший опыт работы с Elasticsearch, я работал с версией 2.4 и сейчас пытаюсь освоить новый Elasticsearch.Я пытаюсь реализовать Filebeat для отправки моих apache и системных журналов на мою конечную точку Elasticsearch.Чтобы сэкономить свое время, я предпочел запустить экземпляр одного узла t2.medium через AWS Elasticsearch Service в общедоступном домене, и я прикрепил политику доступа, чтобы каждый мог получить доступ к кластеру.Экземпляр AWS Elasticsearch исправен и работает.Я запустил сервер Ubuntu (18.04), скачал tar-файл filebat и сделал следующую конфигурацию в filebeat.yml:

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
        hosts: ["https://my-public-test-domain.ap-southeast-1.es.amazonaws.com:443"]

18.04-  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"

Я включил необходимые модули:

filebeat modules enable system apache

Тогда согласнодокументация по filebeat Я изменил владельца файла filebeat и запустил filebeat следующими командами:

sudo chown root filebeat.yml 
sudo ./filebeat -e

Когда я запустил filebeat, у меня возникли следующие проблемы с правами доступа и владельцем:

Error loading config from file '/home/ubuntu/beats/filebeat-7.2.0-linux-x86_64/modules.d/system.yml', error invalid config: config file ("/home/ubuntu/beats/filebeat-7.2.0-linux-x86_64/modules.d/system.yml") must be owned by the user identifier (uid=0) or root

Чтобы решить эту проблему, я изменил владельца для файлов, которые выдавали ошибки.Когда я перезапустил службу filebeat, я столкнулся со следующей проблемой:

Connection marked as failed because the onConnect callback failed: cannot retrieve the elasticsearch license: unauthorized access, could not connect to the xpack endpoint, verify your credentials

Проходя по этой ссылке, я обнаружил, что для работы с AWS Elasticsearch мне понадобятся версии Beats OSS.
Итак, я снова скачал версию OSS для ритма с по этой ссылке и следовал той же процедуре, что и выше, но все равно не повезло.Теперь я сталкиваюсь со следующими ошибками:

Ошибка 1:

Attempting to reconnect to backoff(elasticsearch(https://my-public-test-domain.ap-southeast-1.es.amazonaws.com:443)) with 12 reconnect attempt(s)

Ошибка 2:

Failed to connect to backoff(elasticsearch(https://my-public-test-domain.ap-southeast-1.es.amazonaws.com:443)): Connection marked as failed because the onConnect callback failed: 1 error: Error loading pipeline for fileset system/auth: This module requires an Elasticsearch plugin that provides the geoip processor. Please visit the Elasticsearch documentation for instructions on how to install this plugin. Response body: {"error":{"root_cause":[{"type":"parse_exception","reason":"No processor type exists with name [geoip]","header":{"processor_type":"geoip"}}],"type":"parse_exception","reason":"No processor type exists with name [geoip]","header":{"processor_type":"geoip"}},"status":400}

Из второй ошибки я могу понять, что плагин geoipнедоступно, из-за чего я столкнулся с этой ошибкой.

Что еще нужно сделать, чтобы эта работа работала?
Кто-нибудь должен был успешно подключить Beats к AWS Elasticsearch?
Какие еще шаги я мог сделатьпринять для смягчения вышеуказанной проблемы?

Сведения об окружении:

  • Версия AWS Elasticsearch: 6.7
  • Удар файла: 7.2.0

Ответы [ 2 ]

0 голосов
/ 22 июля 2019

Возможно, нам следует использовать следующее предоставленное решение. https://forums.aws.amazon.com/thread.jspa?messageID=879115&tstart=0

0 голосов
/ 17 июля 2019

Во-первых, вам нужно использовать OSS-версию filebeat с AWS ES https://www.elastic.co/downloads/beats/filebeat-oss

Во-вторых, AWS ElasticSearch не предоставляет модуль GeoIP, поэтому вам необходимо отредактировать конвейеры для любого из модулей по умолчанию, которые вы хотите использовать, и убедиться, что GeoIP удален / закомментирован.

Например, в /usr/share/filebeat/module/system/auth/ingest/pipeline.json (это путь при установке из пакета deb - ваш путь, конечно, будет другим) комментарий:

        {
        "geoip": {
            "field": "source.ip",
            "target_field": "source.geo",
            "ignore_failure": true
        }
    },

Повторите то же самое для модуля apache.

...