6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Oracle Cloud] Fluentd をつかって、Object Storage にデータを出力してみた

Posted at

はじめに

Fluentd は、OSS で開発されているとても柔軟なデータ収集ソフトウェアです。さまざまなソースのデータを、様々な宛先に出力することが出来ます。CNCF でホストされているため、データ収集ソフトウェアでデファクトスタンダードな製品です。データの受け取り(input)とデータの出力(output)をプラグインとして実装されています。OSSでかつプラグイン方式なため、ファイルや標準出力、データベース、Public Cloud のサービスなど、多種多用なものに対応しています。また、対応していないものがあれば自作することも可能です。

今回の記事では、Fluentd の S3 プラグインを使用して、OCI の Object Storage にデータを出力する config を紹介します。

事前準備

Object Storage で S3互換API を提供されています。S3 プラグインでは、これを利用して接続をします。次の記事を参考に、Customer Secret Key と、Endpoint を確認します。

https://qiita.com/sugimount/items/bb20293627d5c9973ba9#customer-secret-keys-%E3%82%92%E7%94%9F%E6%88%90

Fluentd のインストール

次の Document を見てインストールしていきます。

config

パッケージマネージャーからインストールしたので、vim で config を編集します

vim /etc/td-agent/td-agent.conf

次のconfigを入力します。事前準備で確認した内容をパラメータなどを入れていきます。

  • aws_key_id : key
  • aws_sec_key : secret
  • s3_bucket : Bucket 名
  • s3_region : Region Identifier
  • s3_endpoint : S3互換APIのendpoint
  • ssl_verify_peer : false を指定
  • force_path_style : true を指定
<source>
 @type forward
</source>
 
<match debug.**>
  @type copy
  <store>
    @type stdout
  </store>
  <store>
    @type s3
    aws_key_id "your key"
    aws_sec_key "your secret"
    s3_bucket testsugi
    s3_region <region>
    s3_endpoint https://<namespace>.compat.objectstorage.<region>.oraclecloud.com
    check_apikey_on_start false
    ssl_verify_peer false
    force_path_style true
    <buffer>
      @type file
      path /var/log/td-agent/buffer/oci.buffer
      chunk_limit_size 8m
      queue_limit_length 256
      flush_at_shutdown true
      flush_interval 1s
      retry_wait 30s
      retry_max_times 9
    </buffer>
  </store>
</match>

Fluentd を再起動します

systemctl restart td-agent

次のコマンドを発行すると、Fluentd にデータがキューされます。

echo '{"I say":"hello"}' | /opt/td-agent/embedded/bin/fluent-cat debug.ok

td-agent.log を確認すると、末尾に stdout で文字列が表示されています

root@stepbox:~# tail /var/log/td-agent/td-agent.log
2020-03-20 00:46:03.443149932 +0000 debug.ok: {"I say":"hello"}

再度、Fluentd を再起動することで、バッファーをフラッシュして Object Storage にデータが出力されます

systemctl restart td-agent

OCI Console で確認

1584665428689.png

Object Storage にアップロードされている gz ファイルをダウンロードして内容を確認すると、正しくデータが書かれています

1584665327402.png

参考URL

6
3
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
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?