Filebeat和AWS Elasticsearch-无法正常工作

时间:2019-07-10 06:09:51

标签: amazon-web-services elasticsearch aws-elasticsearch elastic-beats

我在使用Elasticsearch方面拥有丰富的经验,我使用过2.4版,现在尝试学习新的Elasticsearch。 我正在尝试实现Filebeat以将我的Apache和系统日志发送到我的Elasticsearch端点。为了节省时间,我更喜欢在公共域下通过AWS Elasticsearch Service启动t2.medium单节点实例,并且我附加了访问策略以允许所有人访问集群。 AWS Elasticsearch实例正常运行。 我启动了Ubuntu(18.04)服务器,下载了文件拍子tar,并在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

然后根据文件信号文档,我更改了文件信号文件的所有权,并使用以下命令启动了文件信号:

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

当我开始文件拍时,我遇到以下权限和所有权问题:

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

通过this链接,我发现要使用AWS Elasticsearch,我需要Beats OSS版本。
因此,我再次从this链接下载了节拍的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

3 个答案:

答案 0 :(得分:0)

首先,您需要在AWS ES https://www.elastic.co/downloads/beats/filebeat-oss上使用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模块重复相同的操作。

答案 1 :(得分:0)

也许我们应该使用以下提供的解决方案。 https://forums.aws.amazon.com/thread.jspa?messageID=879115&tstart=0

答案 2 :(得分:0)

我花了数小时试图使filebeat iis module与AWS elasticsearch一起使用。我不断收到摄取地理错误的信息,以下修复了该问题。 对于Windows iis日志,AWS elasticsearch从filebeat模块配置中删除geoip:

C:\ Program Files(x86)\ filebeat \ module \ iis \ access \ ingest \ default.json

C:\ Program Files(x86)\ filebeat \ module \ iis \ access \ manifest.yml

C:\ Program Files(x86)\ filebeat \ module \ iis \ error \ ingest \ default.json

C:\ Program Files(x86)\ filebeat \ module \ iis \ error \ manifest.yml