AWS ELB¶
スクリプトマーケットの「Guanceクラウド同期」シリーズのスクリプトパッケージを使って、クラウド監視とクラウド資産のデータをGuanceに同期します
設定¶
Func のインストール¶
Guance連携 - 拡張 - ホスト版 Func の有効化を推奨します。必要な前提条件はすべて自動でインストールされますので、そのままスクリプトをインストールしてください。
Func を自前でデプロイする場合はFunc を自前でデプロイするを参照してください。
スクリプトのインストール¶
ヒント: 要件を満たす Amazon AK を事前に準備してください(手短に済ませるなら、グローバル読み取り専用権限
ReadOnlyAccessを直接付与してかまいません)
ホスト版のスクリプト有効化¶
- Guance コンソールにログインします
- 【連携】メニューをクリックし、【クラウドアカウント管理】を選択します
- 【クラウドアカウントの追加】をクリックし、【AWS】を選択して画面に必要な情報を入力します。すでにクラウドアカウント情報を設定済みの場合は、この手順は不要です
- 【テスト】をクリックし、成功したら【保存】をクリックします。テストに失敗した場合は、関連する設定が正しいか確認して再度テストしてください
- 【クラウドアカウント管理】の一覧で追加済みのクラウドアカウントを確認できます。該当のクラウドアカウントをクリックして詳細ページに入ります
- クラウドアカウント詳細ページの【連携】ボタンをクリックし、
未インストールリストからAWS ELBを見つけて【インストール】をクリックし、表示されたインストール画面でインストールします。
手動でのスクリプト有効化¶
-
Func コンソールにログインし、【スクリプトマーケット】をクリックして Guance スクリプトマーケットに入り、
integration_aws_elb, integration_aws_applicationelb, integration_aws_networkelb, integration_aws_gatewayelbを検索します -
【インストール】をクリックし、対応するパラメータとして AWS AK ID、AK Secret、アカウント名を入力します。
-
【起動スクリプトをデプロイ】をクリックすると、システムが
Startupスクリプトセットを自動作成し、対応する起動スクリプトを自動設定します。 -
有効化後は「管理 / 自動トリガー設定」で対応する自動トリガー設定を確認できます。【実行】をクリックすると、定期実行を待たずにすぐ 1 回実行できます。しばらくしてから、実行タスク履歴と対応するログを確認できます。
検証¶
- 「管理 / 自動トリガー設定」で、対象タスクに対応する自動トリガー設定が存在するか確認し、あわせて対応するタスク履歴とログを確認して異常がないかチェックします
- Guance の「インフラストラクチャ / カスタム」で資産情報が存在するか確認します
- Guance の「メトリクス」で対応する監視データがあるか確認します
メトリクス¶
Amazon CloudWatch を設定すると、デフォルトのメトリクスセットは次のとおりです。設定により、さらに多くのメトリクスを収集できます:
Amazon CloudWatch Application Load Balancer メトリクス詳細
Amazon CloudWatch Network Load Balancer メトリクス詳細
Amazon CloudWatch Gateway Load Balancer メトリクス詳細
Amazon CloudWatch Classic Load Balancer メトリクス詳細
Application Load Balancer のメトリクス¶
| メトリクス | 説明 |
|---|---|
ActiveConnectionCount |
クライアントからロードバランサー、そしてロードバランサーからターゲットへの同時 TCP アクティブ接続の総数。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
ClientTLSNegotiationErrorCount |
TLS エラーによりロードバランサーとのセッションを確立できなかったクライアントによって開始された TLS 接続数。原因としては、暗号スイートまたはプロトコルの不一致、あるいはサーバー証明書を検証できずにクライアントが接続を切断したことなどがあります。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
ConsumedLCUs |
ロードバランサーが使用したロードバランサー容量単位(LCU)の数です。1 時間あたりの LCU 使用量に対して課金されます。詳細は Elastic Load Balancing の料金 を参照してください。報告基準:常に報告します。統計:すべて。ディメンション LoadBalancer |
DesyncMitigationMode_NonCompliant_Request_Count |
RFC 7230 に準拠しないリクエスト数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
DroppedInvalidHeaderRequestCount |
ルーティング前にロードバランサーが無効なヘッダーフィールドを含む HTTP ヘッダーを削除したリクエスト数です。routing.http.drop_invalid_header_fields.enabled 属性が true に設定されている場合にのみ、これらのヘッダーは削除されます。報告基準:非ゼロ値を報告します。統計:すべて。ディメンション AvailabilityZone, LoadBalancer |
ForwardedInvalidHeaderRequestCount |
ロードバランサーによってルーティングされた、無効な HTTP ヘッダーフィールドを含む HTTP ヘッダーのリクエスト数です。routing.http.drop_invalid_header_fields.enabled 属性が false の場合にのみ、これらのヘッダーを含むリクエストが転送されます。報告基準:常に報告します。統計:すべて。ディメンション AvailabilityZone, LoadBalancer |
GrpcRequestCount |
IPv4 と IPv6 で処理された gRPC リクエスト数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。Minimum、Maximum、Average はすべて 1 を返します。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
HTTP_Fixed_Response_Count |
固定応答の成功回数です。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
HTTP_Redirect_Count |
リダイレクト操作の成功回数です。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
HTTP_Redirect_Url_Limit_Exceeded_Count |
レスポンスの Location ヘッダー内の URL が 8K を超えたために完了できなかったリダイレクト操作数です。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
HTTPCode_ELB_3XX_Count |
ロードバランサー起点の HTTP 3XX リダイレクトコード数です。このカウントにはターゲットが生成したレスポンスコードは含まれません。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
HTTPCode_ELB_4XX_Count |
ロードバランサー起点の HTTP 4XX クライアントエラーコード数です。このカウントにはターゲットが生成したレスポンスコードは含まれません。リクエストが不正または不完全な場合にクライアントエラーが生成されます。ロードバランサーが HTTP 460 エラーコード を返す場合を除き、ターゲットはこれらのリクエストを受信しません。このカウントにはターゲットが生成したいかなるレスポンスコードも含まれません。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。Minimum、Maximum、Average はすべて 1 を返します。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
HTTPCode_ELB_5XX_Count |
ロードバランサー起点の HTTP 5XX サーバーエラーコード数です。このカウントにはターゲットが生成したレスポンスコードは含まれません。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。Minimum、Maximum、Average はすべて 1 を返します。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
HTTPCode_ELB_500_Count |
ロードバランサー起点の HTTP 500 エラーコード数です。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
HTTPCode_ELB_502_Count |
ロードバランサー起点の HTTP 502 エラーコード数です。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
HTTPCode_ELB_503_Count |
ロードバランサー起点の HTTP 503 エラーコード数です。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
HTTPCode_ELB_504_Count |
ロードバランサー起点の HTTP 504 エラーコード数です。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
IPv6ProcessedBytes |
ロードバランサーが IPv6 経由で処理した総バイト数です。このカウントは ProcessedBytes に含まれます。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
IPv6RequestCount |
ロードバランサーが受信した IPv6 リクエスト数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。Minimum、Maximum、Average はすべて 1 を返します。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
NewConnectionCount |
クライアントからロードバランサー、そしてロードバランサーからターゲットへの新規 TCP 接続数の総数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
NonStickyRequestCount |
既存のスティッキーセッションを利用できず、ロードバランサーが新しいターゲットを選択したリクエスト数です。たとえば、新規クライアントからの最初のリクエストでスティッキー Cookie が提供されない場合、スティッキー Cookie はあるがこのターゲットグループに登録されたターゲットが指定されていない場合、スティッキー Cookie の形式が不正または期限切れの場合、あるいは内部エラーによりロードバランサーがスティッキー Cookie を読み取れない場合などです。報告基準:ターゲットグループでスティッキーが有効。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
ProcessedBytes |
ロードバランサーが IPv4 と IPv6 で処理した総バイト数(HTTP ヘッダーと HTTP ペイロード)です。このカウントには、クライアントと Lambda 関数との間のトラフィック、およびユーザー認証が有効な場合の ID プロバイダー(IdP)からのトラフィックが含まれます。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
RejectedConnectionCount |
ロードバランサーが接続数上限に達したために拒否された接続数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
RequestCount |
IPv4 と IPv6 で処理されたリクエスト数です。このメトリクスは、ロードバランサーノードがターゲットを選択できるリクエストでのみ増加します。ターゲット選択前に拒否されたリクエストはこのメトリクスに反映されません。報告基準:常に報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer``AvailabilityZone, TargetGroup, LoadBalancer |
RuleEvaluations |
1 時間あたりの平均リクエストレートを前提に、ロードバランサーが処理したルール数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer |
AWS/ApplicationELB 名前空間には、ターゲットの以下のメトリクスが含まれます。
| メトリクス | 説明 |
|---|---|
HealthyHostCount |
正常稼働中と見なされるターゲット数です。報告基準:ヘルスチェックが有効な場合に報告します。統計:最も有用なのは Average、Minimum、Maximum です。ディメンション TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer``AvailabilityZone, TargetGroup, LoadBalancer |
HTTPCode_Target_2XX_Count, HTTPCode_Target_3XX_Count, HTTPCode_Target_4XX_Count, HTTPCode_Target_5XX_Count |
ターゲットが生成した HTTP レスポンスコード数です。ロードバランサーが生成したレスポンスコードは含まれません。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。Minimum、Maximum、Average はすべて 1 を返します。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer``TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer |
RequestCountPerTarget |
ターゲットグループ内の各ターゲットが受信した平均リクエスト数です。TargetGroup ディメンションでターゲットグループを指定する必要があります。ターゲットが Lambda 関数の場合、このメトリクスは適用されません。報告基準:常に報告します。統計:唯一有効なのは Sum です。これは合計ではなく平均を表します。ディメンション TargetGroup``AvailabilityZone, TargetGroup, LoadBalancer |
TargetConnectionErrorCount |
ロードバランサーとターゲット間の接続確立に失敗した回数です。ターゲットが Lambda 関数の場合、このメトリクスは適用されません。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer``TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer |
TargetResponseTime |
リクエストがロードバランサーを離れてからターゲットからのレスポンスを受信するまでの所要時間(秒)です。アクセスログの target_processing_time フィールドと同等です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Average と pNN.NN(パーセンタイル)です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer``TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer |
TargetTLSNegotiationErrorCount |
ターゲットとのセッションを確立できなかったロードバランサー起点の TLS 接続数です。原因としては、暗号スイートまたはプロトコルの不一致などがあります。ターゲットが Lambda 関数の場合、このメトリクスは適用されません。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer``TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer |
UnHealthyHostCount |
正常稼働中ではないと見なされるターゲット数です。報告基準:ヘルスチェックが有効な場合に報告します。統計:最も有用なのは Average、Minimum、Maximum です。ディメンション TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer``AvailabilityZone, TargetGroup, LoadBalancer |
AWS/ApplicationELB 名前空間には、ターゲットグループのヘルスに関する以下のメトリクスが含まれます。詳細はターゲットグループのヘルスを参照してください。
| メトリクス | 説明 |
|---|---|
HealthyStateDNS |
DNS の正常状態要件を満たすアベイラビリティゾーンの数です。統計:最も有用なのは Min です。ディメンション LoadBalancer, TargetGroup``AvailabilityZone, LoadBalancer, TargetGroup |
HealthyStateRouting |
ルーティングの正常状態要件を満たすアベイラビリティゾーンの数です。統計:最も有用なのは Min です。ディメンション LoadBalancer, TargetGroup``AvailabilityZone, LoadBalancer, TargetGroup |
UnhealthyRoutingRequestCount |
ルーティングのフェイルオーバー操作(フェイルオープン)を使ってルーティングされたリクエスト数です。統計:最も有用なのは Sum です。ディメンション LoadBalancer, TargetGroup``AvailabilityZone, LoadBalancer, TargetGroup |
UnhealthyStateDNS |
DNS の正常状態要件を満たさないため、DNS 上で異常とマークされたアベイラビリティゾーンの数です。統計:最も有用なのは Min です。ディメンション LoadBalancer, TargetGroup``AvailabilityZone, LoadBalancer, TargetGroup |
UnhealthyStateRouting |
ルーティングの正常状態要件を満たさないため、ロードバランサーがゾーン内のすべてのターゲット(異常ターゲットを含む)へトラフィックを配信するアベイラビリティゾーンの数です。統計:最も有用なのは Min です。ディメンション LoadBalancer, TargetGroup``AvailabilityZone, LoadBalancer, TargetGroup |
AWS/ApplicationELB 名前空間には、登録済みターゲットが Lambda 関数である場合の以下のメトリクスが含まれます。
| メトリクス | 説明 |
|---|---|
LambdaInternalError |
ロードバランサーまたは AWS Lambda の内部問題により失敗した Lambda 関数へのリクエスト数です。エラー原因コードを取得するには、アクセスログの error_reason フィールドを確認してください。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション TargetGroup``TargetGroup, LoadBalancer |
LambdaTargetProcessedBytes |
ロードバランサーが Lambda 関数へのリクエストと、その関数からのレスポンスに対して処理したバイト数の総量です。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer |
LambdaUserError |
Lambda 関数の問題により失敗した Lambda 関数へのリクエスト数です。たとえば、ロードバランサーにその関数を呼び出す権限がない場合、ロードバランサーが不正な形式または必須フィールド欠落の JSON を関数から受信した場合、あるいはリクエスト本文またはレスポンスのサイズが 1 MB の最大サイズを超えた場合などです。エラー原因コードを取得するには、アクセスログの error_reason フィールドを確認してください。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション TargetGroup``TargetGroup, LoadBalancer |
AWS/ApplicationELB 名前空間には、ユーザー認証に関する以下のメトリクスが含まれます。
| メトリクス | 説明 |
|---|---|
ELBAuthError |
認証操作の設定ミス、ロードバランサーが IdP と接続できない、または内部エラーによりロードバランサーが認証フローを完了できないことによって、ユーザー認証を完了できなかった回数です。エラー原因コードを取得するには、アクセスログの error_reason フィールドを確認してください。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
ELBAuthFailure |
IdP がユーザーのアクセスを拒否したこと、または認可コードの再利用により、ユーザー認証を完了できなかった回数です。エラー原因コードを取得するには、アクセスログの error_reason フィールドを確認してください。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
ELBAuthLatency |
IdP に対して ID トークンとユーザー情報を問い合わせるのに要した時間(ミリ秒)です。これらの操作のうち 1 つ以上が失敗した場合は、失敗時刻を示します。報告基準:非ゼロ値を報告します。統計:すべての統計が有効です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
ELBAuthRefreshTokenSuccess |
ロードバランサーが IdP から提供されたリフレッシュトークンを使用してユーザーのクレーム更新に成功した回数です。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
ELBAuthSuccess |
認証操作の成功回数です。ロードバランサーが IdP からユーザーの認証クレームを取得すると、このメトリクスは認証ワークフローの終了時に増加します。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
ELBAuthUserClaimsSizeExceeded |
設定された IdP が 11K バイトを超えるサイズのユーザークレームを返した回数です。報告基準:非ゼロ値を報告します。統計:唯一意味があるのは Sum です。ディメンション LoadBalancer``AvailabilityZone, LoadBalancer |
Network Load Balancer のメトリクス¶
| メトリクス | 説明 |
|---|---|
ActiveFlowCount |
クライアントからターゲットへの同時フロー(または接続)の総数です。このメトリクスには SYN_SENT と ESTABLISHED 状態の接続が含まれます。TCP 接続はロードバランサー上で終端されないため、ターゲットへの TCP 接続を開いているクライアントは 1 つのフローとして数えられます。報告基準:常に報告します。統計:最も有用なのは Average、Maximum、Minimum です。ディメンション:LoadBalancer``AvailabilityZone, LoadBalancer |
ActiveFlowCount_TCP |
クライアントからターゲットへの同時 TCP フロー(または接続)の総数です。このメトリクスには SYN_SENT と ESTABLISHED 状態の接続が含まれます。TCP 接続はロードバランサー上で終端されないため、ターゲットへの TCP 接続を開いているクライアントは 1 つのフローとして数えられます。報告基準:非ゼロ値を報告します。統計:最も有用なのは Average、Maximum、Minimum です。ディメンション:LoadBalancer,AvailabilityZone LoadBalancer |
ConsumedLCUs |
ロードバランサーが使用したロードバランサー容量単位(LCU)の数です。1 時間あたりの LCU 使用量に対して課金されます。報告基準:常に報告します。統計:すべて。ディメンション:LoadBalancer |
ConsumedLCUs_TCP |
ロードバランサーが TCP に使用したロードバランサー容量単位(LCU)の数です。1 時間あたりの LCU 使用量に対して課金されます。報告基準:非ゼロ値を報告します。統計:すべて。ディメンション:LoadBalancer |
NewFlowCount |
期間内に確立された、クライアントからターゲットへの新規フロー(または接続)の総数です。報告基準:常に報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer,AvailabilityZone LoadBalancer |
NewFlowCount_TCP |
期間内に確立された、クライアントからターゲットへの新規 TCP フロー(または接続)の総数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer,AvailabilityZone LoadBalancer |
PeakPacketsPerSecond |
サンプリングウィンドウ中に 10 秒ごとに計算される、最も高い平均パケットレート(1 秒あたりに処理されるパケット数)です。このメトリクスにはヘルスチェックトラフィックが含まれます。報告基準:非ゼロ値を報告します。統計:最も有用なのは Maximum です。ディメンション:LoadBalancer,AvailabilityZone LoadBalancer |
ProcessedBytes |
TCP/IP ヘッダーを含む、ロードバランサーが処理した総バイト数です。このカウントにはターゲットとの往復トラフィックが含まれ、ヘルスチェックトラフィックは差し引かれます。報告基準:常に報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer,AvailabilityZone LoadBalancer |
ProcessedBytes_TCP |
TCP リスナーが処理したバイト数の総量です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer,AvailabilityZone LoadBalancer |
ProcessedPackets |
ロードバランサーが処理した総パケット数です。このカウントにはターゲットとの往復トラフィックとヘルスチェックトラフィックが含まれます。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer,AvailabilityZone LoadBalancer |
TCP_Client_Reset_Count |
クライアントからターゲットへ送信されたリセット(RST)パケットの総数です。これらのリセットはクライアントによって生成され、その後ロードバランサーによって転送されます。報告基準:常に報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer,AvailabilityZone LoadBalancer |
TCP_ELB_Reset_Count |
ロードバランサーによって生成されたリセット(RST)パケットの総数です。報告基準:常に報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer,AvailabilityZone LoadBalancer |
TCP_Target_Reset_Count |
ターゲットからクライアントへ送信されたリセット(RST)パケットの総数です。これらのリセットはターゲットによって生成され、その後ロードバランサーによって転送されます。報告基準:常に報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer,AvailabilityZone LoadBalancer |
UnhealthyRoutingFlowCount |
ルーティングのフェイルオーバー操作(フェイルオープン)を使ってルーティングされたフロー(または接続)の数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer,AvailabilityZone LoadBalancer |
Gateway Load Balancer のメトリクス¶
| メトリクス | 説明 |
|---|---|
ActiveFlowCount |
クライアントからターゲットへの同時フロー(または接続)の総数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Average、Maximum、Minimum です。ディメンション:LoadBalancer``AvailabilityZone, LoadBalancer |
ConsumedLCUs |
ロードバランサーが使用したロードバランサー容量単位(LCU)の数です。1 時間あたりの LCU 使用量に対して課金されます。報告基準:常に報告します。統計:すべて。ディメンション:LoadBalancer |
HealthyHostCount |
正常稼働中と見なされるターゲット数です。報告基準:ヘルスチェックが有効な場合に報告します。統計:最も有用なのは Maximum と Minimum です。ディメンション:LoadBalancer``TargetGroup,AvailabilityZone``LoadBalancer``TargetGroup |
NewFlowCount |
期間内に確立された、クライアントからターゲットへの新規フロー(または接続)の総数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer``AvailabilityZone, LoadBalancer |
ProcessedBytes |
ロードバランサーが処理した総バイト数です。このカウントにはターゲットとの往復トラフィックは含まれますが、ヘルスチェックトラフィックは含まれません。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer``AvailabilityZone, LoadBalancer |
UnHealthyHostCount |
正常稼働中ではないと見なされるターゲット数です。報告基準:ヘルスチェックが有効な場合に報告します。統計:最も有用なのは Maximum と Minimum です。ディメンション:LoadBalancer``TargetGroup,AvailabilityZone``LoadBalancer``TargetGroup |
Classic Load Balancer のメトリクス¶
| メトリクス | 説明 |
|---|---|
BackendConnectionErrors |
ロードバランサーと登録済みインスタンス間の接続確立に失敗した回数です。ロードバランサーはエラー時に接続を再試行するため、このカウントはリクエストレートを超える場合があります。このカウントにはヘルスチェックに関連するすべての接続エラーも含まれます。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。Average、Minimum、Maximum は各ロードバランサーノードごとに報告されるため、通常はあまり役に立ちません。ただし、最小値と最大値(またはピーク対平均、平均対ボトム)の差は、ロードバランサーノードに異常があるかどうかを判断するのに使えます。例:たとえば、ロードバランサーが us-west-2a と us-west-2b にそれぞれ 2 インスタンスずつ持ち、us-west-2a の 1 インスタンスへの接続試行でバックエンド接続エラーが発生したとします。us-west-2a の sum 値にはこれらの接続エラーが含まれ、us-west-2b の sum 値には含まれません。そのため、ロードバランサー全体の sum 値は us-west-2a の sum 値と同じになります。 |
DesyncMitigationMode_NonCompliant_Request_Count |
[HTTP リスナー] RFC 7230 に準拠しないリクエスト数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。ディメンション:LoadBalancer``AvailabilityZone, LoadBalancer |
HealthyHostCount |
ロードバランサーに登録されている正常なインスタンス数です。新規登録されたインスタンスは、最初のヘルスチェックに合格すると正常と見なされます。クロスゾーン負荷分散が有効な場合、LoadBalancerName ディメンションの正常インスタンス数はすべてのアベイラビリティゾーンをまたいで計算されます。無効の場合は、アベイラビリティゾーンごとに計算されます。報告基準:登録済みインスタンスがあること。統計:最も有用なのは Average と Maximum です。これらの統計はロードバランサーノードによって決まります。一部のロードバランサーノードが一時的に特定のインスタンスを異常と見なしていても、他のノードは正常と見なす場合があります。例:たとえば、ロードバランサーが us-west-2a と us-west-2b にそれぞれ 2 インスタンスずつ持ち、us-west-2a の 1 インスタンスが異常で us-west-2b には異常インスタンスがない場合、AvailabilityZone ディメンションでは us-west-2a の平均は正常 1、異常 1、us-west-2b の平均は正常 2、異常 0 になります。 |
HTTPCode_Backend_2XX, HTTPCode_Backend_3XX, HTTPCode_Backend_4XX, HTTPCode_Backend_5XX |
[HTTP リスナー] 登録済みインスタンスが生成した HTTP レスポンスコード数です。ロードバランサーが生成したレスポンスコードは含まれません。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。Minimum、Maximum、Average はすべて 1 になります。例:たとえば、ロードバランサーが us-west-2a と us-west-2b にそれぞれ 2 インスタンスずつ持ち、us-west-2a の 1 インスタンスに送られたリクエストで HTTP 500 レスポンスが発生したとします。us-west-2a の sum 値にはこれらのエラーレスポンスが含まれ、us-west-2b の sum 値には含まれません。そのため、ロードバランサー全体の sum 値は us-west-2a の sum 値と同じになります。 |
HTTPCode_ELB_4XX |
[HTTP リスナー] ロードバランサーが生成した HTTP 4XX クライアントエラーコード数です。リクエストが不正または不完全な場合にクライアントエラーが生成されます。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。Minimum、Maximum、Average はすべて 1 になります。例:たとえば、ロードバランサーが us-west-2a と us-west-2b で有効になっており、クライアントのリクエストに不正な Request URL が含まれていた場合、すべてのアベイラビリティゾーンでクライアントエラーが増加する可能性があります。ロードバランサーの sum 値は各アベイラビリティゾーンの値の合計です。 |
HTTPCode_ELB_5XX |
[HTTP リスナー] ロードバランサーが生成した HTTP 5XX サーバーエラーコード数です。このカウントには登録済みインスタンスが生成したレスポンスコードは含まれません。正常なインスタンスがロードバランサーに登録されていない場合、またはリクエストレートがインスタンスやロードバランサーの容量を超えた場合(スパイルオーバー)に、このメトリクスが報告されます。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。Minimum、Maximum、Average はすべて 1 になります。例:たとえば、ロードバランサーが us-west-2a と us-west-2b で有効になっており、us-west-2a のインスタンスのレイテンシが高く、リクエストへの応答が遅い場合、結果として us-west-2a のロードバランサーノードのスパイクキューがいっぱいになり、クライアントに 503 エラーが返されます。us-west-2b が引き続き正常に応答する場合、ロードバランサーの sum 値は us-west-2a の sum 値と同じになります。 |
Latency |
[HTTP リスナー] ロードバランサーがリクエストを登録済みインスタンスへ送信してから、そのインスタンスがレスポンスヘッダーの送信を開始するまでの総時間(秒)です。[TCP リスナー] ロードバランサーが登録済みインスタンスとの接続確立に成功するまでの総時間(秒)です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Average です。Maximum は、一部のリクエストが平均時間を大きく上回っているかどうかを判断するのに使えます。Minimum は通常あまり役に立ちません。例:たとえば、ロードバランサーが us-west-2a と us-west-2b にそれぞれ 2 インスタンスずつ持ち、us-west-2a の 1 インスタンスに送られたリクエストのレイテンシが高い場合、us-west-2a の average 値は us-west-2b の average 値より高くなります。 |
RequestCount |
指定した時間帯(1 分または 5 分)に完了したリクエスト数、または発行された接続数です。[HTTP リスナー] 登録済みインスタンスからの HTTP エラーレスポンスを含む、受信およびルーティングされたリクエスト数です。[TCP リスナー] 登録済みインスタンスへ発行された接続数です。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。Minimum、Maximum、Average はすべて 1 を返します。例:たとえば、ロードバランサーが us-west-2a と us-west-2b にそれぞれ 2 インスタンスずつ持ち、ロードバランサーに 100 件のリクエストが送られたとします。60 件のリクエストが us-west-2a に送られ、各インスタンスが 30 件ずつ受信し、40 件のリクエストが us-west-2b に送られ、各インスタンスが 20 件ずつ受信します。AvailabilityZone ディメンションでは、us-west-2a の合計リクエスト数は 60、us-west-2b は 40 です。LoadBalancerName ディメンションでは合計 100 件です。 |
SpilloverCount |
スパイクキューが満杯になったために拒否されたリクエストの総数です。[HTTP リスナー] ロードバランサーは HTTP 503 エラーコードを返します。[TCP リスナー] ロードバランサーは接続を閉じます。報告基準:非ゼロ値を報告します。統計:最も有用なのは Sum です。Average、Minimum、Maximum は各ロードバランサーノードごとに報告されるため、通常はあまり役に立ちません。例:たとえば、ロードバランサーが us-west-2a と us-west-2b で有効になっており、us-west-2a のインスタンスのレイテンシが高く、リクエストへの応答が遅い場合、us-west-2a のロードバランサーノードのスパイクキューが満杯になり、オーバーフローが発生します。us-west-2b が引き続き正常に応答する場合、ロードバランサーの sum 値は us-west-2a の sum 値と同じになります。 |
SurgeQueueLength |
正常なインスタンスにルーティングされるのを待っているリクエスト(HTTP リスナー)または接続(TCP リスナー)の総数です。キューの最大サイズは 1024 です。キューがいっぱいになると、追加のリクエストや接続は拒否されます。詳細は SpilloverCount を参照してください。報告基準:非ゼロ値を報告します。統計:最も有用なのは Maximum で、待機中リクエストのピークを表します。Average と Minimum、Maximum を組み合わせることで、待機中リクエストの範囲を把握できます。Sum は役に立ちません。例:たとえば、ロードバランサーが us-west-2a と us-west-2b で有効になっており、us-west-2a のインスタンスのレイテンシが高く、リクエストへの応答が遅い場合、us-west-2a のロードバランサーノードのスパイクキューが満杯になり、クライアントの応答時間が増加する可能性があります。この状態が続くと、ロードバランサーはオーバーフローする可能性があります(SpilloverCount メトリクスを参照)。us-west-2b が引き続き正常に応答する場合、ロードバランサーの max は us-west-2a の max と同じになります。 |
UnHealthyHostCount |
ロードバランサーに登録されている異常なインスタンス数です。インスタンスがヘルスチェックで設定された異常しきい値を超えると、異常と見なされます。異常なインスタンスは、ヘルスチェックで設定された正常しきい値に達すると再び正常と見なされます。報告基準:登録済みインスタンスがあること。統計:最も有用なのは Average と Minimum です。これらの統計はロードバランサーノードによって決まります。一部のロードバランサーノードが一時的に特定のインスタンスを異常と見なしていても、他のノードは正常と見なす場合があります。例:HealthyHostCount を参照してください。 |
ロードバランサーのメトリクスディメンション¶
Application / Network / Gateway ロードバランサーのメトリクスを絞り込むには、次のディメンションを使用します。
| ディメンション | 説明 |
|---|---|
AvailabilityZone |
アベイラビリティゾーンでメトリクスデータを絞り込みます。 |
LoadBalancer |
ロードバランサーでメトリクスデータを絞り込みます。次の形式でロードバランサーを指定します:app/load-balancer-name/1234567890123456(ロードバランサー ARN の末尾部分)。 |
TargetGroup |
ターゲットグループでメトリクスデータを絞り込みます。次の形式でターゲットグループを指定します:targetgroup/target-group-name/1234567890123456(ターゲットグループ ARN の末尾部分)。 |
Classic ロードバランサーのメトリクスを絞り込むには、次のディメンションを使用します。
| ディメンション | 説明 |
|---|---|
AvailabilityZone |
アベイラビリティゾーンでメトリクスデータを絞り込みます。 |
LoadBalancerName |
指定したロードバランサーでメトリクスデータを絞り込みます。 |
ログ¶
ELB ログには直接公開された収集方法がありません。まずログを S3 バケットに保存し、その後 Lambda でログデータを取得してプラットフォームへ報告します。
Application ELB のログ有効化¶
- 対象のロードバランサーを選択して詳細ページに入ります
- 詳細ページで「操作」をクリックし、「ロードバランサー属性を編集」を選択します
- 「監視」カテゴリで「アクセスログ」を有効にし、対応する S3 バケットを選択します。

