Enable log collection and alarm on control surface to improve system stability
背景
サービスメッシュのコントロールプレーンコンポーネントは、データプレーン側の Sidecar エージェントやゲートウェイに対してメッシュルールをプッシュする上で重要な役割を担っています。ユーザーが設定したメッシュルールの内容に競合がある場合、プッシュに失敗し、エージェントやゲートウェイが最新の設定内容を受信できなくなります。エージェントやゲートウェイは受信済みの設定を使用して再起動なしで稼働を継続できますが、いったんこれらの Pod が再起動されると、Sidecar エージェントやゲートウェイの起動に失敗する可能性が高くなります。実際の顧客シナリオでは、ユーザーの誤設定に起因するゲートウェイやエージェントの可用性問題が頻繁に発生しています。したがって、コントロールプレーンでログアラームを有効にし、問題をタイムリーに検出・解決することが急務となっています。
ASM では、コントロールプレーンのログ収集とログアラームがサポートされています。たとえば、ASM コントロールプレーンからデータプレーンの Sidecar へプッシュされる設定関連のログ収集などがあります。本記事では、コントロールプレーンでログ収集とログアラームを有効にする方法について説明し、アラーム通知の例を紹介した上で、対応するアラーム処理のリファレンススキームを提示します。
コントロールプレーンのログ収集を有効にする
1. ASM コンソールにログインします。
2. 左側のナビゲーションバーで、サービスメッシュ > メッシュ管理を選択します。
3. メッシュ管理ページで、設定するインスタンスを見つけ、インスタンス名をクリックするか、操作列の「管理」をクリックします。
4. メッシュ詳細ページの左側のナビゲーションバーで、メッシュインスタンス > 基本情報を選択します。
5. 基本情報ページで、コントロールプレーンのログ収集の右側にある「開始」をクリックします。
6. 最初に有効化する場合は、「有効にする」をクリックします。コントロールプレーンのログを有効化するダイアログボックスで、「新規プロジェクトを作成」または「既存のプロジェクトを使用」を選択し、「OK」をクリックします。新規プロジェクトの作成を選択した場合、デフォルトのプロジェクト名またはカスタムのプロジェクト名を使用できます。メッシュ情報ページで、コントロールプレーンのログ収集の右側にある「ログの表示」をクリックすると、プロジェクトページで詳細なコントロールプレーンのログを表示できます。
7. 以前にプロジェクトを有効化して無効化していた場合は、「開く」を再度クリックして確認すると、前回指定したプロジェクトが自動的に選択されます。
コントロールプレーンのログアラームを有効にする
コントロールプレーンからデータプレーンに送信された xDS リクエストがデータプレーンに拒否されると、データプレーンの同期失敗アラームがトリガーされます。この場合、データプレーンの Sidecar エージェントまたは ASM ゲートウェイは最新の設定情報を取得できなくなります。以下の 2 つの状況が考えられます。
コントロールプレーンのログアラームを有効にする前に、コントロールプレーンのログ収集を有効化する必要がある点にご注意ください。有効化されていない場合、この機能は使用できません。
• データプレーンの Sidecar が以前に設定のプッシュに成功している場合、Sidecar は最後に受信した正常なプッシュの設定を維持します。
• データプレーンの Sidecar が以前に設定のプッシュに成功していない場合、Sidecar には設定情報が一切ない状態となり、ノードにリスニングが存在しない可能性や、リクエストやルーティングルールを処理できない状態になることがあります。
1. ASM コンソールにログインします。
2. 左側のナビゲーションバーで、サービスメッシュ > メッシュ管理を選択します。
3. メッシュ管理ページで、設定するインスタンスを見つけ、インスタンス名をクリックするか、操作列の「管理」をクリックします。
4. メッシュ詳細ページの左側のナビゲーションバーで、メッシュインスタンス > 基本情報を選択します。
5. 基本情報ページで、コントロールプレーンのログ収集の右側にあるアラーム設定をクリックします。
6. コントロールプレーンのログアラーム設定ダイアログボックスで、アクションポリシーとして「サービスメッシュ ASM 組み込みアクションポリシー(推奨)」またはその他のカスタマイズされたアクションポリシーを選択し、「アラームを有効にする」をクリックします。アクションポリシーは、アラームがトリガーされた際の動作を定義するものです。SLS プロジェクトでアクションポリシーの作成や編集ができます。詳細については、「アクションポリシーの作成」をご参照ください。
7. 重要確認ダイアログボックスで「OK」をクリックします。
アラーム通知先の設定
アラーム管理センターは、SLS 配下のビジネスベースの統一インテリジェントアラーム運用プラットフォームです。グローバル設定 -> 通知ポリシー -> アクションポリシーで「SLS サービスゲートウェイ組み込みアクションポリシー」を見つけ、「修正」をクリックして、アラーム通知先や通知テンプレートなどを確認できます。
1. SLS コンソールでアラーム通知先を設定します。SLS コンソールのホーム画面で、ページ上部のログアプリケーションを見つけ、「ログアプリケーションをさらに表示」をクリックし、ポップアップページで「アラーム管理センター」を選択してクリックします。
2. ページの右上で「グローバル設定」をクリックします。
3. 左側のメニューでユーザー管理 -> ユーザーグループ管理を見つけ、右側の「修正」ボタンをクリックし、SLS サービスメッシュの組み込みユーザーグループを修正して対応する連絡先を追加することで、アラーム発生時の通知受信設定を行います。
4. 追加されたメンバーのリストに対応するアラーム通知先が含まれていることを確認します。
アラーム通知のトリガー例
1. ASM コンソールにログインします。
2. 左側のナビゲーションバーで、サービスメッシュ > メッシュ管理を選択します。
3. メッシュ管理ページで、設定するインスタンスを見つけ、インスタンス名をクリックするか、操作列の「管理」をクリックします。
4. メッシュ詳細ページの左側のナビゲーションバーで、トラフィック管理センター > ゲートウェイルールを選択し、右側のページで「YAML で作成」をクリックします。
5. 以下の手順に従ってサービスゲートウェイを定義し、「作成」をクリックします。
A. 対応する名前空間を選択します。本記事ではデフォルトの名前空間を例とします。
B. テキストボックスでサービスゲートウェイを定義します。以下の YAML 定義を参照してください。
6. 次に、メッシュ詳細ページの左側のナビゲーションバーで、メッシュインスタンス > 基本情報を選択します。
7. 基本情報ページで、コントロールプレーンのログ収集の右側にある「ログの表示」をクリックします。
8. ログサービスコンソールで「ACK ERROR」を検索すると、同様のログ内容を確認できます。
9. アラーム通知先のメールアドレスが正しく設定されている場合、以下のようなメールを受信できます。
または、DingTalk ロボットを設定して DingTalk グループでアラーム情報を受信することもできます。以下はその例です。
アラーム処理のリファレンススキーム
以下に、データプレーンの同期失敗に関する一般的なエラーメッセージと対処方法を記載します。以下の表に対応するエラー情報が見つからない場合は、チケットの送信をご検討ください。
サービスメッシュのコントロールプレーンコンポーネントは、データプレーン側の Sidecar エージェントやゲートウェイに対してメッシュルールをプッシュする上で重要な役割を担っています。ユーザーが設定したメッシュルールの内容に競合がある場合、プッシュに失敗し、エージェントやゲートウェイが最新の設定内容を受信できなくなります。エージェントやゲートウェイは受信済みの設定を使用して再起動なしで稼働を継続できますが、いったんこれらの Pod が再起動されると、Sidecar エージェントやゲートウェイの起動に失敗する可能性が高くなります。実際の顧客シナリオでは、ユーザーの誤設定に起因するゲートウェイやエージェントの可用性問題が頻繁に発生しています。したがって、コントロールプレーンでログアラームを有効にし、問題をタイムリーに検出・解決することが急務となっています。
ASM では、コントロールプレーンのログ収集とログアラームがサポートされています。たとえば、ASM コントロールプレーンからデータプレーンの Sidecar へプッシュされる設定関連のログ収集などがあります。本記事では、コントロールプレーンでログ収集とログアラームを有効にする方法について説明し、アラーム通知の例を紹介した上で、対応するアラーム処理のリファレンススキームを提示します。
コントロールプレーンのログ収集を有効にする
1. ASM コンソールにログインします。
2. 左側のナビゲーションバーで、サービスメッシュ > メッシュ管理を選択します。
3. メッシュ管理ページで、設定するインスタンスを見つけ、インスタンス名をクリックするか、操作列の「管理」をクリックします。
4. メッシュ詳細ページの左側のナビゲーションバーで、メッシュインスタンス > 基本情報を選択します。
5. 基本情報ページで、コントロールプレーンのログ収集の右側にある「開始」をクリックします。
6. 最初に有効化する場合は、「有効にする」をクリックします。コントロールプレーンのログを有効化するダイアログボックスで、「新規プロジェクトを作成」または「既存のプロジェクトを使用」を選択し、「OK」をクリックします。新規プロジェクトの作成を選択した場合、デフォルトのプロジェクト名またはカスタムのプロジェクト名を使用できます。メッシュ情報ページで、コントロールプレーンのログ収集の右側にある「ログの表示」をクリックすると、プロジェクトページで詳細なコントロールプレーンのログを表示できます。
7. 以前にプロジェクトを有効化して無効化していた場合は、「開く」を再度クリックして確認すると、前回指定したプロジェクトが自動的に選択されます。
コントロールプレーンのログアラームを有効にする
コントロールプレーンからデータプレーンに送信された xDS リクエストがデータプレーンに拒否されると、データプレーンの同期失敗アラームがトリガーされます。この場合、データプレーンの Sidecar エージェントまたは ASM ゲートウェイは最新の設定情報を取得できなくなります。以下の 2 つの状況が考えられます。
コントロールプレーンのログアラームを有効にする前に、コントロールプレーンのログ収集を有効化する必要がある点にご注意ください。有効化されていない場合、この機能は使用できません。
• データプレーンの Sidecar が以前に設定のプッシュに成功している場合、Sidecar は最後に受信した正常なプッシュの設定を維持します。
• データプレーンの Sidecar が以前に設定のプッシュに成功していない場合、Sidecar には設定情報が一切ない状態となり、ノードにリスニングが存在しない可能性や、リクエストやルーティングルールを処理できない状態になることがあります。
1. ASM コンソールにログインします。
2. 左側のナビゲーションバーで、サービスメッシュ > メッシュ管理を選択します。
3. メッシュ管理ページで、設定するインスタンスを見つけ、インスタンス名をクリックするか、操作列の「管理」をクリックします。
4. メッシュ詳細ページの左側のナビゲーションバーで、メッシュインスタンス > 基本情報を選択します。
5. 基本情報ページで、コントロールプレーンのログ収集の右側にあるアラーム設定をクリックします。
6. コントロールプレーンのログアラーム設定ダイアログボックスで、アクションポリシーとして「サービスメッシュ ASM 組み込みアクションポリシー(推奨)」またはその他のカスタマイズされたアクションポリシーを選択し、「アラームを有効にする」をクリックします。アクションポリシーは、アラームがトリガーされた際の動作を定義するものです。SLS プロジェクトでアクションポリシーの作成や編集ができます。詳細については、「アクションポリシーの作成」をご参照ください。
7. 重要確認ダイアログボックスで「OK」をクリックします。
アラーム通知先の設定
アラーム管理センターは、SLS 配下のビジネスベースの統一インテリジェントアラーム運用プラットフォームです。グローバル設定 -> 通知ポリシー -> アクションポリシーで「SLS サービスゲートウェイ組み込みアクションポリシー」を見つけ、「修正」をクリックして、アラーム通知先や通知テンプレートなどを確認できます。
1. SLS コンソールでアラーム通知先を設定します。SLS コンソールのホーム画面で、ページ上部のログアプリケーションを見つけ、「ログアプリケーションをさらに表示」をクリックし、ポップアップページで「アラーム管理センター」を選択してクリックします。
2. ページの右上で「グローバル設定」をクリックします。
3. 左側のメニューでユーザー管理 -> ユーザーグループ管理を見つけ、右側の「修正」ボタンをクリックし、SLS サービスメッシュの組み込みユーザーグループを修正して対応する連絡先を追加することで、アラーム発生時の通知受信設定を行います。
4. 追加されたメンバーのリストに対応するアラーム通知先が含まれていることを確認します。
アラーム通知のトリガー例
1. ASM コンソールにログインします。
2. 左側のナビゲーションバーで、サービスメッシュ > メッシュ管理を選択します。
3. メッシュ管理ページで、設定するインスタンスを見つけ、インスタンス名をクリックするか、操作列の「管理」をクリックします。
4. メッシュ詳細ページの左側のナビゲーションバーで、トラフィック管理センター > ゲートウェイルールを選択し、右側のページで「YAML で作成」をクリックします。
5. 以下の手順に従ってサービスゲートウェイを定義し、「作成」をクリックします。
A. 対応する名前空間を選択します。本記事ではデフォルトの名前空間を例とします。
B. テキストボックスでサービスゲートウェイを定義します。以下の YAML 定義を参照してください。
6. 次に、メッシュ詳細ページの左側のナビゲーションバーで、メッシュインスタンス > 基本情報を選択します。
7. 基本情報ページで、コントロールプレーンのログ収集の右側にある「ログの表示」をクリックします。
8. ログサービスコンソールで「ACK ERROR」を検索すると、同様のログ内容を確認できます。
9. アラーム通知先のメールアドレスが正しく設定されている場合、以下のようなメールを受信できます。
または、DingTalk ロボットを設定して DingTalk グループでアラーム情報を受信することもできます。以下はその例です。
アラーム処理のリファレンススキーム
以下に、データプレーンの同期失敗に関する一般的なエラーメッセージと対処方法を記載します。以下の表に対応するエラー情報が見つからない場合は、チケットの送信をご検討ください。
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
