3.3. コアプラットフォームモニタリングのデータの保存と記録
メトリクスとアラートデータの保存および記録、ログの設定と記録するアクティビティーの指定、Prometheus が保存されたデータを保持する期間の制御、データの最大ディスク領域の設定を行います。これらのアクションは、データを保護し、データをトラブルシューティングに使用するのに役立ちます。
3.3.1. 永続ストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
永続ストレージを使用してクラスターモニタリングを実行すると、次の利点が得られます。
- メトリクスとアラートデータを永続ボリューム (PV) に保存することで、データ損失から保護します。その結果、Pod が再起動または再作成されても存続できます。
- Alertmanager Pod が再起動したときに、重複した通知を受信したり、アラートのサイレンスが失われたりするのを回避します。
実稼働環境では、永続ストレージを設定することを強く推奨します。
マルチノードクラスターでは、高可用性を実現するために、Prometheus、Alertmanager、および Thanos Ruler の永続ストレージを設定する必要があります。
3.3.1.1. 永続ストレージの前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- ディスクが一杯にならないように十分な永続ストレージを確保します。
永続ボリュームを設定する際に、
volumeMode
パラメーターのストレージタイプ値としてFilesystem
を使用します。重要-
PersistentVolume
リソースでvolumeMode: Block
で記述されている生のブロックボリュームを使用しないでください。Prometheus は raw ブロックボリュームを使用できません。 - Prometheus は、POSIX に準拠していないファイルシステムをサポートしません。たとえば、一部の NFS ファイルシステム実装は POSIX に準拠していません。ストレージに NFS ファイルシステムを使用する場合は、NFS 実装が完全に POSIX に準拠していることをベンダーに確認してください。
-
3.3.1.2. 永続ボリューム要求の設定 リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントの監視に永続ボリューム (PV) を使用するには、永続ボリューム要求 (PVC) を設定する必要があります。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
cluster-monitoring-config
ConfigMap
オブジェクトを作成している。 -
OpenShift CLI (
oc
) がインストールされている。
手順
openshift-monitoring
プロジェクトでcluster-monitoring-config
config map を編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネントの PVC 設定を
data/config.yaml
の下に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例では、Prometheus の永続ストレージを要求する PVC を設定します。
PVC 設定の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を適用するためにファイルを保存します。新しい設定の影響を受ける Pod は自動的に再デプロイされ、新しいストレージ設定が適用されます。
警告PVC 設定で config map を更新すると、影響を受ける
StatefulSet
オブジェクトが再作成され、一時的なサービス停止が発生します。
3.3.1.3. 永続ボリュームのサイズ変更 リンクのコピーリンクがクリップボードにコピーされました!
モニタリングコンポーネント (Prometheus や Alertmanager など) の永続ボリューム (PV) のサイズを変更できます。永続ボリューム要求 (PVC) を手動で拡張し、コンポーネントが設定されている config map を更新する必要があります。
PVC のサイズのみ拡張可能です。ストレージサイズを縮小することはできません。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
cluster-monitoring-config
ConfigMap
オブジェクトを作成している。 - コア OpenShift Container Platform モニタリングコンポーネント用に少なくとも 1 つの PVC を設定しました。
-
OpenShift CLI (
oc
) がインストールされている。
手順
- 更新されたストレージ要求を使用して PVC を手動で拡張します。詳細は、永続ボリュームの拡張 の「ファイルシステムを使用した永続ボリューム要求 (PVC) の拡張」を参照してください。
openshift-monitoring
プロジェクトでcluster-monitoring-config
config map を編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow data/config.yaml
の下に、コンポーネントの PVC 設定用の新しいストレージサイズを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例では、Prometheus インスタンスの新しい PVC 要求を 100 ギガバイトに設定します。
prometheusK8s
のストレージ設定例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を適用するためにファイルを保存します。新しい設定の影響を受ける Pod は自動的に再デプロイされます。
警告新しいストレージサイズで config map を更新すると、影響を受ける
StatefulSet
オブジェクトが再作成され、サービスが一時的に停止します。
3.3.2. Prometheus メトリクスデータの保持期間およびサイズの変更 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Prometheus はコアプラットフォームモニタリングのメトリクスデータを 15 日間保持します。データの削除時に Prometheus インスタンスが変更する保持時間を変更できます。保持されるメトリクスデータが使用するディスク容量の最大量を設定することもできます。
データコンパクションは 2 時間ごとに実行されます。そのため、コンパクションが実行される前に永続ボリューム (PV) がいっぱいになり、retentionSize
制限を超える可能性があります。その場合、PV 上のスペースが retentionSize
制限を下回るまで、KubePersistentVolumeFillingUp
アラートが発生します。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
cluster-monitoring-config
ConfigMap
オブジェクトを作成している。 -
OpenShift CLI (
oc
) がインストールされている。
手順
openshift-monitoring
プロジェクトでcluster-monitoring-config
config map を編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 保持期間およびサイズ設定を
data/config.yaml
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例では、Prometheus インスタンスの保持時間を 24 時間、保持サイズを 10 ギガバイトに設定します。
Prometheus の保持期間を設定する例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を適用するためにファイルを保存します。新しい設定の影響を受ける Pod は自動的に再デプロイされます。
3.3.3. Metrics Server の監査ログの設定 リンクのコピーリンクがクリップボードにコピーされました!
Metrics Server の監査ログを設定して、サーバー問題のトラブルシューティングに役立てることができます。監査ログには、クラスター内のアクションシーケンスが記録されます。ユーザー、アプリケーション、コントロールプレーンのアクティビティーも記録できます。
監査ログルールを設定して、特定のイベントと関連データのサブセットを記録できます。次の監査プロファイルは設定ルールを定義します。
-
Metadata
(デフォルト): このプロファイルは、ユーザー、タイムスタンプ、リソース、動詞などのイベントメタデータを記録します。リクエストとレスポンスのボディーは記録されません。 -
Request
: このプロファイルは、イベントメタデータとリクエストボディーをログに記録しますが、レスポンスボディーは記録しません。この設定は、リソースリクエスト以外には適用されません。 -
RequestResponse
: このプロファイルは、イベントメタデータ、リクエストボディー、およびレスポンスボディーをログに記録します。この設定は、リソースリクエスト以外には適用されません。 -
None
: 前述のイベントはいずれも記録されません。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
cluster-monitoring-config
ConfigMap
オブジェクトを作成している。 -
OpenShift CLI (
oc
) がインストールされている。
手順
openshift-monitoring
プロジェクトでcluster-monitoring-config
config map を編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow data/config.yaml
の下に Metrics Server の監査ログ設定を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Metrics Server の監査プロファイルを指定します。
- 変更を適用するためにファイルを保存します。新しい設定の影響を受ける Pod は自動的に再デプロイされます。
監査プロファイルが適用されていることを確認します。
oc -n openshift-monitoring get deploy metrics-server -o yaml | grep -- '--audit-policy-file=*'
$ oc -n openshift-monitoring get deploy metrics-server -o yaml | grep -- '--audit-policy-file=*'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
- --audit-policy-file=/etc/audit/request-profile.yaml
- --audit-policy-file=/etc/audit/request-profile.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.4. モニタリングコンポーネントのログレベルの設定 リンクのコピーリンクがクリップボードにコピーされました!
Alertmanager、Prometheus Operator、Prometheus、および Thanos Querier のログレベルを設定できます。
cluster-monitoring-config
ConfigMap
オブジェクト内の関連コンポーネントには、次のログレベルを適用できます。
-
debug
:デバッグ、情報、警告、およびエラーメッセージをログに記録します。 -
info
:情報、警告およびエラーメッセージをログに記録します。 -
warn
:警告およびエラーメッセージのみをログに記録します。 -
error
:エラーメッセージのみをログに記録します。
デフォルトのログレベルは info
です。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
cluster-monitoring-config
ConfigMap
オブジェクトを作成している。 -
OpenShift CLI (
oc
) がインストールされている。
手順
openshift-monitoring
プロジェクトでcluster-monitoring-config
config map を編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネントの
logLevel: <log_level>
をdata/config.yaml
の下に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を適用するためにファイルを保存します。新しい設定の影響を受ける Pod は自動的に再デプロイされます。
関連するプロジェクトでデプロイメントまたは Pod 設定を確認し、ログレベルが適用されていることを確認します。以下の例では、
prometheus-operator
デプロイメントのログレベルを確認します。oc -n openshift-monitoring get deploy prometheus-operator -o yaml | grep "log-level"
$ oc -n openshift-monitoring get deploy prometheus-operator -o yaml | grep "log-level"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
- --log-level=debug
- --log-level=debug
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネントの Pod が実行中であることを確認します。次の例では、Pod のステータスをリスト表示します。
oc -n openshift-monitoring get pods
$ oc -n openshift-monitoring get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記認識されない
logLevel
値がConfigMap
オブジェクトに含まれる場合は、コンポーネントの Pod が正常に再起動しない可能性があります。
3.3.5. Prometheus のクエリーログファイルの有効化 リンクのコピーリンクがクリップボードにコピーされました!
エンジンによって実行されたすべてのクエリーをログファイルに書き込むように Prometheus を設定できます。
ログローテーションはサポートされていないため、問題のトラブルシューティングが必要な場合にのみ、この機能を一時的に有効にします。トラブルシューティングが終了したら、ConfigMap
オブジェクトに加えた変更を元に戻してクエリーログを無効にし、機能を有効にします。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
cluster-monitoring-config
ConfigMap
オブジェクトを作成している。 -
OpenShift CLI (
oc
) がインストールされている。
手順
openshift-monitoring
プロジェクトでcluster-monitoring-config
config map を編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Prometheus の
queryLogFile
パラメーターをdata/config.yaml
の下に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- クエリーが記録されるファイルへの完全なパスを追加します。
- 変更を適用するためにファイルを保存します。新しい設定の影響を受ける Pod は自動的に再デプロイされます。
コンポーネントの Pod が実行中であることを確認します。次のコマンド例は、Pod のステータスを表示します。
oc -n openshift-monitoring get pods
$ oc -n openshift-monitoring get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クエリーログを読みます。
oc -n openshift-monitoring exec prometheus-k8s-0 -- cat <path>
$ oc -n openshift-monitoring exec prometheus-k8s-0 -- cat <path>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要ログに記録されたクエリー情報を確認した後、config map の設定を元に戻します。
3.3.6. Thanos Querier のクエリーロギングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
openshift-monitoring
プロジェクトのデフォルトのプラットフォームモニタリングの場合、Cluster Monitoring Operator (CMO) を有効にして Thanos Querier によって実行されるすべてのクエリーをログに記録できます。
ログローテーションはサポートされていないため、問題のトラブルシューティングが必要な場合にのみ、この機能を一時的に有効にします。トラブルシューティングが終了したら、ConfigMap
オブジェクトに加えた変更を元に戻してクエリーログを無効にし、機能を有効にします。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
cluster-monitoring-config
ConfigMap
オブジェクトを作成している。
手順
openshift-monitoring
プロジェクトで Thanos Querier のクエリーロギングを有効にすることができます。
openshift-monitoring
プロジェクトでcluster-monitoring-config
ConfigMap
オブジェクトを編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例のように
thanosQuerier
セクションをdata/config.yaml
に追加し、値を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を適用するためにファイルを保存します。新しい設定の影響を受ける Pod は自動的に再デプロイされます。
検証
Thanos Querier Pod が実行されていることを確認します。次のコマンドの例は、
openshift-monitoring
プロジェクトの Pod のステータスを一覧表示します。oc -n openshift-monitoring get pods
$ oc -n openshift-monitoring get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のサンプルコマンドをモデルとして使用して、テストクエリーを実行します。
token=`oc create token prometheus-k8s -n openshift-monitoring` oc -n openshift-monitoring exec -c prometheus prometheus-k8s-0 -- curl -k -H "Authorization: Bearer $token" 'https://thanos-querier.openshift-monitoring.svc:9091/api/v1/query?query=cluster_version'
$ token=`oc create token prometheus-k8s -n openshift-monitoring` $ oc -n openshift-monitoring exec -c prometheus prometheus-k8s-0 -- curl -k -H "Authorization: Bearer $token" 'https://thanos-querier.openshift-monitoring.svc:9091/api/v1/query?query=cluster_version'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してクエリーログを読み取ります。
oc -n openshift-monitoring logs <thanos_querier_pod_name> -c thanos-query
$ oc -n openshift-monitoring logs <thanos_querier_pod_name> -c thanos-query
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記thanos-querier
Pod は高可用性 (HA) Pod であるため、1 つの Pod でのみログを表示できる可能性があります。-
ログに記録されたクエリー情報を確認したら、config map で
enableRequestLogging
の値をfalse
に変更してクエリーロギングを無効にします。