可観測性
可観測性機能を使用した Argo CD ログを表示と Argo CD およびアプリケーションリソースのパフォーマンスとヘルスの監視
概要
第1章 ロギング リンクのコピーリンクがクリップボードにコピーされました!
1.1. Argo CD ログの表示 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift のロギングサブシステムを使用して Argo CD ログを表示できます。ログサブシステムは、Kibana ダッシュボード上でログを視覚化します。OpenShift Logging Operator は、デフォルトで Argo CD を使用したロギングを有効にします。
1.1.1. Argo CD ログの保存と取得 リンクのコピーリンクがクリップボードにコピーされました!
Kibana ダッシュボードを使用して、Argo CD ログを保存および取得できます。
前提条件
- Red Hat OpenShift GitOps Operator がクラスターにインストールされている。
- Red Hat OpenShift のロギングサブシステムは、デフォルト設定でクラスターにインストールされている。
手順
-
OpenShift Container Platform Web コンソールで、
メニュー → Observability → Logging に移動して Kibana ダッシュボードを表示します。
インデックスパターンを作成します。
-
すべてのインデックスを表示するには、インデックスパターンを
*として定義し、Next step をクリックします。 - Time Filter field name として @timestamp を選択します。
- Create index pattern をクリックします。
-
すべてのインデックスを表示するには、インデックスパターンを
- Kibana ダッシュボードのナビゲーションパネルで、Discover タブをクリックします。
Argo CD のログを取得するフィルターを作成します。次の手順では、
openshift-gitopsnamespace 内のすべての Pod のログを取得するフィルターを作成します。- Add a filter + をクリックします。
- kubernetes.namespace_name フィールドを選択します。
- is 演算子を選択します。
- openshift-gitops 値を選択します。
- Save をクリックします。
-
オプション: フィルターを追加して検索を絞り込みます。たとえば、特定の Pod のログを取得するには、フィールドとして
kubernetes.pod_nameを使用して別のフィルターを作成できます。 - Kibana ダッシュボードでフィルタリングされた Argo CD ログを表示します。
第2章 モニタリング リンクのコピーリンクがクリップボードにコピーされました!
2.1. GitOps ダッシュボードによるモニタリング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift GitOps モニタリングダッシュボードを使用して GitOps インスタンスのグラフィカルビューにアクセスし、クラスター全体の各インスタンスの動作と使用状況を観察できます。
利用可能な GitOps ダッシュボードは 3 つあります。
- GitOps の概要: クラスターにインストールされているすべての GitOps インスタンスの概要 (アプリケーションの数、健全性と同期ステータス、アプリケーションと同期アクティビティーなど) を表示します。
- GitOps コンポーネント: アプリケーションコントローラー、リポジトリーサーバー、サーバー、およびその他の GitOps コンポーネントの CPU やメモリーなどの詳細情報を表示します。
- GitOps gRPC サービス : Red Hat OpenShift GitOps のさまざまなコンポーネント間の gRPC サービスアクティビティーに関連するメトリクスを表示します。
2.1.1. GitOps モニタリングダッシュボードへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
モニタリングダッシュボードは、Operator によって自動的にデプロイされます。OpenShift Container Platform Web コンソールの Administrator パースペクティブから、GitOps モニタリングダッシュボードにアクセスできます。
ダッシュボードのコンテンツの無効化または変更はサポートされていません。
前提条件
- OpenShift Container Platform Web コンソールにアクセスできる。
-
Red Hat OpenShift GitOps Operator は、デフォルトの namespace (
openshift-gitops-operator) にインストールされます。 -
クラスターモニタリングは、
openshift-gitops-operatornamespace 有効化されます。 -
定義した namespace (たとえば
openshift-gitops) に Argo CD アプリケーションをインストールしている。
手順
- Web コンソールの Administrator パースペクティブで、Observe → Dashboards に移動します。
- Dashboard ドロップダウンリストから、目的の GitOps ダッシュボードを選択します: GitOps (Overview)、GitOps / Components、または GitOps / gRPC Services。
- オプション: Namespace、Cluster、および Interval ドロップダウンリストから特定の namespace、クラスター、および間隔を選択します。
- GitOps ダッシュボードで必要な GitOps メトリクスを表示します。
2.2. Argo CD インスタンスのモニタリング リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Red Hat OpenShift GitOps Operator は、定義された namespace (例: openshift-gitops) にインストールされている Argo CD インスタンスを自動的に検出し、これをクラスターのモニタリングスタックに接続して、非同期アプリケーションに対するアラートを提供します。
2.2.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
cluster-admin権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- Red Hat OpenShift GitOps Operator がクラスターにインストールされている。
-
定義した namespace (たとえば
openshift-gitops) に Argo CD アプリケーションをインストールしている。
2.2.2. Prometheus メトリクスを使用した Argo CD ヘルスのモニタリング リンクのコピーリンクがクリップボードにコピーされました!
Prometheus メトリクスクエリーを実行して、Argo CD アプリケーションのヘルスステータスをモニタリングできます。
手順
- Web コンソールの Developer パースペクティブで、Argo CD アプリケーションがインストールされている namespace を選択し、Observe → Metrics に移動します。
- Select query ドロップダウンリストから、Custom query を選択します。
Argo CD アプリケーションのヘルスステータスを確認するには、Expression フィールドに、次の例のような Prometheus Query Language (PromQL) クエリーを入力します。
Example
sum(argocd_app_info{dest_namespace=~"<your_defined_namespace>",health_status!=""}) by (health_status)sum(argocd_app_info{dest_namespace=~"<your_defined_namespace>",health_status!=""}) by (health_status)1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<your_define_namespace>変数を、定義した namespace の実際の名前 (openshift-gitopsなど) に置き換えます。
2.3. GitOps Operator のパフォーマンスのモニタリング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift GitOps Operator は、パフォーマンスに関するメトリクスを生成します。これらのメトリクスを取得する OpenShift モニタリングスタックを使用すると、Operator のパフォーマンスをモニタリングおよび分析できます。Operator は以下のメトリクスを公開します。これらのメトリクスは、OpenShift Container Platform Web コンソールを使用して表示できます。
| メトリクス名 | 型 | 説明 |
|---|---|---|
|
| ゲージ | 特定の時点でクラスター全体で Operator によって現在管理されているアクティブな Argo CD インスタンスの合計数。 |
|
| ゲージ | 保留中や利用可能など、特定のフェーズにおけるアクティブな Argo CD インスタンスの数。 |
|
| カウンター | 特定の時点で、特定の namespace 内のインスタンスに対して発生した調整の合計数。 |
|
| カウンター |
インスタンスの指定された期間内に完了した調整サイクルの数。たとえば、 |
|
| カウンター | 特定のインスタンスで観察された調整サイクルの合計数。 |
|
| カウンター | 特定のインスタンスで観察された調整に要した合計時間。 |
ゲージは増減する値です。カウンターは増加のみの値です。
2.3.1. GitOps Operator メトリクスへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールの Administrator パースペクティブから Operator メトリクスにアクセスして、Operator のパフォーマンスを追跡できます。
前提条件
- OpenShift Container Platform Web コンソールにアクセスできる。
-
Red Hat OpenShift GitOps Operator は、デフォルトの
openshift-gitops-operatornamespace にインストールされます。 -
クラスターモニタリングは、
openshift-gitops-operatornamespace 有効化されます。
手順
- Web コンソールの Administrator パースペクティブで、Observe → Metrics に移動します。
Expression フィールドにメトリクスを入力します。次のメトリクスから選択できます。
-
active_argocd_instances_total -
active_argocd_instances_by_phase -
active_argocd_instance_reconciliation_count -
controller_runtime_reconcile_time_seconds_per_instance_bucket -
controller_runtime_reconcile_time_seconds_per_instance_count -
controller_runtime_reconcile_time_seconds_per_instance_sum
-
(オプション): プロパティーごとにメトリクスをフィルターします。たとえば、
active_argocd_instances_by_phaseメトリクスをAvailableフェーズでフィルターします。Example
active_argocd_instances_by_phase{phase="Available"}active_argocd_instances_by_phase{phase="Available"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow - (オプション): Add query をクリックして、複数のクエリーを入力します。
- Run queries をクリックして、GitOps Operator メトリクスを有効にして観察します。
2.4. アプリケーションリソースおよびデプロイメントのヘルス情報のモニタリング リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールの Developer パースペクティブにある Red Hat OpenShift GitOps Environments ページには、成功したアプリケーション環境のデプロイメントのリスト、および各デプロイメントのリビジョンへのリンクが表示されます。
OpenShift Container Platform Web コンソールの Developer パースペクティブの Application environments ページには、ルート、同期ステータス、デプロイメント設定、デプロイメント履歴などのアプリケーションリソースのヘルスステータスが表示されます。
OpenShift Container Platform Web コンソールの Developer パースペクティブの環境ページは、Red Hat OpenShift GitOps Application Manager コマンドラインインターフェイス (CLI) の kam から分離されています。環境が OpenShift Container Platform Web コンソールの Developer パースペクティブに表示されるように、kam を使用して、Application Environment マニフェストを生成する必要はありません。独自のマニフェストを使用できますが、環境は引き続き namespace で表す必要があります。さらに、特定のラベルとアノテーションが必要です。
2.4.1. 環境ラベルとアノテーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、OpenShift Container Platform Web コンソールの Developer パースペクティブの Environments ページに環境アプリケーションを表示するために必要な環境ラベルとアノテーションの設定を参考として示します。
環境ラベル
環境アプリケーションマニフェスト には、labels.openshift.gitops/environment フィールド と destination.namespace フィールドが含まれている必要があります。<environment_name> 変数と環境アプリケーションマニフェストの名前には、必ず同じ値を設定してください。
環境アプリケーションマニフェストの仕様
環境アプリケーションマニフェストの例
- 1
- 環境アプリケーションマニフェストの名前。
<environment_name>変数の値と同じ値を設定します。
環境アノテーション
環境 namespace マニフェストには、アプリケーションのバージョンコントローラーコードソースを指定するための annotations.app.openshift.io/vcs-uri フィールドと annotations.app.openshift.io/vcs-ref フィールドが含まれている必要があります。<environment_name> 変数と環境 namespace マニフェストの名前には、必ず同じ値を設定してください。
環境 namespace マニフェストの仕様
- 1
- 環境 namespace マニフェストの名前。
<environment_name>変数の値と同じ値を設定します。
環境 namespace マニフェストの例
2.4.2. ヘルス情報の確認 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift GitOps Operator は、GitOps バックエンドサービスを openshift-gitops namespace にインストールします。
前提条件
- Red Hat OpenShift GitOps Operator は OperatorHub からインストールされます。
- アプリケーションが Argo CD によって同期されていることを確認します。
手順
- Developer パースペクティブの下の Environments をクリックします。Environments ページには、Environment status と共にアプリケーションの一覧が表示されます。
- Environment status 列の下のアイコンの上にマウスをかざすと、すべての環境の同期ステータスが表示されます。
- 一覧からアプリケーション名をクリックし、特定のアプリケーションの詳細を表示します。
Application environments ページで、Overview タブの Resources セクションにアイコンが表示されている場合は、アイコンにカーソルを合わせると、ステータスの詳細が表示されます。
- ひびの入ったハートは、リソースの問題によってアプリケーションのパフォーマンスが低下したことを示します。
- 黄色の逆三角形は、リソースの問題により、アプリケーションのヘルスに関するデータが遅れたことを示します。
- アプリケーションのデプロイメント履歴を表示するには、Deployment History タブをクリックします。このページには、Last deployment、Description (コミットメッセージ)、Environment、Author、および Revision などの詳細が含まれます。
2.5. Argo CD カスタムリソースワークロードの監視 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift GitOps を使用すると、特定の Argo CD インスタンスの Argo CD カスタムリソースワークロードの可用性を監視できます。Argo CD カスタムリソースワークロードを監視すると、Argo CD インスタンスのアラートを有効にして、その状態に関する最新情報を入手できます。対応する Argo CD インスタンスのアプリケーションコントローラー、リポジトリーサーバー、またはサーバーなどのコンポーネントワークロード Pod が特定の理由で起動できず、準備ができているレプリカの数と必要なレプリカの数の間にずれがある場合、一定期間、Operator はアラートをトリガーします。
Argo CD カスタムリソースのワークロードを監視するための設定を有効または無効にすることができます。
2.5.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - Red Hat OpenShift GitOps がクラスターにインストールされている。
-
監視スタックは、
openshift-monitoringプロジェクトのクラスターで設定されます。さらに、Argo CD インスタンスは、Prometheus を介して監視できる namespace にあります。 -
kube-state-metricsサービスがクラスターで実行されています。 オプション: ユーザー定義プロジェクトにすでに存在する Argo CD インスタンスの監視を有効にする場合は、クラスター内の ユーザー定義プロジェクトに対して監視が有効になっている ことを確認してください。
注記デフォルトの
openshift-monitoringスタックによって監視されていない namespace (たとえば、openshift-*で始まらない namespace) で Argo CD インスタンスの監視を有効にする場合は、クラスターでユーザーワークロードの監視を有効にする必要があります。このアクションにより、監視スタックが作成された PrometheusRule を取得できるようになります。
2.5.2. Argo CD カスタムリソースワークロードの監視を有効にする リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Argo CD カスタムリソースワークロードの監視設定は、false に設定されています。
Red Hat OpenShift GitOps を使用すると、特定の Argo CD インスタンスのワークロード監視を有効にすることができます。その結果、Operator は、特定の Argo CD インスタンスによって管理されるすべてのワークロードのアラートルールを含む PrometheusRule オブジェクトを作成します。これらのアラートルールは、対応するコンポーネントのレプリカ数が一定時間、望ましい状態からずれると、アラートの起動をトリガーします。Operator は、ユーザーが PrometheusRule オブジェクトに加えた変更を上書きしません。
手順
特定の Argo CD インスタンスで
.spec.monitoring.enabledフィールドの値をtrueに設定します。Argo CD カスタムリソースの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator によって作成された PrometheusRule にアラートルールが含まれているかどうかを確認します。
アラートルールの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Argo CD インスタンスによって作成されたワークロードが期待どおりに実行されているかどうかをチェックする PrometheusRule のアラートルール。
2.5.3. Argo CD カスタムリソースワークロードの監視の無効化 リンクのコピーリンクがクリップボードにコピーされました!
特定の Argo CD インスタンスのワークロード監視を無効にすることができます。ワークロードの監視を無効にすると、作成された PrometheusRule が削除されます。
手順
特定の Argo CD インスタンスで
.spec.monitoring.enabledフィールドの値をfalseに設定します。Argo CD カスタムリソースの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow