2016-10-06 19 views
0

ドッカーでredis + ELKスタックを設定しようとしています。私はredisを使用して遠隔地からログを受け取り、それらをlogstashに転送したいと思う。ここでdocker-composeを使用したredis + elkスタック

は私のドッキングウィンドウ-compose.yml

elasticsearch: 
    image: elasticsearch:latest 
    command: elasticsearch -Des.network.host=0.0.0.0 
    ports: 
    - "9200:9200" 
    - "9300:9300" 
    volumes: 
    - /root/ebs:/usr/share/elasticsearch/data 

logstash: 
    build: logstash/ 
    command: logstash -f /etc/logstash/conf.d/logstash.conf 
    volumes: 
    - ./logstash/config:/etc/logstash/conf.d 
    ports: 
    - "5000:5000" 
    links: 
    - elasticsearch 
kibana: 
    build: kibana/ 
    volumes: 
    - ./kibana/config/:/opt/kibana/config/ 
    ports: 
    - "5601:5601" 
    links: 
    - elasticsearch 

redis: 
    image: redis:latest 
    ports: 
    - "6379:6379" 
    links: 
    - logstash 

されており、ここで私のlogstash.confマイlogstashコンテナはこのエラーを投げている

input { 
    tcp { 
     port => 5000 
    } 
    redis { 
     host => "redis:6379" 
    } 
} 

output { 
    elasticsearch { 
     hosts => "elasticsearch:9200" 
    } 
} 

です:

logstash_1  | {:timestamp=>"2016-10-06T09:21:35.258000+0000", :message=>"An unexpected error occurred!", :error=>#<NoMethodError: undefined method `call' for nil:NilClass>, :class=>"NoMethodError", 
+0

セットアップはDocker外で動作しますか?それは本当にコンテナの問題かアプリケーションの問題ですか?また、何を試してみましたか?エラーはいつ発生しますか?あなたは何をしようとしていましたか?あなたが提供した情報でデバッグするのが非常に難しい –

+0

私はDockerの外でセットアップを試しませんでした。それは本当に簡単です、私は何か愚かな行方不明です。 logstashでredisをどのように使用できますか? –

答えて

0

私がすることができます1つの直接の問題を参照してください。しかし、あなたが実際にあなたのlogstashサービスにRedisのサービスをリンクしていない、あなたのドッキングウィンドウ・コンファイルで

redis { 
    host => "redis:6379" 
} 

logstash: 
    <snip> 
    links: 
    - elasticsearch 

代わりに、あなたをリンクあなたのlogstash.confファイルでは、Redisのホスト名を指定しますあなたのredisサービスにlogstashサービス。私が理解できる限り、あなたのredisコンテナのポートは、別の方法ではなく、logstashで利用できるようにしてください。あなたのredisサービスでlogstashリンクを削除し、ログスタートサービスにredisリンクを追加する必要があります。 So:

logstash: 
    <snip> 
    links: 
    - elasticsearch 
    - redis 

これはエラーメッセージの原因だとは確信できません。

編集:赤い入力の設定が間違っている可能性があります。 documentationによれば、ポートは次のような別のプロパティとして指定する必要があります。

redis { 
    host => "redis" 
    port => 6379 
} 
+0

ヒントありがとうございますが、私はまだそのエラーを受け取ります:/ –

+0

もう一つの考えられるエラーは 'host => 'redis:6379です。私はポートを別の 'port'プロパティで指定するべきだと思います。だから類似した何か: ホスト=> "redis" ポート=> 6379 価値がある。 – Snorre

関連する問題