10.6. Zero Trust Workload Identity Manager のモニタリング
デフォルトでは、Zero Trust Workload Identity Manager の SPIRE Server および SPIRE Agent コンポーネントがメトリクスを出力します。Prometheus Operator 形式を使用してこれらのメトリクスを収集するように OpenShift Monitoring を設定できます。
10.6.1. ユーザーワークロードモニタリングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスターでユーザーワークロードモニタリングを設定することで、ユーザー定義プロジェクトのモニタリングを有効にできます。
前提条件
-
cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。
手順
cluster-monitoring-config.yamlファイルを作成し、ConfigMapを定義および設定します。apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | enableUserWorkload: true次のコマンドを実行して
ConfigMapを適用します。$ oc apply -f cluster-monitoring-config.yaml
検証
ユーザーワークロードのモニタリングコンポーネントが
openshift-user-workload-monitoringnamespace で実行されていることを確認します。$ oc -n openshift-user-workload-monitoring get pod出力例
NAME READY STATUS RESTARTS AGE prometheus-operator-6cb6bd9588-dtzxq 2/2 Running 0 50s prometheus-user-workload-0 6/6 Running 0 48s prometheus-user-workload-1 6/6 Running 0 48s thanos-ruler-user-workload-0 4/4 Running 0 42s thanos-ruler-user-workload-1 4/4 Running 0 42s
prometheus-operator、prometheus-user-workload、thanos-ruler-user-workload などの Pod のステータスが Running である必要があります。
10.6.2. サービスモニターを使用した SPIRE サーバーのメトリクス収集の設定 リンクのコピーリンクがクリップボードにコピーされました!
SPIRE サーバーのオペランドは、デフォルトで /metrics エンドポイントのポート 9402 でメトリクスを公開します。Prometheus Operator によるカスタムメトリクスの収集を可能にする ServiceMonitor カスタムリソース (CR) を作成することで、SPIRE サーバーのメトリクス収集を設定できます。
前提条件
-
cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。 - Zero Trust Workload Identity Manager がインストールされている。
- クラスターに SPIRE Server のオペランドがデプロイされている。
- ユーザーワークロードモニタリングが有効になっている。
手順
ServiceMonitorCR を作成します。ServiceMonitorCR を定義する YAML ファイルを作成します。servicemonitor-spire-serverファイルの例apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app.kubernetes.io/name: server app.kubernetes.io/instance: spire name: spire-server-metrics namespace: zero-trust-workload-identity-manager spec: endpoints: - port: metrics interval: 30s path: /metrics selector: matchLabels: app.kubernetes.io/name: server app.kubernetes.io/instance: spire namespaceSelector: matchNames: - zero-trust-workload-identity-manager次のコマンドを実行して
ServiceMonitorCR を作成します。$ oc create -f servicemonitor-spire-server.yamlServiceMonitorCR が作成されると、ユーザーワークロードの Prometheus インスタンスが、SPIRE Server からのメトリクス収集を開始します。収集されたメトリクスには、job="spire-server"というラベルが付けられます。
検証
-
OpenShift Container Platform Web コンソールで、Observe
Targets に移動します。 Label フィルターフィールドに次のラベルを入力して、メトリクスターゲットをフィルタリングします。
$ service=spire-server-
spire-server-metricsエントリーの Status 列にUpと表示されていることを確認します。
10.6.3. サービスモニターを使用した SPIRE エージェントのメトリクス収集の設定 リンクのコピーリンクがクリップボードにコピーされました!
SPIRE エージェントのオペランドは、デフォルトで /metrics エンドポイントのポート 9402 でメトリクスを公開します。Prometheus Operator によるカスタムメトリクスの収集を可能にする ServiceMonitor カスタムリソース (CR) を作成することで、SPIRE エージェントのメトリクス収集を設定できます。
前提条件
-
cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。 - Zero Trust Workload Identity Manager がインストールされている。
- クラスターに SPIRE Agent のオペランドをデプロイしている。
- ユーザーワークロードモニタリングが有効になっている。
手順
ServiceMonitorCR を作成します。ServiceMonitorCR を定義する YAML ファイルを作成します。servicemonitor-spire-agent.yamlファイルの例apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app.kubernetes.io/name: agent app.kubernetes.io/instance: spire name: spire-agent-metrics namespace: zero-trust-workload-identity-manager spec: endpoints: - port: metrics interval: 30s path: /metrics selector: matchLabels: app.kubernetes.io/name: agent app.kubernetes.io/instance: spire namespaceSelector: matchNames: - zero-trust-workload-identity-manager次のコマンドを実行して
ServiceMonitorCR を作成します。$ oc create -f servicemonitor-spire-agent.yamlServiceMonitorCR が作成されると、ユーザーワークロードの Prometheus インスタンスが、SPIRE エージェントからのメトリクス収集を開始します。収集されたメトリクスには、job="spire-agent"というラベルが付けられます。
検証
-
OpenShift Container Platform Web コンソールで、Observe
Targets に移動します。 Label フィルターフィールドに次のラベルを入力して、メトリクスターゲットをフィルタリングします。
$ service=spire-agent-
spire-agent-metricsエントリーの Status 列にUpと表示されていることを確認します。
10.6.4. Zero Trust Workload Identity Manager のメトリクスの照会 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者、またはすべての namespace に対する表示アクセス権を持つユーザーは、OpenShift Container Platform Web コンソールまたはコマンドラインを使用して、SPIRE Agent および SPIRE Server のメトリクスを照会できます。照会すると、指定したジョブラベルに一致する、SPIRE コンポーネントから収集されたすべてのメトリクスが取得されます。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - Zero Trust Workload Identity Manager がインストールされている。
- クラスターに SPIRE Server と SPIRE Agent のオペランドがデプロイされている。
-
ServiceMonitorオブジェクトを作成して、モニタリングとメトリクスの収集を有効化している。
手順
-
OpenShift Container Platform Web コンソールで、Observe
Metrics に移動します。 クエリーフィールドに次の PromQL 式を入力して、SPIRE Server のメトリクスを照会します。
{job="spire-server"}クエリーフィールドに次の PromQL 式を入力して、SPIRE Agent のメトリクスを照会します。
{job="spire-agent"}