5.4. トラブルシューティング UI プラグイン
Cluster Observability Operator はテクノロジープレビュー機能としてのみ使用できます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
OpenShift Container Platform バージョン 4.16 以降のトラブルシューティング UI プラグインは、オープンソースの Korrel8r プロジェクトを利用した可観測性シグナル相関付け機能を提供します。Observe
トラブルシューティング UI プラグインをインストールすると、korrel8r
という名前の Korrel8r サービスが同じ namespace にデプロイされ、相関エンジンから関連する可観測性シグナルと Kubernetes リソースを特定できるようになります。
Korrel8r の出力は、OpenShift Container Platform Web コンソールにインタラクティブなノードグラフの形式で表示されます。グラフ内のノードはリソースまたはシグナルの種類を表し、エッジは関係を表します。ノードをクリックすると、メトリクス、ログ、Pod など、そのノードの詳細情報を含む対応する Web コンソールページに自動的にリダイレクトされます。
5.4.1. Cluster Observability Operator トラブルシューティング UI プラグインのインストール
前提条件
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにログインしている。
- Cluster Observability Operator がインストールされている。
手順
-
OpenShift Container Platform Web コンソールで、Operator
Installed Operator をクリックし、Cluster Observability Operator を選択します。 - UI Plugin タブ (タブリストの右端) を選択し、Create UIPlugin を押します。
YAML view を選択し、次の内容を入力して、Create を押します。
apiVersion: observability.openshift.io/v1alpha1 kind: UIPlugin metadata: name: troubleshooting-panel spec: type: TroubleshootingPanel
5.4.2. Cluster Observability Operator トラブルシューティング UI プラグインの使用
前提条件
-
cluster-admin
クラスターロールを持つユーザーとして OpenShift Container Platform クラスターにアクセスできる。クラスターのバージョンが 4.17 以降の場合は、アプリケーションランチャー からトラブルシューティング UI パネルにアクセスできます。 - OpenShift Container Platform Web コンソールにログインしている。
- OpenShift Container Platform Logging がインストールされている (相関ログを視覚化する場合)。
- OpenShift Container Platform Network Observability がインストールされている (相関ネットフローを視覚化する場合)。
- Cluster Observability Operator がインストールされている。
Cluster Observability Operator トラブルシューティング UI プラグインがインストールされている。
注記トラブルシューティングパネルは、クラスターにインストールされている可観測性シグナルストアに依存します。Kubernetes リソース、アラート、およびメトリクスは、OpenShift Container Platform クラスターで常にデフォルトで使用できます。以下に示すその他のシグナルタイプを使用するには、オプションのコンポーネントをインストールする必要があります。
- ログ: Red Hat Openshift Logging (コレクション) および Red Hat が提供する Loki Operator (ストア)
- ネットワークイベント: Red Hat が提供する Network Observability (コレクション) と Red Hat が提供する Loki Operator (ストア)
手順
Web コンソールの Administrator パースペクティブで、Observe
Alerting に移動し、アラートを選択します。アラートに相関項目がある場合、アラート詳細ページのグラフの上に Troubleshooting Panel リンクが表示されます。 Troubleshooting Panel リンクをクリックしてパネルを表示します。
-
パネルは、クエリーの詳細とクエリー結果のトポロジーグラフで構成されています。選択したアラートは、Korrel8r クエリー文字列に変換され、
korrel8r
サービスに送信されます。結果は、返されたシグナルとリソースを結ぶグラフネットワークとして表示されます。これは、現在のリソースから始まり、開始点から最大 3 ステップ離れた関連オブジェクトを含む 近傍 グラフです。グラフ内のノードをクリックすると、それらのリソースに対応する Web コンソールページに移動します。 トラブルシューティングパネルを使用して、選択したアラートに関連するリソースを見つけることができます。
注記ノードをクリックすると、グラフに表示されているよりも少ない結果が表示される場合があります。これは既知の問題であり、今後のリリースで対処される予定です。
-
Alert (1): このノードはグラフの開始点です。Web コンソールに表示される
KubeContainerWaiting
アラートを表します。 -
Pod (1): このノードは、このアラートに関連付けられた
Pod
リソースが 1 つあることを示しています。このノードをクリックすると、コンソール検索が開き、関連する Pod が直接表示されます。 - Event (2): Pod に関連付けられた Kuberenetes イベントが 2 つあります。このノードをクリックすると、イベントが表示されます。
- Logs (74): この Pod には 74 行のログがあります。このノードをクリックすると、ログにアクセスできます。
- Metrics (105): Pod に関連付けられたメトリクスが多数あります。
-
Network (6): 複数のネットワークイベントがあります。これは、Pod がネットワーク経由で通信したことを示しています。グラフ内の残りのノードは、Pod が通信した
Service
、Deployment
、DaemonSet
リソースを表しています。 - Focus: このボタンをクリックすると、グラフが更新されます。デフォルトでは、グラフ内のノードをクリックしてもグラフ自体は変わりません。代わりに、メインの Web コンソールページが変更され、ページ上のリンクを使用して他のリソースに移動できるようになります。トラブルシューティングパネル自体は、開いたまま変更されません。トラブルシューティングパネルのグラフを強制的に更新するには、Focus をクリックします。すると、Web コンソールの現在のリソースを開始点として使用して、新しいグラフが描画されます。
Show Query: このボタンをクリックすると、いくつかの実験的な機能が有効になります。
- Hide Query をクリックすると、実験的な機能が非表示になります。
- グラフの開始点を示すクエリー。グラフの作成に使用される Korrel8r 相関エンジンの一部であるクエリー言語は、実験段階であり、今後変更される可能性があります。Focus ボタンを押すと、メインの Web コンソールウィンドウ内のリソースに合わせてクエリーが更新されます。
Neighbourhood depth は、表示する近傍の数を増減するために使用します。
注記大規模なクラスターで大きな値を設定すると、結果の数が多すぎる場合にクエリーが失敗する可能性があります。
Goal class を選択すると、近傍検索ではなく目標指向型の検索になります。目標指向型の検索では、開始点から目標クラスまでのすべてのパスが表示されます。目標クラスは、リソースまたはシグナルの種類を示します。目標クラス形式は実験的なものであり、変更される可能性があります。現在、次の目標が有効です。
-
k8s:RESOURCE[VERSION.[GROUP]]
は、kuberenetes リソースの種類を示します。たとえば、k8s:Pod
やk8s:Deployment.apps.v1
です。 -
alert:alert
は、アラートを表します。 -
metric:metric
は、メトリクスを表します。 -
netflow:network
は、ネットワークの可観測性ネットワークイベントを表します。 -
log:LOG_TYPE
は、保存されたログを表します。LOG_TYPE
は、application
、infrastructure
、またはaudit
のいずれかである必要があります。
-
-
Alert (1): このノードはグラフの開始点です。Web コンソールに表示される
5.4.3. サンプルアラートの作成
トラブルシューティング UI パネルで出発点として使用するアラートをトリガーする場合は、意図的に誤った設定を指定したコンテナーをデプロイできます。
手順
コマンドラインまたは Web コンソールから次の YAML を使用して、システムの namespace に壊れたデプロイメントを作成します。
apiVersion: apps/v1 kind: Deployment metadata: name: bad-deployment namespace: default 1 spec: selector: matchLabels: app: bad-deployment template: metadata: labels: app: bad-deployment spec: containers: 2 - name: bad-deployment image: quay.io/openshift-logging/vector:5.8
アラートを表示します。
Observe
Alerting に移動し、clear all filters をクリックします。 Pending
のアラートを表示します。重要アラートは最初
Pending
状態で表示されます。コンテナーがクラッシュするまで、アラートの発生 (Firing
) は開始しません。Pending
のアラートを確認できるため、アラートが発生するまで待つ必要はありません。-
KubeContainerWaiting
、KubePodCrashLooping
、またはKubePodNotReady
アラートのいずれかを選択し、リンクをクリックしてトラブルシューティングパネルを開きます。または、パネルがすでに開いている場合は、"Focus" ボタンをクリックしてグラフを更新します。