ヘルプ Lambda関数を使用したS3ログの収集

Lambda関数を使用したS3ログの収集

S3バケットは、大量のデータを保存できるスケーラブルなコンテナーとして機能します。Site24x7はLambda関数を使用して、S3バケットに追加された新規ログを検索します。さらに、それらをSite24x7に送信し、インデックスを作成します。

また、 SQSを使用して、S3バケットからログを収集するように設定することも可能です。SQS権限の設定によるオーバーヘッドを避けるために、Lambda関数を使用してログ収集を行うことができます。

ログタイプの定義:

ログタイプは、アプリケーションがログを書き込む形式の定義です。異なるアプリケーション(IIS、Cassandra、Apache、MySQLなど)では、異なる形式でログを書き込む場合があります。ログタイプとして定義すると、さまざまなアプリケーションのログがグループ化されるため、容易なアクセスと、効率的な検索が可能になります。S3バケットに保存されているログのログタイプを定義したら、ログプロファイルでリスト化し、検索クエリを実行してログの管理を開始します。ログタイプの作成方法は、こちらをご覧ください。

ログプロファイルの作成

ログプロファイルを使用すると、ログタイプを特定のログソースに関連付けることができます。

ログプロファイルの作成手順は、[AppLogs] > [ログプロファイル] > [ログプロファイルの追加]へ進み、以下の項目をそれぞれ入力します:

  1. プロファイル名: ログプロファイル名を入力します。
  2. ログタイプ: プロファイルと関連付けるS3ログのログタイプを選択します。
  3. ログソース: [Amazon Lambda]を選択します。
  4. タイムゾーン: ログのタイムゾーンを選択します。
  5. [保存]をクリックします。
  6. Lambda関数の設定手順はこちらをご覧ください。

Lambda関数の設定

  • [サービス]のドロップダウンリストから[Lambda]を選択し、[関数の作成]をクリックします。スクラッチから[作成者]を選択し、関数名を入力します。また、ランタイムとして、[Python 3.7]を選択します。
  • アクセス権限: 既存のIAMロールを選択するか、AWS[ポリシーテンプレート]から新規ロールを作成します。[ポリシーテンプレート]のドロップダウンメニューから[Amazon S3 オブジェクト読み込み専用アクセス権]および[ロール名]を選択します。また、新規ユーザーロールを作成し、他のサービスにもアクセス権限を拡張できるオプションもあります。
  • トリガーの追加: スクロールダウンして[S3バケット]を選択します。S3バケットに追加されたログファイルは、Lambda関数によってSite24x7へ送られます。
  • トリガーの設定
    • バケット:ログが収集されるS3バケット名を入力します。
    • イベントタイプ: [すべてのオブジェクト作成]イベントを選択します。
    • [追加]をクリックします。
    ウィンドウが開いたら、以下のように[Lambda関数]を選択します:
  • エディターまでスクロールし、以下にあるリンクコードを入力します:
https://github.com/site24x7/applogs-aws-lambda/blob/master/s3/s3-sender.py
  • コードを入力したら、Site24x7 Webクライアントに移動し、[管理] > [Applogs] > [ログプロファイル]へ進みます。作成した[ログプロファイル]を選択し、[環境変数]フィールドに変数logtypeConfigの入力として表示されるコードをコピーします。

関連するログタイプ