7

AWS EC2 の Elasticsearch クラスターに出力するように logstash を構成するのに問題があります。

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 は、elasticsearch クライアントがクラスターを見つけることができるように、cloud-aws のようなものを使用する必要があります。awsで動作する設定例はありますか?

4

1 に答える 1

9

問題は、logstash の組み込み Elasticsearch インスタンスがデフォルトの検出モードを使用していたことです。Elasticsearchクラスターはcloud-awsで構成されているため、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 クラスターに出力することができました。

于 2013-01-04T13:55:43.307 に答える