ご利用のサービスメッシュで構成エラー、証明書の問題、またはデータプレーンの同期失敗が発生した場合、コントロールプレーンのログが診断の主要なソースとなります。Service Mesh (ASM) のログセンターでは、ASM コンソールでコントロールプレーンのログとデータプレーンのログを表示できます。ログ収集を有効にすると、ログセンターを使用してコントロールプレーンのログを表示したり、ログベースのアラートルールを設定したり、データプレーンのログと関連ダッシュボードを表示したりできます。このトピックでは、コントロールプレーンのログ収集とログベースのアラート機能を有効にする方法について説明します。
このトピックは、バージョン 1.17.2.35 以降の ASM インスタンスに適用されます。それ以前のバージョンについては、「1.17.2.35 より前のバージョンの ASM インスタンスでコントロールプレーンのログ収集とログベースのアラート機能を有効にする」をご参照ください。
前提条件
開始する前に、以下の準備が整っていることを確認してください。
ご利用の Alibaba Cloud アカウントで Simple Log Service が有効化されていること。詳細については、「クイックスタート」の「ステップ 1: Simple Log Service の有効化」をご参照ください。
データプレーンのクラスターに logtail-ds コンポーネントがインストールされていること。詳細については、「Simple Log Service を使用してコンテナからログデータを収集する」の「ステップ 1: Logtail のインストール」をご参照ください。
バージョン 1.17.2.35 以降の ASM インスタンスにクラスターが追加されていること。詳細については、「ASM インスタンスへのクラスターの追加」および「ASM インスタンスの更新」をご参照ください。
ASM はログ収集に対して課金しません。ただし、Simple Log Service は機能別課金または取り込みデータ量課金モードで別途請求されます。詳細については、「課金概要」をご参照ください。
コントロールプレーンのログ収集の有効化
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、対象の ASM インスタンス名をクリックします。左側のナビゲーションウィンドウで、[可観測性管理センター] > [ログセンター] を選択します。
[ログセンター] ページで、[コントロールプレーンログ] タブをクリックします。[新しいプロジェクト] または [既存のプロジェクトを使用] を選択し、パラメーターを設定してから、[コントロールプレーンのログ収集を有効にする] をクリックします。
[送信] 確認ダイアログボックスで、[OK] をクリックします。
ログ収集が有効になった後:
ASM コンソールまたは Simple Log Service コンソールでコントロールプレーンのログを表示します。
問題を早期に検出するためにログベースのアラートを設定します。
この機能を無効にするには、[コントロールプレーンログ] タブの右上隅にある [コントロールプレーンのログ収集を無効にする] をクリックし、[OK] をクリックして確認します。
コントロールプレーンのログの表示
ログ収集を有効にすると、コントロールプレーンのコンポーネントログが Simple Log Service にストリーミングされます。ログは ASM コンソールまたは Simple Log Service コンソールで表示できます。
ログ収集を有効にした直後は、ログが表示されない場合があります。システムがログ配信タスクを設定するのに少し時間がかかります。
ASM コンソールでのログ表示
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、対象の ASM インスタンス名をクリックします。左側のナビゲーションウィンドウで、[可観測性管理センター] > [ログセンター] を選択します。
[ログセンター] ページで、[コントロールプレーンログ] タブをクリックしてログ情報を表示します。
Simple Log Service コンソールでのログ表示
Simple Log Service コンソールにログインします。
[プロジェクト] セクションで、クラスターに使用されている Simple Log Service プロジェクトの名前をクリックします。
[Logstore] ページで、目的の Logstore をクリックしてログ情報を表示します。
ログベースのアラートの設定
構成プッシュの失敗、構成リスク、証明書の有効期限切れなどのコントロールプレーンの問題について通知を受け取るために、アラートルールを設定します。
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、対象の ASM インスタンス名をクリックします。左側のナビゲーションウィンドウで、[可観測性管理センター] > [ログセンター] を選択します。
[ログセンター] ページで、[コントロールプレーンログ] タブをクリックします。左上隅にある [アラート設定] をクリックします。
[コントロールプレーンのアラート設定] ダイアログボックスで、目的のアラートポリシーを見つけ、アクションポリシーを選択し、[アラートを有効にする] をクリックします。[注意] メッセージで、[OK] をクリックします。
アクションポリシーは、アラートが発動したときに通知を送信する方法を定義します。利用可能なタイプは 2 種類です。
| アクションポリシーのタイプ | 説明 |
|---|---|
| ASM ビルトインアクションポリシー | 通知チャネルが事前設定されていないデフォルトポリシーです。 |
| カスタムアクションポリシー | 独自の通知チャネルで定義するポリシーです。 |
アラート連絡先の追加
Simple Log Service で、ゲートウェイ、アラート連絡先、通知テンプレートのビルトインアクションポリシーを設定できます。
Simple Log Service コンソールにログインします。
[プロジェクト] セクションで、目的のプロジェクト名をクリックします。左側のナビゲーションウィンドウで、[アラート] をクリックします。
[アラートセンター] ページで、[通知オブジェクト] > [ユーザーグループ管理] を選択します。
[ユーザーグループ管理] タブで sls.app.asm.builtin を見つけ、[操作] 列の [編集] をクリックします。
[ユーザーグループの編集] ダイアログボックスで、追加するメンバーを選択し、
アイコンをクリックしてユーザーグループに追加し、[OK] をクリックします。
アラート通知設定の確認
テストアラートをトリガーして、通知が正しく配信されることを確認します。
この例では、1 種類のアラートのみをトリガーします。関連するエラーメッセージについては、「構成プッシュ失敗のアラート」をご参照ください。
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
「メッシュ管理」ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、「ASM ゲートウェイ」→「ゲートウェイ」を選択します。表示されたページで、「YAML からの作成」をクリックします。
[作成] ページで、名前空間とテンプレートを選択し、次の YAML を貼り付けて [作成] をクリックします。この例では、意図的にエラーをトリガーするために、存在しない TLS 認証情報を使用して [default] 名前空間に Istio ゲートウェイをデプロイします。
apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: gateway-test namespace: default spec: selector: istio: ingressgateway servers: - hosts: - '*console.aliyun.com' port: name: https number: 443 protocol: HTTPS tls: credentialName: not-existing-credential mode: SIMPLEASM コンソールでアラートを確認します。
左側のナビゲーションウィンドウで、[可観測性管理センター] > [ログセンター] を選択します。
[コントロールプレーンログ] タブで、
ACK ERRORを検索してアラート情報を表示します。
メール通知を設定している場合は、受信トレイでアラートメールを確認してください。
アラートのトラブルシューティング
潜在的な構成リスクのアラート
ASM は、予期しない結果を生む可能性のある構成を検出すると、これらのアラートを発生させます。[メッシュ診断] ページを確認し、指示に従って構成を修正してください。詳細については、「ASM インスタンスの診断」をご参照ください。
不正な構成のアラート
ASM は、予期しない動作を引き起こす可能性が高い構成を検出すると、これらのアラートを発生させます。[メッシュ診断] ページを確認し、速やかに構成を修正してください。詳細については、「ASM インスタンスの診断」をご参照ください。
構成プッシュ失敗のアラート
次の表は、コントロールプレーンがデータプレーンに構成をプッシュできなかった場合の一般的なエラーを示しています。エラーがリストにない場合は、チケットを送信してください。
| エラーメッセージ | 修正方法 |
|---|---|
Internal:Error adding/updating listener(s) 0.0.0.0_443: Failed to load certificate chain from <inline>, only P-256 ECDSA certificates are supported | データプレーンのクラスターは設定された証明書をサポートしていません。P-256 ECDSA 証明書に置き換えてください。詳細については、「イングレスゲートウェイを使用して HTTPS を有効にする」をご参照ください。 |
Internal:Error adding/updating listener(s) 0.0.0.0_443: Invalid path: **** | 証明書のパスが無効であるか、証明書が存在しません。証明書のマウントパスがゲートウェイ構成のパスと一致していることを確認してください。詳細については、「イングレスゲートウェイを使用して HTTPS を有効にする」をご参照ください。 |
Internal:Error adding/updating listener(s) 0.0.0.0_xx: duplicate listener 0.0.0.0_xx found | ゲートウェイに重複したリスニングポートがあります。ゲートウェイ構成から重複したポートを削除してください。 |
Internal:Error adding/updating listener(s) 192.168.33.189_15021: Didn't find a registered implementation for name: '***' | EnvoyFilter を使用して 15021 リスナーパッチに基づいて参照される名前 *** が、サイドカープロキシまたはイングレスゲートウェイサービスで見つかりません。無効な参照を削除してください。 |
Internal:Error adding/updating listener(s) 0.0.0.0_80: V2 (and AUTO) xDS transport protocol versions are deprecated in grpc_service *** | データプレーン上の xDS v2 プロトコルは間もなく非推奨になります。これは通常、データプレーン上のサイドカープロキシのバージョンがコントロールプレーン上のバージョンと一致しないことが原因です。既存の Pod を削除して再作成をトリガーしてください。最新バージョンのサイドカープロキシが再作成された Pod に自動的にインジェクトされます。 |
証明書の有効期限切れに関するアラート
| アラートポリシー | アクション |
|---|---|
| 証明書管理に期限切れの証明書があります。これにより、ゲートウェイが TLS トラフィックを処理できなくなる可能性があります。 | ゲートウェイでの TLS トラフィック処理を復旧させるため、期限切れの証明書を直ちに置き換えてください。 |
| 証明書管理にまもなく有効期限が切れる証明書があります。時間内に証明書を更新してください。 | TLS トラフィックの中断を避けるため、有効期限が切れる前に証明書を更新または置き換えてください。 |
コントロールプレーンのログプロジェクトの変更
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、対象の ASM インスタンス名をクリックします。左側のナビゲーションウィンドウで、[可観測性管理センター] > [ログセンター] を選択します。
[コントロールプレーンログ] タブで、[ログプロジェクトの変更] をクリックします。[ログプロジェクトの変更] ダイアログボックスで、設定を更新し、[送信] をクリックします。