Amazon Elastic Load Balancing

概要

Amazon Elastic Load Balancing は、クラウド上の複数の Amazon EC2 インスタンスに受信アプリケーション トラフィックを自動的に振り分けます。

AWS が提供する Elastic Load Balancer には、Application Load Balancer (ALB)、Classic Load Balancer (ELB)、Network Load Balancer (NLB) の 3 種類があり、Datadog はそのすべてからメトリクスとメタデータを収集します。

このインテグレーションを有効にすると、Elastic Load Balancing のすべてのメトリクスを Datadog で確認できます。

注: このインテグレーションを完全に有効にするには、’ec2:describe**’ と ’elasticloadbalancing:describe*’ の権限が必要です。

セットアップ

インストール

まだ設定していない場合は、先に Amazon Web Services インテグレーション を設定してください。

メトリクス収集

  1. AWS integration ページMetric Collection タブで、ApplicationELBELBNetworkELB が有効になっていることを確認します。
  2. Datadog - Amazon ELB インテグレーション をインストールします。

ログ収集

Amazon ELB または ALB のロギングを有効にする

ログを収集するには、まず ELB または ALB でロギングを有効にします。ALB と ELB のログは Amazon S3 バケットに書き出し、Lambda 関数で取り込めます。詳細は、Classic Load Balancer のアクセス ログを有効にする を参照してください。

Amazon ELB ログ有効化

間隔を 5 分に設定し、S3 バケットとプレフィックスを指定します。あいまいに定義された S3 イベント通知設定 を避けるため、ほかのロード バランサーのログ保存先と重ならない 一意の場所 を必ず使用してください。複数のロード バランサーが同じバケットにログを書き出す場合は、my-bucket-for-elb-logs/my-elb-name のような 一意のプレフィックス を使用して、ログが別々の場所に保存されるようにします。

Amazon ELB ログ設定

ログを Datadog に送信する

  1. まだ設定していない場合は、AWS アカウントに Datadog Forwarder Lambda 関数 を設定してください。
  2. 設定が完了したら、Datadog Forwarder Lambda 関数を開きます。ELB ログを保存している S3 バケットに対して、トリガーを 自動で または 手動で 設定します。手動で設定する場合は、イベント タイプに All object create events を使用します。
  3. Log Explorer を使ってログを確認できます。

AWS Services のログ収集について詳しくは、Datadog Lambda 関数で AWS Services Logs を送信する を参照してください。

収集データ

メトリクス

