ASM では、コントロールプレーンのログ収集とログベースのアラート機能がサポートされています。たとえば、コントロールプレーンがデータプレーンのサイドカープロキシに設定をプッシュする際に生成されるログを収集できます。このトピックでは、コントロールプレーンのログ収集とログベースのアラート機能を有効にする方法について説明します。
背景情報
ASM コントロールプレーンの主要な機能の 1 つは、メッシュルール設定をデータプレーンのサイドカープロキシまたはゲートウェイにプッシュすることです。設定したメッシュルールが相互に競合してプッシュが失敗した場合、プロキシまたはゲートウェイは最新の設定を受信できません。プロキシまたはゲートウェイは、再起動しない限り、すでに受信した設定で動作を継続できますが、これらの Pod を再起動すると、サイドカープロキシまたはゲートウェイの起動に失敗する可能性があります。実際には、設定ミスによってゲートウェイやプロキシが使用できなくなることが頻繁に発生します。そのため、コントロールプレーンのログベースのアラート機能を有効にして、このような問題を迅速に検出し、解決することが不可欠です。
前提条件
バージョン 1.17.2.35 より前の ASM インスタンス。詳細については、「ASM インスタンスの作成」をご参照ください。
説明このトピックは、バージョン 1.17.2.35 より前 の ASM インスタンスに適用されます。ASM インスタンスがバージョン 1.17.2.35 以降の場合は、「バージョン 1.17.2.35 以降の ASM インスタンスでコントロールプレーンのログ収集とログベースのアラート機能を有効にする」をご参照ください。
Alibaba Cloud アカウントで Simple Log Service (SLS) が有効化されていること。詳細については、「Simple Log Service の有効化」をご参照ください。
重要コントロールプレーンのログを ASM ログサービスに収集しても、追加の ASM 料金は発生しませんが、SLS では、書き込みデータ量や使用機能に基づいて料金が請求されます。SLS の料金の詳細については、「料金の概要」をご参照ください。
コントロールプレーンのログ収集の有効化
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[ASM Instance] > [基本情報] を選択します。
[設定情報] セクションで、[Control-plane log collection] の横にある [Enable] をクリックします。
初回有効化時:[Enable Control-plane log collection] ダイアログボックスが表示されます。プロジェクトを作成するか、既存のプロジェクトを選択します。プロジェクトを作成する場合は、デフォルトの名前またはカスタム名を使用し、[Submit] をクリックします。

