【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【fluentd】IDCFのオブジェクトストレージに投げるのにハマった話

インフラエンジニアの指原です。

先日IDCFさんの環境でサーバを構築する機会があり、その時にオブジェクトストレージにログを格納するというのがあったんですが、ドハマりしたのでその時のメモです。

構成はこんな感じ

APIサーバ(fluentd) ⇒ log集約サーバ(fluentd) ⇒ オブジェクトストレージ

一般的な構成だと思います。

最初の設定

IDCFさんの公式に手順があったので、それを参考に設定を進めていました。

S3互換のストレージなのでfluent-s3-pluginを使用しています。

初めの設定はこんな感じ

<store>
   type s3
   aws_key_id XXXXXXXXXXXXXXXXXXXX
   aws_sec_key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   s3_bucket bucket_name
   s3_endpoint http://ds.jp-east.idcfcloud.com
   check_apikey_on_start false
   s3_object_key_format %{path}%{time_slice}_%{index}.%{file_extension}
   path logs/
   buffer_path /var/log/fluent/idcf/buffer/
   flush_interval 60s
   time_slice_format %Y%m%d/%Y%m%d-%H
</store>

ただなぜかオブジェクトストレージにアップロードされない。。

バッファファイルの作成は問題なし

エラーを調べてみてもよくわからず・・・

かなりハマりました・・・

 

答えはfluent-plugin-s3のドキュメントに書いてあった

fluent-plugin-s3のgithubに書いてありました。

signature_version

Signature version for API request. s3 means signature version 2 and v4 means signature version 4. Default is nil(Following SDK's default). It would be useful when you use S3 compatible storage that accepts only signature version 2.

要はAPIリクエストの署名バージョンについて

  • 署名バージョン2を使うときはs3、バージョン4を使うときはv4を指定してね
  • 署名バージョン2のS3互換ストレージに使うと便利ですよ。
  • デフォルトはSDKのバージョンに準拠するよ

という感じでしょうか。使用するストレージの署名バージョンに合わせて設定を入れる必要があるようです。

オブジェクトストレージは署名バージョン2のみをサポートしているようだったので

signature_version s3

これを追加したらあっさりいけました。

S3の署名バージョンが4をサポートしたのに合わせてfluent-s3-plugin側でも対応したみたいです。

まとめ

署名バージョンについては他環境のS3互換ストレージでも流用できるので勉強になりました。

今回に限らず公式のドキュメントは英語が多く敬遠しがちですが、やはり答えが書いてあることが多いですね。

英語力を上げていきましょう!

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
578
X facebook はてなブックマーク pocket
【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

この記事をかいた人

About the author