AWS Lambda監視 連携

AWS Lambdaでは、コンピューターリソースのプロビジョニングや管理をすることなく、バックエンドサービスとアプリケーションをイベント駆動型機能として設定したり、需要に応じて自動的にスケールしたりできます。Site24x7のAWS Lambda連携により、重要なLambdaメトリクスや実行ログ機能を監視し、実行時間とパフォーマンスの最適化を図ります。

さらに、Lambda@EdgeLambda Extensionsを監視することもできます。

Site24x7はAWSレビュー済みLambdaサービスプログラムパートナーです。

AWS-reviewed Lambda Service Ready Program partner

設定手順

  • Site24x7をIAMユーザーとして作成するか、クロスアカウントのIAMロールとして作成し、Site24x7のAWSアカウントへのアクセスを有効にします。詳細はこちら
  • [AWSアカウント連携]ページで、[Lambda関数]リストの横にあるチェックボックスが選択されていることを確認します。詳細はこちら

ポリシーと権限

Lambda関数のディスカバリーのためにSite24x7で次の権限が必要です。詳細はこちら

  • "lambda:ListFunctions",
  • "lambda:ListTags",
  • "lambda:GetFunctionConfiguration",
  • "lambda:GetAccountSettings",
  • "logs:DescribeLogStreams",
  • "logs:GetLogEvents",
  • "lambda:GetPolicy"

実行ログ機能の収集

Site24x7では、アプリケーションコードで生成したログの収集と保管のために、以下の権限を提供します:

  • logs:Describe* : 指定したロググループのログストリームをリスト化します。
  • logs:Get* : 指定したログストリームのログイベントをリスト化します。

まずは、Lambda関数に割り当てられた実行ロールが、リクエストと関数実行ログをCloudWatchログへ公開するために必要な権限を備えているか確認します。

ポーリング間隔

Site24x7では、CloudWatch APIを5分毎にクエリし、Lambda関数のパフォーマンスメトリクスを収集します。 詳細はこちら

サポートしているパフォーマンスカウンター

属性 詳細 統計 データタイプ
呼び出し期間 イベントソースまたは外部APIリクエストに応答してコードが実行された回数です。成功または失敗した呼び出しは、このメトリクスに含まれます。 合計と平均 カウント
呼び出しエラー アプリケーションコードのエラーが原因で、Lambda関数の実行に失敗した呼び出し回数です。応答コード4XXを返す呼び出しは、このパフォーマンスカウンターに含まれます。しかし、同時実行制限の超過または内部サービスエラー(応答コード5xx)が原因で失敗した呼び出しは、これに含まれません。 合計と平均 カウント
実行期間 イベントソースからの呼び出しの結果として、サーバーレスアプリケーションコードが実行を開始してから停止するまでにかかった時間です。 合計と平均 ミリ秒
実行調整 Lambda関数呼び出しリクエストが調整された回数です。これは、関数呼び出しレートが同時実行制限を超えた際に発生します。 合計と平均 カウント
Iterator age 処理されたレコードにある各バッチの、最後のレコードの経過日数です。これは、ストリームベースの呼び出しのみに対して出力されます。 合計 カウント
デッドレターのエラー Lambdaが、失敗したイベントペイロードを設定済みのデッドレターキューに書き込むことができない場合に、増分されます。 合計 カウント
同時実行 イベント処理を行っている関数インスタンス数です。 最大
過去とのランタイム実行機関 過去のAPIリクエストと現在のランタイムAPIリクエスト間の時間です。 最大 ミリ秒
URLリクエスト数 URL関数リクエスト数です。 合計
URL 4xx数 4xx HTTPステータスコードエラーが返されたリクエスト数です。4xxエラーは、クライアントリクエストエラーがあった際に増加します。 合計
URL 5xx数 5xx HTTPステータスコードエラーが返されたリクエスト数です。
関数エラーやタイムアウトといったサーバー側の5xxエラーを受信された際に増加します。
合計
URLリクエストレイテンシー 関数URLでリクエストを受信し応答した際に要した時間です。 平均 ミリ秒

設定詳細

メタデータ 詳細
ランタイム アプリケーションコードのランタイム環境です。
ハンドラー AWS Lambdaサービスが、アプリケーションコードを実行するために呼び出す関数です。
ロールのARN 関数作成時に割り当てられたIAMロールのAmazonリソースネームです。ここで、関数の権限を定義します。
リージョン 関数が実行されるリージョンです。
Amazonリソースネーム (ARN) 関数の名前です。
詳細 ユーザー定義関数の詳細です。
バージョン アプリケーションコードのバージョンです。
最終変更日時 最後に関数が更新された時点のタイムスタンプです。
メモリサイズ 関数に設定されたメモリサイズです。
タイムアウト(秒) Lambdaサービスが関数を終了するまでにかかった時間です。
コードサイズ 圧縮されたデプロイパッケージのサイズです。
コードSHA256 関数デプロイパッケージのSHA256ハッシュです。
KMSキーのARN 関数の環境変数を暗号化する際に使用する、KMSキーのAmazonリソースネームです。
マスターのARN マスター関数のAmazonリソースネームです。
VPC ID Lambda関数に関連したVPC IDです。
セキュリティグループ Lambda関数に関連したセキュリティグループです。

関数エラーのトラブルシューティング

サーバーレスアプリケーションのSite24x7コンソールでは、以下手順にてログデータを表示します。

  • Lambda詳細ページの[最近のログ]タブでは、最近公開されたコード生成ログが表示されます。関数期間、消費されたメモリ、イベントソースおよびエラーが確認できます。
  • [エラー]メトリクスにおけるしきい値違反に関連した停止のログプリントを表示します。[停止]タブへ移動し、[エラーメトリクス違反に関する停止]を選択した後、ham-iconをクリックして[ログの表示]を選択します。

Webhookを用いたAWS Lambda関数URL連携

Webhookを使用して、複数アプリケーションにSite24x7データを接続できます。この場合、Site24x7でのステータス変更、Webhookのトリガーといった特定のイベントでHook URLが生成されます。この応答では、Lambda関数URLを使用して、HRRPリクエストを呼び出します。

Site24x7でのトリガーイベントはイベントデータを指定したAWS Lambda関数URLにポストします。これにより、重要なSite24x7アラート、インシデント、メッセージをサードパーティアプリケーションで管理できます。

CORS- クロスオリジンソース共有

クロスオリジンソース共有 (CORS)はあるURLから他のURLにリクエストを送る仕組みです。これらリクエストはシンプルかつ安全なものです。

CORSのヘッダー:

次のようにWebhookでHTTPヘッダーを追加できます。

  • Access-Control-Allow-Origin:オリジンからリクエストされたコードと応答が共有されているかを確認します。
  • Access-Control-Allow-Credentials:認証情報がTrueの際に公開されるリクエストに応答しているかを確認します。

パブリックエンドポイントAPI

Site24x7を用いて、Webhookでパブリックエンドポイントにアクセスできます。

連携レベル

Site24x7からAWS Lambda関数URLに特定の監視または全ての監視のアラートをプッシュするかの連携レベルを選択します。

  • 監視レベルの連携では特定の監視を選択してアラートを送信します。
  • タグレベルの連携では、特定のタグを選択し、そのタグに関連付けられている監視アラートを送信します。
  • 全ての監視レベルの連携ではSite24x7内の全監視のアラートを送信します。

Webhook連携についての詳細はこちら