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を利用してPCI DSS準拠のシステムを構築する3つのメリット

    今回はAWSを利用してPCI DSS準拠のシステムを構築す…

  4. AWS

    AWSでEC2インスタンスを安全に使うための3つの注意点

    今回はAWSでEC2インスタンスを起動した際に、安全に使うために行った…

  5. AWS

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

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

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

    AWS

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

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

最近の記事

  1. AWS

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

    AWSでS3を安全に使うための2つのポイント
  3. AWSで安全なネットワーク設計を行うポイント

    AWS

    AWSで安全なネットワーク設計を行うポイント
  4. PCI DSSの12要件とAWSにおける対応方法

    AWS

    PCI DSSの12要件とAWSにおける対応方法
  5. AWS

    AWSでEC2インスタンスを安全に使うための3つの注意点
PAGE TOP