このドキュメントでは、内部 HTTP(S) 負荷分散のロギングとモニタリングの指標について説明します。
ロギング
ログは、バックエンド サービス単位で有効にできます。1 つの内部 HTTP(S) ロードバランサの URL マップで複数のバックエンド サービスを参照できるため、複数のバックエンド サービスでロギングを有効にする必要があります。
既存のバックエンド サービスでロギングを有効にする
Console
- Google Cloud Console の [負荷分散] ページに移動します。
[負荷分散] ページに移動 - ロードバランサの名前をクリックします。
- [編集] をクリックします。
- [バックエンドの設定] をクリックします。
- バックエンド サービスの横にある [編集] をクリックします。
- [高度な構成(セッション アフィニティ、コネクション ドレインのタイムアウト)] をクリックします。
- [ロギングを有効にする] をクリックします。
- [サンプルレート] の値を選択します。
0.0
から1.0
まで(デフォルト)の任意の値に設定できます。 - [更新] をクリックします。
gcloud
ロギングを有効にするには、gcloud compute instance-templates create コマンドを使用してバックエンド サービスを更新します。
gcloud compute backend-services update BACKEND_SERVICE \ --enable-logging \ --logging-sample-rate=RATE \ --region=REGION
ここで
--enable-logging
は、バックエンド サービスのロギングを有効にします。--logging-sample-rate
には、0.0
から1.0
までの値を指定できます。0.0
を設定すると、リクエストはまったくロギングされません。1.0
を設定すると、すべてのリクエストがロギングされます。--enable-logging
パラメータの場合のみ有意です。ロギングを有効にしても、サンプリング レートが0.0
であれば、ロギングを無効にしているのと同じ結果になります。
バックエンド サービスでロギングを有効にすると、Cloud Logging を使用して各 HTTP(S) リクエストが記録されます。
ログの表示方法
ログを表示するには、ログビューアに移動します。
内部 HTTP(S) ロードバランサのログは、最初はネットワーク別に、次にリージョン別にインデックス化されます。
- すべての内部 HTTP(S) ロードバランサのログを表示するには、最初のプルダウン メニューで [内部 HTTP/S 負荷分散ルール] を選択します。
- 1 つのネットワークのログのみを表示するには、[内部 HTTP/S 負荷分散ルール] を選択して、ネットワークの名前を選択します。
- ネットワーク内の 1 つのリージョンのみのログを表示するには、[内部 HTTP/S 負荷分散ルール] >
NETWORK
>REGION
の順に選択します。
通常、ブール型のログフィールドは、フィールドの値が true
の場合にのみ表示されます。ブール フィールドの値が false
の場合、そのフィールドはログから省略されます。
ログフィールドには UTF-8 エンコードが適用されます。UTF-8 以外の文字列は、疑問符に置き換えられます。
リソースログ(resource.type="internal_http_lb_rule"
)のログベースの指標のエクスポートを構成できます。作成される指標は、内部 HTTP/S 負荷分散ルール(ログベースの指標)リソースに基づいています。このリソースは Cloud Monitoring ダッシュボードで使用できます。
ログの内容
HTTP(S) 負荷分散ログエントリには、HTTP(S) トラフィックのモニタリングとデバッグに役立つ情報が含まれています。ログエントリには次のタイプの情報が含まれています。
- 重大度、プロジェクト ID、プロジェクト番号、タイムスタンプなど、ほとんどの Google Cloud ログで表示される一般情報
- HttpRequest ログフィールド
ログのフィールド
ログは LogEntry proto です。
フィールド | 型 | 説明 |
---|---|---|
logName
|
文字列 |
このログエントリが属するログのリソース名。"projects/PROJECT_ID/logs/requests" の形式です。 |
timestamp
|
タイムスタンプ形式 | リクエストが開始された時刻。 |
severity
|
LogSeverity 形式 |
ログエントリの重大度。デフォルトは LogSeverity.DEFAULT です。 |
httpRequest
|
HttpRequest オブジェクト | ログに記録される HTTP(S) リクエストを記述する HttpRequest プロトコル。 |
trace
|
文字列 |
ログエントリに関連付けられているトレースのリソース名。相対リソース名が含まれている場合、https://tracing.googleapis.com を基準とした相対的な名前になります。例: projects/PROJECT_ID/traces/06796866738c859f2f19b7cfb3214824 |
spanId
|
文字列 |
ログエントリに関連付けられているトレース内のスパン ID。トレーススパンの場合、これは Trace API v2 と同じ形式で、8 バイトの配列を 16 文字の 16 進数にエンコードした値になります。例: 000000000000004a |
resource
|
MonitoredResource オブジェクト | このログエントリに関連付けられたモニタリング対象リソース。MonitoredResource オブジェクトをご覧ください。 |
MonitoredResource
フィールド | 型 | 説明 |
---|---|---|
networkName
|
文字列 | ロードバランサの VPC ネットワークの名前。 |
region
|
文字列 | ロードバランサの Google Cloud リージョンの名前。 |
urlMapName
|
文字列 | バックエンド サービスを選択するように構成された URL マップ オブジェクトの名前。 |
forwardingRuleName
|
文字列 | 転送ルール オブジェクトの名前。 |
targetProxyName
|
文字列 | 転送ルールで参照されるターゲット プロキシ オブジェクトの名前。 |
matchedUrlPathRule
|
文字列 |
URL マップキーの一部として構成された URL マップ パスルールまたはルートルール。フォールバックとして UNMATCHED または UNKNOWN の場合もあります。
|
backendTargetName
|
文字列 | リクエストを処理するために選択されたバックエンドの名前。リクエストと一致する URL マップのパスルールまたはルートルールに基づいて選択されます。 |
backendTargetType
|
文字列 | バックエンド ターゲットのタイプ(BACKEND_SERVICE / UNKNOWN )。 |
backendName |
文字列 | バックエンド インスタンス グループまたは NEG の名前。 |
backendType
|
文字列 | インスタンス グループまたは NEG のいずれかのバックエンドのタイプ。 |
backendScope
|
文字列 |
バックエンドの範囲。ゾーン名またはリージョン名です。backendName が不明な場合はいつでも、UNKNOWN である可能性があります。 |
backendScopeType
|
文字列 | バックエンドの範囲(REGION /ZONE )。backendName が不明な場合はいつでも、UNKNOWN である可能性があります。 |
モニタリング
HTTP(S) 負荷分散は、モニタリング データを Monitoring にエクスポートします。
モニタリング指標は次の目的で使用します。
- ロードバランサの構成、使用状況、パフォーマンスの評価
- 問題のトラブルシューティング
- リソースの使用率とユーザー エクスペリエンスの改善
Monitoring の事前定義されたダッシュボードに加えて、カスタム ダッシュボードを作成して、アラートをセットアップし、Monitoring API を使用して指標をクエリできます。
Cloud Monitoring の指標の表示
Metrics Explorer を使用してモニタリング対象リソースの指標を表示する手順は次のとおりです。
- Google Cloud Console で、[Monitoring] ページに移動します。
Cloud Monitoring を初めて使用する場合は、Google Cloud Console の [Monitoring] への最初のアクセス時に、ワークスペースが自動的に作成され、プロジェクトがそのワークスペースに関連付けられます。それ以外の場合に、プロジェクトがワークスペースに関連付けられていないときは、ダイアログが表示され、新しいワークスペースを作成するか、このプロジェクトを既存のワークスペースに追加できるようになります。ワークスペースを作成することをおすすめします。選択したら、[Add] をクリックします。
- [Monitoring] のナビゲーション パネルで、
[Metrics Explorer] をクリックします。
- [Metric] タブが選択されていることを確認します。
- [Find resource type and metric] フィールドで、リソースと指標をメニューから選択するか、リソースと指標の名前を入力します。次の情報を使用して、フィールドに入力します。
- [リソース] で、[internal_http_lb_rule] を選択または入力します。ここでリソース [内部 HTTP/S 負荷分散ルール] を選択します。
- [指標] で、メニューから選択します。
- データの表示方法を変更するには、[Filter]、[Group By]、[Aggregator] の各メニューを使用します。たとえば、リソースラベルや指標ラベルごとにグループ化できます。詳しくは、指標の選択をご覧ください。
アラート ポリシーを定義する
アラート ポリシーを作成して指標の値をモニタリングすると、条件に違反した場合に通知できます。
1 つ以上の内部 HTTP/S ロードバランサ リソースをモニタリングするアラート ポリシーを作成するには、次の操作を行います。
- Google Cloud Console で、[Monitoring] ページに移動します。
Cloud Monitoring を初めて使用する場合は、Google Cloud Console の [Monitoring] への最初のアクセス時に、ワークスペースが自動的に作成され、プロジェクトがそのワークスペースに関連付けられます。それ以外の場合に、プロジェクトがワークスペースに関連付けられていないときは、ダイアログが表示され、新しいワークスペースを作成するか、このプロジェクトを既存のワークスペースに追加できるようになります。ワークスペースを作成することをおすすめします。選択したら、[Add] をクリックします。
- Monitoring のナビゲーション パネルで notifications [アラート] を選択し、次に [Create Policy] を選択します。
- [Add Condition] をクリックします。
- [ターゲット] ペインの設定で、モニタリングするリソースと指標を指定します。[Find resource type and metric] フィールドで、リソース [内部 HTTP/S ロードバランサ] を選択します。次に、指標リストから指標を選択します。
- アラート ポリシーの [Configuration] ペインの設定で、アラートがトリガーされるタイミングを決定します。このペインのほとんどのフィールドにはデフォルト値が入力されています。ペインのフィールドの詳細については、アラート ポリシーのドキュメントの構成をご覧ください。
- [追加] をクリックします。
- 通知セクションに移動するには、[次へ] をクリックします。
- (省略可)アラート ポリシーに通知を追加するには、[通知チャネル] をクリックします。ダイアログで、メニューから 1 つ以上の通知チャネルを選択し、[OK] をクリックします。
追加する通知チャネルが一覧にない場合は、[通知チャネルを管理] をクリックします。新しいブラウザタブの [通知チャネル] ページが表示されます。このページで、構成された通知チャンネルを更新できます。更新が完了したら、元のタブに戻って autorenew 更新アイコンをクリックし、アラート ポリシーに追加する通知チャンネルを選択します。
- ドキュメントのセクションに移動するには、[次へ] をクリックします。
- [名前] をクリックし、アラート ポリシーの名前を入力します。
- (省略可)[Documentation] をクリックして、通知メッセージに追加する情報を入力します。
- [Save] をクリックします。
Monitoring カスタム ダッシュボードの定義
内部 HTTP(S) 負荷分散の指標に関しては、カスタムの Monitoring ダッシュボードを作成できます。
- Google Cloud Console で [Monitoring] に移動します。
[Monitoring] に移動 - [ダッシュボード] > [ダッシュボードを作成] を選択します。
- [グラフを追加] をクリックします。
- グラフにタイトルを付けます。
- 指標とフィルタを選択します。指標のリソースタイプは、内部 HTTP(S) ロードバランサです。
- [保存] をクリックします。
指標報告の頻度と保持
ロードバランサの指標は、1 分単位のバッチで Monitoring にエクスポートされます。モニタリング データは 6 週間保持されます。ダッシュボードでは、1H(1 時間)、6H(6 時間)、1D(1 日)、1W(1 週間)、6W(6 週間)のデフォルト間隔でデータ分析の結果を確認できます。また、6 週間から 1 分までの間隔を任意に指定して手動で分析を行うこともできます。
内部 HTTP(S) ロードバランサのモニタリング指標
Monitoring に報告される内部 HTTP(S) ロードバランサの指標は次のとおりです。
指標 | FQDN | 説明 |
---|---|---|
リクエスト数 | loadbalancing.googleapis.com/https/internal/request_count |
内部 HTTP(S) ロードバランサによって配信されるリクエスト数。 |
リクエスト バイト数 | loadbalancing.googleapis.com/https/internal/request_bytes |
クライアントから内部 HTTP(S) ロードバランサへのリクエストとして送信されたバイト数。 |
レスポンス バイト数 | loadbalancing.googleapis.com/https/internal/response_bytes |
内部 HTTP(S) ロードバランサからクライアントへのレスポンスとして送信されたバイト数。 |
総レイテンシ | loadbalancing.googleapis.com/https/internal/total_latencies |
リクエストの最初のバイトがプロキシで受信された時点からレスポンスの最後のバイトがプロキシから送信された時点までのレイテンシの分布(ミリ秒単位)。 |
バックエンド レイテンシ | loadbalancing.googleapis.com/https/internal/backend_latencies |
プロキシがバックエンドに最初のリクエスト バイトを送信してから、バックエンドから最後のレスポンス バイトを受信するまでのレイテンシの分布(ミリ秒単位)。 |
HTTP(S) ロードバランサ指標のディメンションのフィルタ処理
指標は、HTTP(S) ロードバランサごとに集計されます。集計された指標は、次のディメンション(*)でフィルタ処理できます。
プロパティ | 説明 |
---|---|
BACKEND_SCOPE | クライアント リクエストを処理したバックエンド グループの Google Cloud ゾーンまたはリージョン。バックエンド グループが割り当てられていない場合は、特殊文字列が返されます。例: us-central1-a 、europe-west1-b 、asia-east1 、UNKNOWN 。 |
PROXY_REGION | 内部 HTTP(S) ロードバランサ、クライアント、バックエンドのリージョン。例: us-central1 、europe-west1 、asia-east1 。 |
バックエンド | クライアント リクエストを処理したバックエンド インスタンス グループまたは NEG の名前。 |
BACKEND_TARGET | クライアント リクエストを処理したバックエンド サービスの名前。 |
MATCHED_URL_RULE | クライアント HTTP(S) リクエストのプレフィックスに一致する URL マップ パスルールまたはルートルール(最大 50 文字)。 |
Response code class fraction
指標はロードバランサ全体でサポートされています。これ以上の粒度はサポートされません。
次のステップ
- 内部 HTTP(S) 負荷分散のコンセプトについて理解する。
- 内部 HTTP(S) ロードバランサを作成する。
- ロードバランサで使用できる DNS 名オプションについては、内部負荷分散と DNS 名をご覧ください。