share facebook facebook facebook twitter twitter menu hatena pocket slack

2021.10.04 MON

FluentdでEC2からS3へログを転送

Shimpei Chiba

WRITTEN BY Shimpei Chiba

これは何

FluentdでEC2からS3へログを転送したので、設定ファイルの書き方など書き残しました。

要件
Amazon Linux 2
td-agent4
old stableだし、3でもよかったけど、なんとなく4を選択

他にこの件で書かれている方がすでにいらっしゃって、参考にさせていただきました。
自分はハマったポイントが何点かあったので、そちらも含めてまとめます。

・S3 credentials
・configファイル設定で、もともとあるmatch directiveを削除しなければならなかった。

やってみた

S3 credentials用意

/// S3 credentials用意
IAMロール設定。EC2へアタッチ。
という方法だと、credentialsのエラーが出て進まなかったので、AmazonS3FullAccessを与えたIAMユーザーのAccess key,Secret keyを利用。

httpd install

yum install httpd
systemctl start httpd

Fluentd install

/// Fluentd install
$ curl -L https://toolbelt.treasuredata.com/sh/install-amazon2-td-agent4.sh | sh

Installed:
  td-agent.x86_64 0:4.2.0-1.amzn2

Complete!

Installation completed. Happy Logging!
↑どうでもいいですが、このノリ好きです

一応バックアップ

/// 一応バックアップ(後々ハマったので、しておいてよかったです)

cd /etc/td-agent/
cp td-agent.conf td-agent.conf.org

関連プラグインのインストール

///関連プラグインのインストール

/usr/sbin/td-agent-gem install fluent-plugin-s3
/usr/sbin/td-agent-gem install fluent-plugin-forest
/usr/sbin/td-agent-gem install fluent-plugin-ec2-metadata

権限変更

/// 権限変更
cd /var/log/
chmod 750 httpd/
chown  root.td-agent  httpd/
ls -ld httpd/

chmod  640 messages
chown  root.td-agent  messages
ls -ld messages

設定ファイルの編集

/// 設定ファイルの編集
vi /etc/td-agent/td-agent.conf

/match
で、該当の行を消去

最下行に以下追記
<source>
  @type tail
  path /var/log/messages
  tag td.messages.access
  pos_file /var/log/td-agent/messages.pos
  format syslog
</source>

<match td.messages.access>
  @type s3
  aws_key_id 
  aws_sec_key 
  s3_bucket バケットの名前
  s3_region ap-northeast-1(利用リージョンに合わせて、任意)
  time_slice_format %Y%m%d%H%M
</match>
  <buffer>
    @type file
    path /var/log/td-agent/s3
    timekey 3600  # 1 hour
    timekey_wait 10m
    chunk_limit_size 256m
  </buffer>

実行ユーザーをrootにする

/// 実行ユーザーをrootにする

vi /usr/lib/systemd/system/td-agent.service

[Service]
User=td-agent
Group=td-agent

↓変更

[Service]
User=root
Group=root

restart

/// 再起動

sudo systemctl restart td-agent.service

test

/// test

logger test

or

ab -n 100 -c 10 http://localhost/

転送成功

参考

https://github.com/fluent/fluent-plugin-s3/issues/362
https://stackoverflow.com/questions/67365930/failed-to-flush-the-buffer-fluentd
https://teratail.com/questions/288682
https://docs.fluentd.org/how-to-guides/apache-to-s3
https://techgekka.hateblo.jp/entry/2016/11/08/195406
https://www.tweeeety.blog/entry/20131211/1386728410
https://dev.classmethod.jp/articles/fluentd-s3/
https://stackoverflow.com/questions/33182868/fluentd-s3-output-plugin-configuration
https://qiita.com/xishan/items/81736cb504b7b1ddf59a
https://qiita.com/y-araki-qiita/items/de6638ec7d32d09017c5
https://qiita.com/katuemon/items/7105c24271c07ce7b412
https://qiita.com/VTRyo/items/a4695aeec4fec8220fbb

参考にさせていただきました。ありがとうございます。

元記事はこちら

https://qiita.com/namely_/items/acfe699fdf2a69b6cb41


アイレットなら、AWS で稼働するサーバーを対象とした監視・運用・保守における煩わしい作業をすべて一括して対応し、経験豊富なプロフェッショナルが最適なシステム環境を実現いたします。AWS プレミアコンサルティングパートナーであるアイレットに、ぜひお任せください。

AWS 運用・保守サービスページ:
https://cloudpack.jp/service/aws/maintenance.html

その他のサービスについてのお問合せ、お見積り依頼は下記フォームよりお気軽にご相談ください。
https://cloudpack.jp/contact/form/

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。