Jon*_*asL 6 amazon-ec2 amazon-web-services elasticsearch logstash
我在配置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"
}
}
Run Code Online (Sandbox Code Playgroud)
这是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
Run Code Online (Sandbox Code Playgroud)
我使用以下命令启动logstash:
java -jar logstash-1.1.5-monolithic.jar agent -f shipper.conf
Run Code Online (Sandbox Code Playgroud)
经过一段时间的启动,我得到了这些失败:
Failed to index an event, will retry {:exception=>org.elasticsearch.discovery.MasterNotDiscoveredException: waited for [1m],
Run Code Online (Sandbox Code Playgroud)
我怀疑logstash需要使用像cloud-aws这样的弹性搜索客户端才能找到集群.有没有人有一个适用于aws的示例配置?
问题是logstash的嵌入式elasticsearch实例正在使用其默认发现模式.由于elasticsearch 集群配置了cloud-aws,因此logstash的嵌入式弹性搜索也需要.
为此,您必须将elasticsearch.yml配置文件添加到logstash的工作目录中.您还需要通过将cloud-aws插件添加到类路径来提供它.
java -cp logstash-1.1.7-monolithic.jar:cloud-aws/* logstash.runner agent -f shipper.conf
Run Code Online (Sandbox Code Playgroud)
使用此配置,我设法将logstash输出到我的elasticsearch集群.
| 归档时间: |
|
| 查看次数: |
7148 次 |
| 最近记录: |