可観測性
可観測性機能を使用した 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 が OpenShift Container Platform クラスターにインストールされている。
- Red Hat OpenShift のロギングサブシステムが、OpenShift Container Platform クラスターにデフォルト設定でインストールされている。
手順
-
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 ダッシュボードは 4 つあります。
- GitOps の概要: クラスターにインストールされているすべての GitOps インスタンスの概要 (アプリケーションの数、健全性と同期ステータス、アプリケーションと同期アクティビティーなど) を表示します。
- GitOps コンポーネント: アプリケーションコントローラー、リポジトリーサーバー、サーバー、およびその他の GitOps コンポーネントの CPU やメモリーなどの詳細情報を表示します。
- GitOps gRPC サービス : Red Hat OpenShift GitOps のさまざまなコンポーネント間の gRPC サービスアクティビティーに関連するメトリクスを表示します。
- GitOps ロールアウト: アクティブなロールアウトリソースの合計、使用可能なレプリカ、必要なレプリカ、および使用できないレプリカの数、ならびに Rollouts コントローラーのパフォーマンスに関する統計に関連するメトリクスを表示します。
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、または GitOps / Rollouts を選択します。
- オプション: 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) クエリーを入力します。
例
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.2.3. Argo CD インスタンスのメトリクスの自動スクレイピングを無効にする リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Red Hat OpenShift GitOps Operator は、すべての Argo CD インスタンスのメトリクスを自動的に収集してパフォーマンスを測定します。その結果、Operator は、Argo CD インスタンスがインストールされている namespace に次のリソースとラベルを作成します。
-
gitops-operator-argocd-alertsPrometheus ルール -
<argocd_namespace>-readロール -
<argocd_name>、<argocd_name>-repo-server、および<argocd_name>-serverサービスモニター -
<argocd_namespace>-prometheus-k8s-read-bindingロールバインディング -
openshift.io/cluster-monitoring=trueラベル
クラスター内の複数の Argo CD インスタンスのメトリクスをスクレイピングすると、ストレージの使用量が過剰になる可能性があります。予防策として、Web コンソールの YAML ビューを使用して ArgoCD カスタムリソース (CR) を設定し、Argo CD インスタンスのメトリクスの自動スクレイピングを無効にします。
クラスター管理者は、個々のインスタンスのメトリクススクレイピングを無効にすることで、定義された namespace を管理するための制御性、柔軟性、安定性をユーザーに提供できます。
手順
- OpenShift Container Platform Web コンソールにログインします。
- Web コンソールの Administrator パースペクティブで、Operators → Installed Operators の順にクリックします。
- Project リストから、ユーザー定義の Argo CD インスタンスがインストールされているプロジェクトを選択します。
- インストールされた Operator のリストから Red Hat OpenShift GitOps を選択し、Argo CD タブに移動します。
- ユーザー定義の Argo CD インスタンスをクリックします。
ユーザー定義の Argo CD インスタンスの
ArgoCDCR を設定して、メトリクスの自動スクレイピングを無効にします。-
YAML タブをクリックし、
ArgoCDCR の YAML ファイルを編集します。 ArgoCDCR で、spec.monitoring.disableMetricsフィールドの値をtrueに設定します。ArgoCDCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒントまたは、Red Hat OpenShift GitOps
argocdCLI でメトリクスの自動スクレイピングを無効にするには、次のコマンドを使用します。コマンドの例
oc patch argocd example -n spring-petclinic --type='json' -p='[{"op": "replace", "path": "/spec/monitoring/disableMetrics", "value": true}]'$ oc patch argocd example -n spring-petclinic --type='json' -p='[{"op": "replace", "path": "/spec/monitoring/disableMetrics", "value": true}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
argocd.argoproj.io/example patched
argocd.argoproj.io/example patchedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
YAML タブをクリックし、
Operator が定義した namespace に
openshift.io/cluster-monitoring=falseラベルを追加したことを確認します。Administration → Namespaces に移動します。
Namespaces ページには、作成された namespace が表示されます。
-
定義した namespace をクリックし、YAML タブに移動して、
metadata.labelsセクションの下に、Operator によってopenshift.io/cluster-monitoring=falseラベルが追加されていることを確認します。
Operator が定義した namespace から次のリソースを削除することを確認します。
- Home → Search に移動します。
Resources リストから、PrometheusRule、Role、RoleBinding、ServiceMonitors を選択します。
Search ページには選択したリソースが表示されます。
-
Search ページで、PrometheusRule セクションで、
gitops-operator-argocd-alertsprometheus ルールが削除されていることを確認します。 - Roles セクションの Filter リストから、Namespace Roles を選択します。
-
<argocd_namespace>-readロールが削除されていることを確認します。 - RoleBindings セクションの Filter リストから、Namespace RoleBindings を選択します。
-
<argocd_namespace>-prometheus-k8s-read-bindingロールバインディングが削除されていることを確認します。 -
ServiceMonitors セクションで、
<argocd_name>、<argocd_name>-repo-server、および<argocd_name>-serverサービスモニターが削除されていることを確認します。
spec.monitoring.disableMetrics フィールドの値を false に変更することで、インスタンスのメトリクスを有効にできます。次に、Operator は必要なロール、ロールバインディング、およびサービスモニターを作成し、定義された namespace に openshift.io/cluster-monitoring=true ラベルを追加します。
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フェーズでフィルターします。例
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