4.5. Prometheus のクエリーログファイルの有効化

エンジンによって実行されたすべてのクエリーをログファイルに書き込むように Prometheus を設定できます。これは、デフォルトのプラットフォームモニタリングおよびユーザー定義のワークロードモニタリングに対して行うことができます。

重要

ログローテーションはサポートされていないため、問題のトラブルシューティングが必要な場合にのみ、この機能を一時的に有効にします。トラブルシューティングが終了したら、ConfigMapオブジェクトに加えた変更を元に戻してクエリーログを無効にし、機能を有効にします。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • openshift-monitoring プロジェクトで Prometheus のクエリーログファイル機能を有効にしている場合:

    • cluster-admin クラスターロールを持つユーザーとしてクラスターにアクセスできます。
    • cluster-monitoring-configConfigMap オブジェクトを作成している。
  • openshift-user-workload-monitoring プロジェクトで Prometheus のクエリーログファイル機能を有効にしている場合:

    • cluster-admin クラスターロールを持つユーザーとして、または openshift-user-workload-monitoring プロジェクトの user-workload-monitoring-config-edit ロールを持つユーザーとして、クラスターにアクセスできる。
    • user-workload-monitoring-config ConfigMap オブジェクトを作成している。

手順

  • openshift-monitoring プロジェクトで Prometheus のクエリーログファイルを設定するには:

    1. openshift-monitoring プロジェクトで cluster-monitoring-config ConfigMap オブジェクトを編集します。

      $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
    2. data/config.yamlの下のprometheusK8squeryLogFile: <path> を追加します:

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cluster-monitoring-config
        namespace: openshift-monitoring
      data:
        config.yaml: |
          prometheusK8s:
            queryLogFile: <path> 1
      1
      クエリーがログに記録されるファイルへのフルパス。
    3. 変更を適用するためにファイルを保存します。

      警告

      monitoring config map への変更を保存すると、関連プロジェクトの Pod およびその他のリソースが再デプロイされる場合があります。該当するプロジェクトの実行中のモニタリングプロセスも再起動する可能性があります。

    4. コンポーネントの Pod が実行中であることを確認します。次のコマンドの例は、openshift-monitoringプロジェクトの Pod のステータスを一覧表示します。

      $ oc -n openshift-monitoring get pods
    5. クエリーログを読みます。

      $ oc -n openshift-monitoring exec prometheus-k8s-0 -- cat <path>
      重要

      ログに記録されたクエリー情報を確認した後、config map の設定を元に戻します。

  • openshift-user-workload-monitoringプロジェクトで Prometheus のクエリーログファイルを設定するには:

    1. openshift-user-workload-monitoring プロジェクトで user-workload-monitoring-config ConfigMap オブジェクトを編集します。

      $ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
    2. data/config.yaml の下の prometheusqueryLogFile: <path> を追加します:

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: user-workload-monitoring-config
        namespace: openshift-user-workload-monitoring
      data:
        config.yaml: |
          prometheus:
            queryLogFile: <path> 1
      1
      クエリーがログに記録されるファイルへのフルパス。
    3. 変更を適用するためにファイルを保存します。

      注記

      user-workload-monitoring-config ConfigMap オブジェクトに適用される設定は、クラスター管理者がユーザー定義プロジェクトのモニタリングを有効にしない限りアクティブにされません。

      警告

      monitoring config map への変更を保存すると、関連プロジェクトの Pod およびその他のリソースが再デプロイされる場合があります。該当するプロジェクトの実行中のモニタリングプロセスも再起動する可能性があります。

    4. コンポーネントの Pod が実行中であることを確認します。以下の例は、openshift-user-workload-monitoring プロジェクトの Pod のステータスを一覧表示します。

      $ oc -n openshift-user-workload-monitoring get pods
    5. クエリーログを読みます。

      $ oc -n openshift-user-workload-monitoring exec prometheus-user-workload-0 -- cat <path>
      重要

      ログに記録されたクエリー情報を確認した後、config map の設定を元に戻します。

関連情報