俺も死んだ(チーン
今頃なのか今更なのか知りませんが、Elasticstackに手を出し始めました。
柔軟性が高いのはいいけど、その柔らかさに殺されそうでまぢつらたんです(´;ω;`)
ちなみに構成は、
CentOS6
elastic 6.x
です。
さて、今回問題のケースでは、ログをfilebeatで取得して、logstashに流し込み、elasticsearchに書き込む構成を取りました。
そして、複数サーバーのログを集約させたいので、各サーバーにfilebeatを設置する、という形にしました。
図(?)にするとこんな感じ?ずれてたらごめんなさい
[FB]―[LS]―[ES]
[FB]/
これで動かしたけれども、elasticsearchのほうにIndexがさっぱり作られません。おかしいと思って/var/log/logstash/logstash-plain.logを見ると、以下のエラーがいっぱい書かれてました。
[crayon-67aefea821306392143490/]
長すぎ!
まぁ要点は「Error: Cannot assign requested address」だと思います。
この時、2つのfilebeatが設定していたlogstashの宛先ポートはどちらも5044でした。
冷静になって考えたら、1つのポートを奪い合う状態はまずいので、片方のfilebeatのポートを5055に変更してやり直してみたら、普通に動きました!(∩´∀`)∩ワーイ
単純にポートの競合はやめましょうって話でした。よくよく考えると恥ずかしいw
ご質問させてください
当方同じような環境を考えています
logstashのポートを5055にされたと理解します。この場合logstash側にlistenポートは5055はどのように記載されたのか具体的に教えて欲しいです
おそらくlogstashのconfにlistenを記載されていると思いますが、並べて書かれたのでしょうか
またfilebeatで複数の種類のログをlogstashに送ることはできるのでしょうか
コメントありがとうございます!そして返信が大変遅れてしまいました……申し訳ありません。
もしかしてもう解決してしまったかもしれませんが、返信させていただきます。
> logstashのポートを5055にされたと理解します。この場合logstash側にlistenポートは5055はどのように記載されたのか具体的に教えて欲しいです
> おそらくlogstashのconfにlistenを記載されていると思いますが、並べて書かれたのでしょうか
logstashのポート設定は、confファイルに以下のように書いています。
input {
beats {
port => 55034
}
}
並べて書いてはおらず、ポートひとつだけ指定しています。
通りすがりのさんがやりたいことは、複数のfilebeatから一つのlogstashへ同時にログを流すこと、かとお見受けいたしますが、そういうときは、logstashのパイプラインという仕組みを使うとうまくいきます。
参考ページ – [Elasticsearch][Logstash] Multiple Pipelinesを試す。:
https://qiita.com/tsgkdt/items/3e7f07ca963676b37718
> またfilebeatで複数の種類のログをlogstashに送ることはできるのでしょうか
filebeat.yml内のfilebeat.inputs:のところで、監視するデータソースを複数指定できます。
参考ページ – Configure inputs:
https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html
ちなみに自分はこんな感じでfilebeat.ymlに記述しています。
filebeat.inputs:
– type: log
paths:
– /var/log/httpd/hogehoge_access_log
tags: [“hogehoge”]
– type: log
paths:
– /var/log/httpd/hugahuga_access_log
tags: [“hugahuga”]
– type: log
paths:
– /var/www/html/acme_system/storage/log/hoge.log
tags: [“acme_system”]