2012-12-21 4 views
6

AWS EC2의 Elasticsearch 클러스터로 출력하도록 logstash를 구성하는 데 문제가 있습니다.AWS EC2의 Elasticsearch에 대한 로그 출력

Logstash 버전 1.1.5 및 Elasticsearch 1.19.8을 사용하고 있습니다.

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

그리고 후를 :

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을 시작

output { 
    stdout { debug => true debug_format => "json"} 
    elasticsearch { 
    cluster => "logstash-searcher" 
    node_name => "logstash-indexer" 
    } 
} 

을하고이 elasticsearch.yml에 해당하는 구성입니다 :

이것은 logstash 내 출력 구성입니다 시작시에 다음과 같은 오류가 발생합니다.

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

내 생각에 logstash는 elasticsearch 클라이언트가 클러스터를 찾을 수 있도록 cloud-aws와 같은 것을 사용해야 할 것입니다. 누구든지 aws에서 작동하는 예제 구성을 가지고 있습니까?

답변

9

문제는 logstash의 내장 elasticsearch 인스턴스가 기본 검색 모드를 사용하고 있다는 것입니다. elasticsearch 클러스터가 cloud-aws으로 구성되어 있기 때문에 logstash의 내장 된 elasticsearch도 필요합니다.

이렇게하려면 logseash의 작업 디렉토리에 elasticsearch.yml 구성 파일을 추가해야합니다. 또한 클래스 경로에 추가하여 cloud-aws 플러그인을 제공해야합니다.

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

이 구성을 사용하여 logstash를 내 elasticsearch 클러스터에 출력 할 수있었습니다.

+0

cloud-aws 플러그인을 다운로드 할 곳이 궁금한 분들을 위해 URL은 다음과 같습니다. https://download.elasticsearch.org/elasticsearch/elasticsearch-cloud-aws/elasticsearch-cloud-aws-1.12.0.zip – zimbatm