これは何
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://www.iret.co.jp/contact/service/form/