Lambda関数を使用したS3ログの収集
S3バケットは、大量のデータを保存できるスケーラブルなコンテナーとして機能します。Site24x7はLambda関数を使用して、S3バケットに追加された新規ログを検索します。さらに、それらをSite24x7に送信し、インデックスを作成します。
また、 SQSを使用して、S3バケットからログを収集するように設定することも可能です。SQS権限の設定によるオーバーヘッドを避けるために、Lambda関数を使用してログ収集を行うことができます。
ログタイプの定義:
ログタイプは、アプリケーションがログを書き込む形式の定義です。異なるアプリケーション(IIS、Cassandra、Apache、MySQLなど)では、異なる形式でログを書き込む場合があります。ログタイプとして定義すると、さまざまなアプリケーションのログがグループ化されるため、容易なアクセスと、効率的な検索が可能になります。S3バケットに保存されているログのログタイプを定義したら、ログプロファイルでリスト化し、検索クエリを実行してログの管理を開始します。ログタイプの作成方法は、こちらをご覧ください。
ログプロファイルの作成
ログプロファイルを使用すると、ログタイプを特定のログソースに関連付けることができます。
ログプロファイルの作成手順は、[AppLogs] > [ログプロファイル] > [ログプロファイルの追加]へ進み、以下の項目をそれぞれ入力します:
- プロファイル名: ログプロファイル名を入力します。
- ログタイプ: プロファイルと関連付けるS3ログのログタイプを選択します。
- ログソース: [Amazon Lambda]を選択します。
- タイムゾーン: ログのタイムゾーンを選択します。
- [保存]をクリックします。
- 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の入力として表示されるコードをコピーします。
関連するログタイプ