AWS

AWSでLinuxサーバ上のログを自動的にS3に保存する方法

AWSでLinuxサーバ上のApacheのアクセスログやアプリケーションログ、サーバのログイン履歴など任意のログをS3に送る方法についてご説明します。

AWSで提供されているKinesis Firehoseというリアルタイムにデータを送信するサービスを利用します。

Amazon Kinesis Data Firehose とは

Kinesisエージェント用のIAMユーザーを作成する

Linuxにインストールするkinesisエージェント用のIAMユーザーを作成します。

AWSコンソールにログインし、上部のメニューのサービスからIAMを選択肢、左のメニューのユーザーを選択します。画面に表示されるユーザーの追加ボタンをクリックします。

好きなユーザー名を入力し、プログラムよるアクセスにチェックします。

そのまま次に進めて、最後にアクセスキーIDシークレットアクセスキーが表示されるので保存しておきます。

Kinesisエージェント用のIAMユーザーにアクセス権限を与える

IAMのユーザーのメニューから作成したユーザーをクリックし、インラインポリシーの追加をクリックします。

下記のように権限を設定します。

適当にポリシーに名前をつけ、アクセス権限の設定を完了します。

Kinesis配信ストリームの作成

次に、サーバからログを受け取り、S3に転送するためのKinesis配信ストリームを作成します。

上のサービスのメニューからKinesisを選択し、配信ストリームの作成をクリックします。

配信ストリームの名前を適当に設定します。

SourceのところでDirect PUT or other sourcesを選択します。

DestinationAmazon S3を選択します

S3 Bucketの項目でCreate newボタンを押して、出力先のS3バケットを新しく作成します。(既存のものを使っても問題ありません)

好きなS3バケット名入力しRegionを選択します。

IAM roleの項目でCreate new or chooseを選択します。

IAMロールが自動的に作成され、適切な権限が与えられます。

あとは、そのまま進めて、配信ストリームの作成を完了させます。

Kinesisエージェントのインストール

ログを送りたいサーバにKinesisエージェントをインストールします。これはAmazon Linux2で試した手順ですが、CentOSやRedhatの場合は、7以降のバージョンでKinesisエージェントに対応しています。

下記のコマンドを実行しkinesisエージェントのパッケージをインストールします。

sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm

下記のファイルを編集し、S3に送りたいログファイル名をとkinesis配信ストリーム名、IAMユーザーのアクセスキーID, シークレットキー設定します。注意点として、読み取るファイルは、kinesisエージェントの起動ユーザーaws-kinesis-agent-userが読み取りができる必要があります。

{
  "cloudwatch.emitMetrics": false,
  "firehose.endpoint": "https://firehose.(リージョン名、東京の場合は、ap-northeast-1).amazonaws.com",
  "awsAccessKeyId": "(IAMユーザーのアクセスキーID)",
  "awsSecretAccessKey": "(IAMユーザーのシークレットアクセスキー)",
  "flows": [
    {
      "filePattern": "/var/tmp/app.log*",  ← 送りたいログのPATH
      "deliveryStream": "send-log-to-s3"  
    }
  ]
}

Kinesisエージェントを起動し、自動起動を設定

systemctl start aws-kinesis-agent
systemctl enable aws-kinesis-agent

以上でサーバのログがS3に保存されるようになります。

関連記事

  1. AWS

    AWSでCloudFrontを使った方が良い理由

    今回はAWSでCloudFrontを使用する際に、設定しておいた方が良…

  2. AWS

    AWSでOSの脆弱性対策をする方法

    今回はAWSで作成したEC2インスタンスのOSの脆弱性対策をする方…

  3. AWS

    AWSでRDSに安全にデータを保存するための5つのポイント

    今回はAWSのRDSにデータを安全に保存する方法についてお話したい…

  4. AWSでS3の利用料を節約するためにやって置いた方がよいこと

    AWS

    AWSでS3の利用料を節約するためにやって置いた方がよいこと

    AWSでファイルや画像などを配置する場所として利用する場所はS3ですが…

  5. AWS

    AWSでコンプライアンスのための監査ログを取得する方法

    PCI DSSやIT内部統制などのコンプライアンスの観点でAWS上で監…

  6. PCI DSS準拠するためにAWSのセキュリティグループを使うためのポイント

    AWS

    PCI DSS準拠するためにAWSのセキュリティグループを使うためのポイント

    AWSでセキュリティグループはEC2やRDS(リレーショナルデータベー…

最近の記事

  1. AWS

    AWSでLinuxサーバ上のログを自動的にS3に保存する方法
  2. AWS

    AWSで大規模障害発生時に被害を最小限にする方法
  3. PCI DSS準拠するためにAWSのセキュリティグループを使うためのポイント

    AWS

    PCI DSS準拠するためにAWSのセキュリティグループを使うためのポイント
  4. AWS

    AWSを利用してPCI DSS準拠のシステムを構築する3つのメリット
  5. PCI DSS

    PCI DSSに準拠するためにまず最初にやるきべこと
PAGE TOP