再有効化時 (以前有効化してから無効化した場合):[Note] メッセージが表示されます。[OK] をクリックします。以前使用したプロジェクトが自動的に選択されます。
重要コントロールプレーンの Logstore では、ログが 30 日間保持され、それより古いログは自動的に破棄されます。
ログ収集を有効にすると、基本情報 セクションの [コントロールプレーンのログ収集] の横にある [ログの表示] をクリックして、ログプロジェクト ページで詳細なコントロールプレーン ログを表示できます。[基本情報 セクションでは、ログプロジェクト ページで詳細なコントロールプレーン ログを表示します。]基本情報 セクションでは、ログプロジェクト ページで詳細なコントロールプレーン ログを表示します。
ログベースのアラート機能の有効化
ログベースのアラート機能を設定する前に、コントロールプレーンのログ収集を有効にしてください。有効にしない場合、ログベースのアラート機能は使用できません。
データプレーンがコントロールプレーンからの xDS リクエストを拒否すると、データプレーン同期の失敗アラートがトリガーされます。これは、影響を受けるサイドカープロキシまたはゲートウェイが最新の設定を受信しなかったことを意味します。影響は、プロキシの状態によって異なります。
以前の設定がある場合:プロキシまたはゲートウェイは、最後に正常に受信した設定で動作を継続します。
設定がない場合:プロキシまたはゲートウェイには設定情報がありません。リスナーが設定されておらず、ルーティングルールに基づいてリクエストを処理できない可能性があります。
アラート機能を有効にするには、次の手順を実行します。
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[ASM Instance] > [基本情報] を選択します。
[設定情報] セクションで、[Control-plane log collection] の横にある [Alert Setting] をクリックします。
[Control-Plane Alert Setting] ダイアログボックスで、有効にするアクションポリシーを見つけます。[ASM Built-in Action Strategy (recommended)] またはカスタムアクションポリシーを選択し、[Enable Alert] をクリックします。アクションポリシーは、アラートがトリガーされたときに実行するアクションを指定します。アクションポリシーを作成または変更するには、SLS の「アクションポリシーの作成」をご参照ください。
[Note] メッセージで、[OK] をクリックします。
アラート連絡先の設定
組み込みのアクションポリシーを設定して、アラート通知先と通知テンプレートを設定できます。組み込みのアラートユーザーグループにメンバーを追加して、アラート通知を受信できるようにします。
SLS コンソールにログインします。
[Projects] セクションで、プロジェクトの名前をクリックします。左側のナビゲーションウィンドウで、[Alerts] をクリックします。
[アラートセンター] ページで、[Notification Objects] > [ユーザーグループ管理] を選択します。
[ユーザーグループ管理] タブで、[sls.app.asm.builtin] を見つけ、[Actions] 列の [Edit] をクリックします。
[Edit User Group] ダイアログボックスで、追加するメンバーを選択し、
アイコンをクリックしてグループに追加し、[OK] をクリックします。
アラート通知の検証
アラートが正しく配信されることを確認するには、存在しない TLS 認証情報を参照する、意図的に無効なゲートウェイ設定を適用します。これにより、設定プッシュの失敗がトリガーされ、アラートが生成されます。
この例では、特定のアラートタイプについて説明します。その他のエラーメッセージとその解決策については、このトピックの「設定プッシュの失敗のトラブルシューティング」をご参照ください。
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[ASM Gateways] > [Gateway] を選択します。[Create from YAML] をクリックします。
[Create] ページで、名前空間とテンプレートを選択し、以下の YAML を貼り付けて、[Create] をクリックします。次の Istio ゲートウェイは、
default名前空間を使用し、存在しない TLS 認証情報 (not-existing-credential) を参照するため、設定プッシュの失敗が発生します。apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: gateway-test namespace: default spec: selector: istio: ingressgateway servers: - hosts: - '*console.alibabacloud.com' port: name: https number: 443 protocol: HTTPS tls: credentialName: not-existing-credential mode: SIMPLEアラートがトリガーされたことを確認します。
ASM インスタンスの詳細ページで、左側のナビゲーションウィンドウの [ASM Instance] > [基本情報] を選択します。
[設定情報] セクションで、[Control-plane log collection] の横にある [View log] をクリックします。
SLS コンソールで、
'ACK ERROR'を検索して、アラートログエントリを見つけます。メール通知を設定している場合は、受信トレイでアラートメールも確認してください。
アラートの処理
潜在的な設定リスクに関するアラート
ASM は、予期しない結果を生じる可能性のある設定を検出します。メッシュ診断ページでこれらのアラートを確認し、指示に従って設定を修正してください。
誤った設定に関するアラート
ASM は、予期しない動作を引き起こす可能性が高い設定を検出します。メッシュ診断ページでこれらのアラートを確認し、できるだけ早く設定を修正してください。
設定プッシュの失敗のトラブルシューティング
次の表に、コントロールプレーンからデータプレーンへの設定プッシュが失敗した場合の一般的なエラーを示します。
エラーメッセージ | 原因 | 解決策 |
| データプレーンクラスターが、設定された証明書タイプをサポートしていません。 | P-256 ECDSA 証明書を設定します。詳細については、「イングレスゲートウェイを使用した HTTPS の有効化」をご参照ください。 |
| 証明書パスが無効であるか、証明書が存在しません。 | 証明書マウントパスがゲートウェイ設定で指定されたパスと一致することを確認します。詳細については、「イングレスゲートウェイを使用した HTTPS の有効化」をご参照ください。 |
| ゲートウェイに重複するリスニングポートが設定されています。 | ゲートウェイ設定から重複するポートエントリを削除します。 |
| 15021 リスナーパッチの EnvoyFilter 参照が、サイドカープロキシまたはイングレスゲートウェイサービスに存在しません。 | 無効な EnvoyFilter 参照を削除します。 |
| xDS v2 プロトコルは非推奨です。これは通常、データプレーンのサイドカープロキシのバージョンがコントロールプレーンのバージョンと一致しない場合に発生します。 | 既存の Pod を削除して、サイドカープロキシを更新します。再作成された Pod には、最新のプロキシバージョンが自動的にインジェクトされます。 |
エラーが一覧にない場合は、チケットを送信して、サポートにお問い合わせください。
コントロールプレーンログプロジェクトの変更
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[ASM Instance] > [基本情報] を選択します。
[基本情報] ページの [設定情報] セクションで、[Control-plane log collection] の横にある [ログプロジェクトの変更] をクリックします。[ログプロジェクトの変更] ダイアログボックスで、設定を変更し、[Submit] をクリックします。