LoginSignup
0
0

More than 5 years have passed since last update.

AWSのElastic Beanstalkにtd-agent3をデプロイする

Posted at

目次
1. はじめに
2. .ebextension内にtd-agent3の設定ファイルを作る
3. .ebextension内にtd-agent3のインストールファイルを作る
4. デプロイ

1. はじめに

環境
fluentd-v1.0(td-agent3)
Amazon Linux 1

2. .ebextensionでtd-agent3の設定ファイルを作る

Elastic Beanstalk以下(eb)では、.ebextensionという設定ファイルを追加することによって環境設定が可能です。

  • 作成したファイルの拡張子は.configとし、YAMLもしくはJSON形式にします。
  • 設定ファイルはアルファベット順に実行されます。

(設定ファイル読み込み例)
以下のように設定ファイルを作成した場合
.ebextensions/01td-agent3.configが先に読み込まれます。

.ebextensions/01td-agent3.config
.ebextensions/02td-agent-install.config


(設定例 01-td-agent.config)

設定の中身はバージョンによって書き方が異なるので注意が必要ですので、使用されるtd-agentのバージョン確認することをおすすめします。

例えばbufferプラグインでも書き方が全く異なります。

td-agent2.config
buffer_type file
td-agent3.config
<buffer>
 @type file
</buffer>

(Amazon Linuxのバージョン確認方法)
使用したいebに接続した状態で$ cat /etc/system-releaseと入力すると、
=> Amazon Linux AMI release 2017.09のように使用してるバージョン確認ができます。

下記は01td-agent.configの設定例です。
※設定内容は適当ですので、実際に設定したい内容に書き換えてください。

設定例01-td-agent.config
files:
 "/etc/td-agent/td-agent.conf":
    owner: root
    group: root
    content: |

  <match pattern1>
    <buffer>
      @type file
      path /var/log/fluent/s3
    </buffer>
  </match>

  <match pattern>
    @type s3

    aws_key_id YOUR_AWS_KEY_ID
    aws_sec_key YOUR_AWS_SECRET_KEY
    s3_bucket YOUR_S3_BUCKET_NAME
    s3_region YOUR_S3_BUCKET_REGION
    path logs/

    <buffer tag,time>
      @type file
      path /var/log/fluent/s3
      timekey 3600
      timekey_wait 1m
      timekey_use_utc true
      chunk_limit_size 256m
    </buffer>
  </match>

3. .ebextensionでtd-agent3のインストールファイルを作る

# errors get logged to /var/log/cfn-init.log. See Also /var/log/eb-tools.log
commands:
  01-command:
    command: echo 'Defaults:root    !requiretty' >> /etc/sudoers

  02-command:
    command: curl -L https://toolbelt.treasuredata.com/sh/install-amazon1-td-agent3.sh | sh

  03-command:
    command: /etc/init.d/td-agent restart

インストールするURLはご自身の環境に合わせてください。↑はAmazon Linux 1の場合です。

4. デプロイ

eb環境がない方はeb initでEB上でアプリケーションを作成し、
eb createで環境を構築してください。この辺の説明は省きます。

すでにある方はeb deployで設定内容反映させてください。
設定がおかしかったりすると、deployに失敗すると思うので原因はログで確認してください。

eb sshで接続したあと起動確認しましょう。

便利コマンド
バージョン確認
$ rpm -q td-agent
$ td-agent --version

起動、停止、再起動、ステータス
$ sudo /etc/init.d/td-agent start
$ sudo /etc/init.d/td-agent stop
$ sudo /etc/init.d/td-agent restart
$ sudo /etc/init.d/td-agent status

コマンドライン上でS3プラグインがどんな設定項目を持っているか確認
td-agent --show-plugin-config output:s3

参考
Installing Fluentd Using rpm Package
設定ファイル (.ebextensions) による高度な環境のカスタマイズ
AWS Elastic Beanstalk の詳細な環境設定 » 設定オプション

0
0
0

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
0
0