我在使用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?
我还可以采取什么其他措施来缓解上述问题?
环境细节:
答案 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