LoginSignup
7
7

More than 5 years have passed since last update.

Fluentd with Docker で知っておきたいこと

Posted at

前振り

Docker、Docker-compose、Fluentd力が無さ過ぎて苦労したので、苦労したことのまとめ。

その1 プラグインのインストール

  1. プラグインのインストールをするのなら、docker-compose.ymlとDockerfileの両方を使用する
    • docker-compose.yml で build オプションを指定すると使用するDockerfileを指定できる
    • 公式の説明でも使用されている
    • docker-compose.ymlからみた相対パスでfluentdディレクトリを指定するにはbuild: ./fluentdとする
  2. プラグインのインストールは、gem install fluent-plugin-datacounterでOK。
    • td-agent-gem installもあるけど、Dockerでやるときに若干困った。
    • RUN ["gem", "install", "fluent-plugin-elasticsearch", "--no-rdoc", "--no-ri", "--version", "1.9.2"]てのもあるが、ヘッダーファイルのインストールと削除してとなると困った。
  3. Fluentd with Docker では、イメージサイズを小さく保つためにbuild-baseとruby-devが消してある
    • プラグインのインストール時に、「mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h」というエラーが出ることがある。
    • これは意図した仕様
    • 自分でインストールして使ってね。

その2 UDPの疎通ミスによる死活監視エラー

  1. Docker環境で使用していると、[warn]: detached forwarding server '172.27.***.***:24224' host="172.27.***.***" port=24224というエラーがでる。
  2. Docker、EC2環境でUDPのハートビート死活監視がこけていることが原因
    • ハートビートの死活監視をTCPに制限するのが一番楽そう
    • heartbeat_type tcpを指定して対応
    • 公式の解説
7
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7