Logstash输出到AWS EC2上的Elasticsearch

我在配置logstash以输出到AWS EC2上的Elasticsearch集群时遇到麻烦。

我正在使用Logstash版本1.1.5和Elasticsearch 1.19.8。

这是我在logstash中的输出配置:

output {

stdout { debug => true debug_format => "json"}

elasticsearch {

cluster => "logstash-searcher"

node_name => "logstash-indexer"

}

}

这是elasticsearch.yml中的相应配置

cluster.name: logstash-searcher

path.data: /usr/local/elasticsearch/data

path.work: /usr/local/elasticsearch/tmp

path.logs: /usr/local/elasticsearch/logs

path.plugins: /usr/local/elasticsearch/plugins

bootstrap.mlockall: true

cloud.aws.region: eu-west-1

cloud.aws.access_key: --

cloud.aws.secret_key: --

discovery.type: ec2

discovery.ec2.host_type: public_ip

discovery.ec2.groups: elasticsearch

gateway.type: s3

gateway.s3.bucket: es-logstash

transport.tcp.port: 9300-9400

我使用以下命令启动logstash:

java -jar logstash-1.1.5-monolithic.jar agent -f shipper.conf

在启动一段时间后,出现以下故障:

Failed to index an event, will retry {:exception=>org.elasticsearch.discovery.MasterNotDiscoveredException: waited for [1m],

我的怀疑是,logstash需要使用诸如cloud-

aws之类的东西来让它的elasticsearch客户端能够找到集群。有没有人可以在AWS上运行的示例配置?

回答:

问题在于,logstash的嵌入式Elasticsearch实例正在使用其默认发现模式。由于elasticsearch

集群配置了云技术,因此也需要对logstash进行嵌入式elasticsearch。

为此,您必须将elasticsearch.yml配置文件添加到logstash的工作目录中。您还需要通过将cloud-aws插件添加到类路径中来提供它。

java -cp logstash-1.1.7-monolithic.jar:cloud-aws/* logstash.runner agent -f shipper.conf

使用这种配置,我设法使logstash输出到我的elasticsearch集群。

以上是 Logstash输出到AWS EC2上的Elasticsearch 的全部内容, 来源链接: utcz.com/qa/400389.html

回到顶部