- 保存します
Lambda の設定¶
ログパイプライン¶
grok(_, "%{NOTSPACE:protocal} %{TIMESTAMP_ISO8601:timestamp} %{NOTSPACE:LoadBalancer} %{IP:client}:%{POSINT:client_port} %{IP:target}:%{POSINT:target_port} %{NUMBER:request_processing_time} %{NUMBER:target_processing_time} %{NUMBER:response_processing_time} %{NUMBER:elb_status_code} %{NUMBER:target_status_code} %{NUMBER:received_bytes} %{NUMBER:sent_bytes} \"%{NOTSPACE:http_method} %{NOTSPACE:uri} HTTP/%{NUMBER:http_version}\" \"%{DATA:user_agent}\" %{NOTSPACE:ssl_cipher} %{NOTSPACE:ssl_protocol} %{NOTSPACE:target_group_arn} \"%{NOTSPACE:x_amzn_trace_id}\" \"%{DATA:domain_name}\" \"%{DATA:chosen_cert_arn}\" %{NUMBER:matched_rule_priority} %{TIMESTAMP_ISO8601:request_creation_time} \"%{WORD:actions_executed}\" \"%{DATA:redirect_url}\" \"%{DATA:error_reason}\" \"%{IP:target_host}:%{POSINT:target_host_port_list}\" \"%{NUMBER:target_status_code_list}\" \"%{DATA:classification}\" \"%{DATA:classification_reason}\" %{NOTSPACE:conn_trace_id}")
status = "info"
cast(elb_status_code,"int")
if elb_status_code >=400 {
status = "error"
}
add_key("aws_log_type","access_log")
add_key(status,status)
aws_json=load_json(aws)
lambda_func_data = aws_json["invoked_function_arn"]
add_key(s3_bucket,aws_json["s3"]["bucket"])
grok(lambda_func_data, "arn:aws:lambda:%{DATA:region}:%{NUMBER:account_id}:function:%{NOTSPACE:lambda_func}")
オブジェクト¶
収集された AWS ELB オブジェクトのデータ構造です。「インフラストラクチャ - カスタム」でオブジェクトデータを確認できます。
{
"measurement": "aws_aelb",
"tags": {
"name" : "app/openway/8e8d762xxxxxx",
"RegionId" : "cn-northwest-1",
"LoadBalancerArn" : "arn:aws-cn:elasticloadbalancing:cn-northwest-1:588271xxxxx:loadbalancer/app/openway/8e8d762xxxxxx",
"State" : "active",
"Type" : "application",
"VpcId" : "vpc-2exxxxx",
"Scheme" : "internet-facing",
"DNSName" : "openway-203509xxxx.cn-northwest-1.elb.amazonaws.com.cn",
"LoadBalancerName" : "openway",
"CanonicalHostedZoneId": "ZM7IZAIxxxxxx"
},
"fields": {
"CreatedTime" : "2022-03-09T06:13:31Z",
"ListenerDescriptions": "{JSON データ}",
"AvailabilityZones" : "{アベイラビリティゾーンの JSON データ}",
"message" : "{インスタンスの JSON データ}"
}
}
注意:
tags、fieldsの中のフィールドは、今後の更新で変更される場合があります*ヒント 1: AWS ELB のメトリクスセットは、ロードバランサーの種類ごとに 4 つに分かれます:
- Application ELB に対応するメトリクスセットは
aws_aelb- Network ELB に対応するメトリクスセットは
aws_nelb- Gateway ELB に対応するメトリクスセットは
aws_gelb- Classic ELB に対応するメトリクスセットは
aws_elbヒント 2:
tags.nameの値の取り方は 2 通りあります:
- Classic Load Balancers では LoadBalancerName フィールドを使用します。
- Application、Network、Gateway の 3 種類の Load Balancers では、ロードバランサー ARN(LoadBalancerArn)の末尾部分を切り出します。
Network Load Balancer の例:
`LoadBalancerArn`は`arn:awS-cn:elasticloadbalancing:cn-northwest-1:xxxx1335135:loadbalancer/net/k8s-forethou-kodongin-xxxxa46f01/xxxxe75ae81d08c2`対応する
tags.nameはnet/k8s-forethou-kodongin-xxxxa46f01/xxxxe75ae81d08c2ですヒント 3:
fields.message、tags.AvailabilityZonesは JSON シリアライズ後の文字列ですtags.stateフィールドは Load Balancers の状態を表し、値はactive、provisioning、active_impaired、failedです("classic" タイプのロードバランサーインスタンスにはこのフィールドはありません)tags.Typeフィールドは Load Balancers の種類を表し、値はapplication、network、gateway、classicですtags.Schemeフィールドは Load Balancers のモードを表し、値はinternet-facing、internalですfields.ListenerDescriptionsフィールドは、このロードバランサーのリスナー一覧ですfields.AvailabilityZonesフィールドは、ロードバランサーに関連付けられた Amazon Route 53 のアベイラビリティゾーン情報を表します