aws.applicationelb.active_connection_count
(count)
クライアントとロード バランサー間、およびロード バランサーとターゲット間でアクティブな同時 TCP 接続の総数
単位は connection
aws.applicationelb.client_tlsnegotiation_error_count
(count)
TLS ネゴシエーション エラー数
単位は error
aws.applicationelb.consumed_lcus
(gauge)
ロード バランサーで使用された Load Balancer Capacity Unit (LCU) 数
単位は unit
aws.applicationelb.grpc_request_count
(count)
IPv4 と IPv6 で処理された gRPC リクエスト数
単位は request
aws.applicationelb.healthy_host_count
(gauge)
各 Availability Zone における正常なインスタンスの平均数
単位は host
aws.applicationelb.healthy_host_count.maximum
(gauge)
各 Availability Zone における正常なインスタンスの最大数
単位は host
aws.applicationelb.healthy_host_count.minimum
(gauge)
各 Availability Zone における正常なインスタンスの最小数
単位は host
aws.applicationelb.healthy_host_count_deduped
(count)
Cross-Zone Load Balancing オプションの有効/無効にかかわらず、Availability Zone ごとの正常なインスタンス数
単位は host
aws.applicationelb.ipv_6processed_bytes
(count)
ロード バランサーが IPv6 経由で処理した総バイト数
単位は byte
aws.applicationelb.ipv_6request_count
(count)
ロード バランサーが受信した IPv6 リクエスト数
単位は request
aws.applicationelb.new_connection_count
(count)
クライアントとロード バランサー間、およびロード バランサーとターゲット間で新たに確立された TCP 接続の総数
単位は connection
aws.applicationelb.processed_bytes
(count)
ロード バランサーが IPv4 と IPv6 経由で処理した総バイト数
単位は byte
aws.applicationelb.rejected_connection_count
(count)
ロード バランサーが接続数の上限に達したために拒否された接続数
単位は connection
aws.applicationelb.request_count
(count)
受信され、登録済みインスタンスにルーティングされた完了済みリクエストの総数。HTTP 460、HTTP 400、および一部の HTTP 503 と 500 は含みません。
単位は request
aws.applicationelb.request_count_per_target
(count)
ターゲット グループ内の各ターゲットが平均して受信したリクエスト数
単位は request
aws.applicationelb.reserved_lcus
(count)
LCU Reservation によってロード バランサー用に予約された Load Balancer Capacity Unit (LCU) 数
単位は unit
aws.applicationelb.rule_evaluations
(count)
1 時間平均のリクエスト レートに基づいて、ロード バランサーが処理したルール数
aws.applicationelb.target_connection_error_count
(count)
ロード バランサーと登録済みインスタンスの間で正常に確立できなかった接続数
単位は error
aws.applicationelb.target_response_time.average
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった平均時間
単位は second
aws.applicationelb.target_response_time.maximum
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった最大時間
単位は second
aws.applicationelb.target_response_time.p50
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった時間の 50 パーセンタイル値
単位は second
aws.applicationelb.target_response_time.p90
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった時間の 90 パーセンタイル値
単位は second
aws.applicationelb.target_response_time.p95
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった時間の 95 パーセンタイル値
単位は second
aws.applicationelb.target_response_time.p99
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった時間の 99 パーセンタイル値
単位は second
aws.applicationelb.un_healthy_host_count
(gauge)
各 Availability Zone における異常なインスタンスの平均数
単位は host
aws.applicationelb.un_healthy_host_count.maximum
(gauge)
各 Availability Zone における異常なインスタンスの最大数
単位は host
aws.applicationelb.un_healthy_host_count.minimum
(gauge)
各 Availability Zone における異常なインスタンスの最小数
単位は host
aws.applicationelb.un_healthy_host_count_deduped
(count)
Cross-Zone Load Balancing オプションの有効/無効にかかわらず、Availability Zone ごとの異常なインスタンス数
単位は host
aws.elb.backend_connection_errors
(rate)
ロード バランサーと登録済みインスタンスの間で正常に確立されなかった接続数
単位は error
aws.elb.estimated_albactive_connection_count
(count)
クライアントとロード バランサー間、およびロード バランサーとターゲット間でアクティブな同時 TCP 接続の推定総数
単位は connection
aws.elb.estimated_albconsumed_lcus
(gauge)
Application Load Balancer が使用した Load Balancer Capacity Unit (LCU) の推定総数
単位は unit
aws.elb.estimated_albnew_connection_count
(count)
クライアントとロード バランサー間、およびロード バランサーとターゲット間で新たに確立された TCP 接続の推定総数
単位は connection
aws.elb.estimated_processed_bytes
(count)
Application Load Balancer が処理した総バイト数の推定値
単位は byte
aws.elb.healthy_host_count
(gauge)
各 Availability Zone における正常なインスタンスの平均数
単位は host
aws.elb.healthy_host_count.maximum
(gauge)
各 Availability Zone における正常なインスタンスの最大数
単位は host
aws.elb.healthy_host_count.minimum
(gauge)
各 Availability Zone における正常なインスタンスの最小数
単位は host
aws.elb.healthy_host_count_deduped
(gauge)
Cross-Zone Load Balancing オプションの有効/無効にかかわらず、Availability Zone ごとの正常なインスタンス数
単位は host
aws.elb.httpcode_backend_2xx
(rate)
登録済みインスタンスが返した HTTP 2XX 応答コード数
単位は response
aws.elb.httpcode_backend_3xx
(rate)
登録済みインスタンスが返した HTTP 3XX 応答コード数
単位は response
aws.elb.httpcode_backend_4xx
(rate)
登録済みインスタンスが返した HTTP 4XX 応答コード数
単位は response
aws.elb.httpcode_backend_5xx
(rate)
登録済みインスタンスが返した HTTP 5XX 応答コード数
単位は response
aws.elb.httpcode_elb_4xx
(rate)
ロード バランサーが生成した HTTP 4XX クライアント エラー コード数
単位は response
aws.elb.httpcode_elb_5_0_0
(count)
ロード バランサー側で発生した HTTP 500 エラー コード数
単位は response
aws.elb.httpcode_elb_5_0_2
(count)
ロード バランサー側で発生した HTTP 502 エラー コード数
単位は response
aws.elb.httpcode_elb_5_0_3
(count)
ロード バランサー側で発生した HTTP 503 エラー コード数
単位は response
aws.elb.httpcode_elb_5_0_4
(count)
ロード バランサー側で発生した HTTP 504 エラー コード数
単位は response
aws.elb.httpcode_elb_5xx
(rate)
ロード バランサーが生成した HTTP 5XX エラー コード数
単位は response
aws.elb.latency
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった平均時間 (ELB v1)
単位は second
aws.elb.latency.maximum
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった最大時間 (ELB v1)
単位は second
aws.elb.latency.minimum
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった最小時間 (ELB v1)
単位は second
aws.elb.latency.p95
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった時間の 95 パーセンタイル値 (ELB v1)
単位は second
aws.elb.latency.p99
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった時間の 99 パーセンタイル値 (ELB v1)
単位は second
aws.elb.request_count
(rate)
受信され、登録済みインスタンスにルーティングされた完了済みリクエストの総数
単位は request
aws.elb.spillover_count
(rate)
キューがいっぱいだったために拒否されたリクエストの総数
単位は request
aws.elb.spillover_count.maximum
(rate)
ロード バランサー ノードごとに、キューがいっぱいだったために拒否されたリクエストの最大数
単位は request
aws.elb.surge_queue_length
(gauge)
登録済みインスタンスへの送信待ちとなっているリクエストの最大数
単位は request
aws.elb.un_healthy_host_count
(gauge)
各 Availability Zone における異常なインスタンスの平均数
単位は host
aws.elb.un_healthy_host_count.maximum
(gauge)
各 Availability Zone における異常なインスタンスの最大数
単位は host
aws.elb.un_healthy_host_count.minimum
(gauge)
各 Availability Zone における異常なインスタンスの最小数
単位は host
aws.elb.un_healthy_host_count_deduped
(gauge)
Cross-Zone Load Balancing オプションの有効/無効にかかわらず、Availability Zone ごとの異常なインスタンス数
単位は host
aws.networkelb.active_flow_count
(gauge)
クライアントからターゲットへの確立済みアクティブ接続の平均数
単位は connection
aws.networkelb.active_flow_count.maximum
(gauge)
クライアントからターゲットへの確立済みアクティブ接続の最大数
単位は connection
aws.networkelb.active_flow_count.minimum
(gauge)
クライアントからターゲットへの確立済みアクティブ接続の最小数
単位は connection
aws.networkelb.active_flow_count_tcp
(count)
クライアントからターゲットへの同時 TCP フロー (または接続) の平均数
単位は connection
aws.networkelb.active_flow_count_tls
(count)
クライアントからターゲットへの同時 TLS フロー (または接続) の平均数
単位は connection
aws.networkelb.active_flow_count_udp
(count)
クライアントからターゲットへの同時 UDP フロー (または接続) の平均数
単位は connection
aws.networkelb.client_tlsnegotiation_error_count
(count)
クライアントと TLS リスナーの間で、ネゴシエーション中に失敗した TLS ハンドシェイクの総数
単位は error
aws.networkelb.consumed_lcus
(count)
ロード バランサーが使用した LCU 数
単位は unit
aws.networkelb.consumed_lcus_tcp
(count)
ロード バランサーが TCP に使用した LCU 数
単位は unit
aws.networkelb.consumed_lcus_tls
(count)
ロード バランサーが TLS に使用した LCU 数
単位は unit
aws.networkelb.consumed_lcus_udp
(count)
ロード バランサーが UDP に使用した LCU 数
単位は unit
aws.networkelb.healthy_host_count
(gauge)
正常なターゲットの平均数
単位は host
aws.networkelb.healthy_host_count.maximum
(gauge)
正常なターゲットの最大数
単位は host
aws.networkelb.healthy_host_count.minimum
(gauge)
正常なターゲットの最小数
単位は host
aws.networkelb.new_flow_count
(count)
クライアントからターゲットへの新規 TCP 接続数
単位は connection
aws.networkelb.new_flow_count_tcp
(count)
対象期間中にクライアントからターゲットへ新たに確立された TCP フロー (または接続) の総数
単位は connection
aws.networkelb.new_flow_count_tls
(count)
対象期間中にクライアントからターゲットへ新たに確立された TLS フロー (または接続) の総数
単位は connection
aws.networkelb.new_flow_count_udp
(count)
対象期間中にクライアントからターゲットへ新たに確立された UDP フロー (または接続) の総数
単位は connection
aws.networkelb.peak_packets_per_second
(gauge)
対象期間内の 6 つの 10 秒測定ウィンドウで記録された、平均パケット レートの最大値
単位は packet
aws.networkelb.port_allocation_error_count
(count)
クライアント IP 変換処理中に発生したエフェメラル ポート割り当てエラーの総数
単位は error
aws.networkelb.processed_bytes
(count)
TCP/IP ヘッダーを含め、ロード バランサーが処理した総バイト数
単位は byte
aws.networkelb.processed_bytes_tcp
(count)
TCP リスナーが処理した総バイト数
単位は byte
aws.networkelb.processed_bytes_tls
(count)
TLS リスナーが処理した総バイト数
単位は byte
aws.networkelb.processed_bytes_udp
(count)
UDP リスナーが処理した総バイト数
単位は byte
aws.networkelb.processed_packets
(count)
ロード バランサーが処理したパケットの総数
単位は packet
aws.networkelb.reserved_lcus
(count)
LCU Reservation を使ってロード バランサー用に予約された Load Balancer Capacity Unit (LCU) 数
単位は unit
aws.networkelb.target_tlsnegotiation_error_count
(count)
TLS リスナーとターゲットの間で、ネゴシエーション中に失敗した TLS ハンドシェイクの総数
単位は error
aws.networkelb.tcpclient_reset_count
(count)
クライアントが生成してターゲットに送信したリセット (RST) パケット数
単位は packet
aws.networkelb.tcpelbreset_count
(count)
ロード バランサーが生成したリセット (RST) パケット数
単位は packet
aws.networkelb.tcptarget_reset_count
(count)
ターゲットが生成してクライアントに送信したリセット (RST) パケット数
単位は packet
aws.networkelb.un_healthy_host_count
(gauge)
異常なターゲットの平均数
単位は host
aws.networkelb.un_healthy_host_count.maximum
(gauge)
異常なターゲットの最大数
単位は host
aws.networkelb.un_healthy_host_count.minimum
(gauge)
異常なターゲットの最小数
単位は host
aws.applicationelb.desync_mitigation_mode_non_compliant_request
(count)
RFC 7230 に準拠していないリクエスト数
単位は request
aws.applicationelb.elb_auth_error
(count)
認証アクションの設定不備、ロード バランサーが IdP との接続を確立できなかったこと、または内部エラーにより認証フローを完了できなかったことが原因で、完了しなかったユーザー認証数
単位は error
aws.applicationelb.elb_auth_failure
(count)
IdP がユーザーのアクセスを拒否したか、認可コードが複数回使われたために完了しなかったユーザー認証数
単位は error
aws.applicationelb.elb_auth_latency
(gauge)
ID トークンとユーザー情報を取得するために IdP へ問い合わせるのにかかった時間。これらの処理のいずれかが失敗した場合は、失敗するまでに要した時間です。
単位は millisecond
aws.applicationelb.elb_auth_refresh_token_success
(count)
IdP から提供されたリフレッシュ トークンを使って、ロード バランサーがユーザー クレームを正常に更新できた回数
単位は success
aws.applicationelb.elb_auth_success
(count)
正常に完了した認証アクション数
単位は success
aws.applicationelb.elb_authuser_claims_size_exceeded
(count)
設定された IdP が返したユーザー クレームのサイズが 11K byte を超えた回数
aws.applicationelb.httpcode_elb_3xx
(count)
ロード バランサー側で発生した HTTP 3XX リダイレクト コード数
単位は response
aws.applicationelb.httpcode_elb_4xx
(count)
ロード バランサーが生成した HTTP 4XX クライアント エラー コード数
単位は response
aws.applicationelb.httpcode_elb_5_0_0
(count)
ロード バランサー側で発生した HTTP 500 エラー コード数
単位は response
aws.applicationelb.httpcode_elb_5_0_2
(count)
ロード バランサー側で発生した HTTP 502 エラー コード数
単位は response
aws.applicationelb.httpcode_elb_5_0_3
(count)
ロード バランサー側で発生した HTTP 503 エラー コード数
単位は response
aws.applicationelb.httpcode_elb_5_0_4
(count)
ロード バランサー側で発生した HTTP 504 エラー コード数
単位は response
aws.applicationelb.httpcode_elb_5xx
(count)
ロード バランサーが生成した HTTP 5XX エラー コード数
単位は response
aws.applicationelb.httpcode_redirect
(count)
正常に実行されたリダイレクト アクション数
単位は response
aws.applicationelb.httpcode_target_2xx
(count)
登録済みインスタンスが返した HTTP 2XX 応答コード数
単位は response
aws.applicationelb.httpcode_target_3xx
(count)
登録済みインスタンスが返した HTTP 3XX 応答コード数
単位は response
aws.applicationelb.httpcode_target_4xx
(count)
登録済みインスタンスが返した HTTP 4XX 応答コード数
単位は response
aws.applicationelb.httpcode_target_5xx
(count)
登録済みインスタンスが返した HTTP 5XX 応答コード数
単位は response
aws.applicationelb.httpfixed_response
(count)
正常に実行された fixed-response アクション数
単位は response
aws.applicationelb.httpredirect
(count)
正常に実行されたリダイレクト アクション数
aws.applicationelb.httpredirect_url_limit_exceeded
(count)
レスポンスの location ヘッダー内の URL が 8K を超えたために完了できなかったリダイレクト アクション数
aws.applicationelb.lambda_internal_error
(count)
ロード バランサーまたは AWS Lambda の内部的な問題が原因で失敗した Lambda 関数へのリクエスト数
単位は request
aws.applicationelb.lambda_target_processed_bytes
(gauge)
Lambda 関数へのリクエストおよびレスポンスについて、ロード バランサーが処理した総バイト数
単位は byte
aws.applicationelb.lambda_user_error
(count)
Lambda 関数側の問題が原因で失敗した Lambda 関数へのリクエスト数
単位は request
aws.applicationelb.non_sticky_request_count
(count)
既存のスティッキー セッションを利用できず、ロード バランサーが新しいターゲットを選択したリクエスト数
単位は request
aws.applicationelb.target_tlsnegotiation_error_count
(count)
ロード バランサーが開始した TLS 接続のうち、ターゲットとのセッションを確立できなかった数
単位は connection
aws.elb.active_connection_count
(count)
クライアントとロード バランサー間、およびロード バランサーとターゲット間でアクティブな同時 TCP 接続の総数
単位は connection
aws.elb.client_tlsnegotiation_error_count
(count)
TLS ネゴシエーション エラー数
単位は error
aws.elb.consumed_lbcapacity_units
(gauge)
消費された ELB capacity unit 数
単位は unit
aws.elb.consumed_lcus
(gauge)
ロード バランサーで使用された Load Balancer Capacity Unit (LCU) 数
単位は unit
aws.elb.httpcode_redirect
(count)
正常に実行されたリダイレクト アクション数
単位は response
aws.elb.httpcode_target_2xx
(count)
ターゲットが返した HTTP 2XX 応答コード数
単位は response
aws.elb.httpcode_target_3xx
(count)
ターゲットが返した HTTP 3XX 応答コード数
単位は response
aws.elb.httpcode_target_4xx
(count)
ターゲットが返した HTTP 4XX 応答コード数
単位は response
aws.elb.httpcode_target_5xx
(count)
ターゲットが返した HTTP 5XX 応答コード数
単位は response
aws.elb.ipv_6processed_bytes
(count)
ロード バランサーが IPv6 経由で処理した総バイト数
単位は byte
aws.elb.ipv_6request_count
(count)
ロード バランサーが受信した IPv6 リクエスト数
単位は request
aws.elb.new_connection_count
(count)
クライアントとロード バランサー間、およびロード バランサーとターゲット間で新たに確立された TCP 接続の総数
単位は connection
aws.elb.processed_bytes
(count)
ロード バランサーが IPv4 と IPv6 経由で処理した総バイト数
単位は byte
aws.elb.request_count_per_target
(count)
ターゲット グループ内の各ターゲットが平均して受信したリクエスト数
単位は request
aws.elb.rule_evaluations
(count)
1 時間平均のリクエスト レートに基づいて、ロード バランサーが処理したルール数
aws.elb.target_connection_error_count
(count)
ロード バランサーと登録済みインスタンスの間で正常に確立されなかった接続数
単位は error
aws.elb.target_response_time.average
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった平均時間。aws.applicationelb.target_response_time.average と同じです。
単位は second
aws.elb.target_response_time.maximum
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった最大時間。aws.applicationelb.target_response_time.maximum と同じです。
単位は second
aws.elb.target_response_time.p95
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった時間の 95 パーセンタイル値。aws.applicationelb.target_response_time.p95 と同じです。
単位は second
aws.elb.target_response_time.p99
(gauge)
リクエストがロード バランサーを離れてから応答を受信するまでにかかった時間の 99 パーセンタイル値。aws.applicationelb.target_response_time.p99 と同じです。
単位は second

イベント

Amazon Elastic Load Balancing インテグレーションにはイベントは含まれません。

サービス チェック

Amazon Elastic Load Balancing インテグレーションにはサービス チェックは含まれません。

トラブルシューティング

サポートが必要な場合は、Datadog サポート にお問い合わせください。