OpenShift モニタリングのトラブルシューティングおよび FAQ

このセクションには、OpenShift モニタリングに関する重要なトラブルシューティング情報、およびよくある質問が含まれています。
apmdevops106
このセクションには、OpenShift モニタリングに関する重要なトラブルシューティング情報、およびよくある質問が含まれています。
OpenShift 監視のトラブルシューティング
問題をトラブルシューティングするには、以下のリソースを使用します。
  • Docker Monitor、コンテナ フロー マップ、および Kubernetes 持続性メトリックを確認します。
    Agent Stats|Sustainability|DockerMonitor
    Agent Stats|Sustainability|ContainerFlow Agent Stats|Sustainability|KubernetesMonitor
  • エラーを識別できるログを収集します。
    oc logs <caagent_pod> kubernetesmonitor.log 2>&1
  • CA サポートにお問い合わせください。
APITOKEN ログインがAWS 上で動作しない
症状:
  • Deployer ポッドによって OpenShift/Kubernetes インフラストラクチャ データが見つかりません。
  • ポッド ログ ファイルに以下のエラー メッセージが表示されます。
    io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: [AWS console URL] Message: Unauthorized! Configured service account doesn't have access.
    Service account may have been revoked..
    at io.fabric8.kubernetes.client.dsl.base.OperationSupport.requestFailure(OperationSupport.java:315)
解決方法:
API トークンに対してクラスタ読み取りアクセス権を与えたかを確認してください。「OpenShift モニタリングのインストールおよび設定」の「APITOKEN を取得する」を参照してください。
あるいは、クラスタのメタデータ全体への読み取りアクセス権も持つ、Kubernetes ユーザ名とパスワードを渡すことができます。 以下の 3 つの異なる方法で、これらの認証情報を提供できます。
  • 方法 1
    APITOKEN 環境変数をプレーン テキストの認証情報に置き換えます。
    caagent-openshiftmonitor.yml
    ファイルで、以下を削除します。
    - name: apitoken
    value: [APITOKEN]
    そして、以下に置き換えます
    - name: k8s_username value: [USERNAME] - name: k8s_password value: [PASSWORD]
    [USERNAME] と [PASSWORD] を実際のユーザ名とパスワードに置換えます。
  • 方法 2
    APITOKEN 環境変数を、秘密キーからのプレーン テキスト k8s_username および k8s_password に置き換えます。
    caagent-openshiftmonitor.yml
    ファイルで、以下を削除します。
    - name: apitoken
    value: [APITOKEN]
    そして、以下に置き換えます
    - name: k8s_username
    value: admin
    - name: k8s_password
    valueFrom:
    name: [MYSECRET]
    key: password
    [MYSECRET] を実際の秘密キーの名前に置き換えます。
  • 方法 3
    暗号化されたエージェント パスワードを使用します。 以下の手順に従います。
    1. APM_IA/apmia/lib
      ディレクトリに移動します。
    2. 以下のコマンドを実行し、その出力をクリップボードにコピーします。
      java -cp EPAgent.jar com.wily.util.properties.PropertiesUtils encrypt MySecretPassword
    3. caagent-openshiftmonitor.yml
      ファイルで、以下を削除します。
      - name: apitoken
      value: [APITOKEN]
      そして、以下に置き換えます
      - name: k8s_username
      value: admin
      - name: k8s_password
      value: [THE_VALUE_RETURNED_BY_THE_ENCRYPTION_COMMAND]
      [THE_VALUE_RETURNED_BY_THE_ENCRYPTION_COMMAND] を前の手順で取得した、実際の値に置き換えます。
使用した方法にかかわらず、Kubernetes のドキュメントを確認して、空白の形式が正しいことを確認します。
「latest」タグ エラー
症状:
Docker ハブからイメージを取得しようとすると、以下のエラー メッセージが表示されます。
error: the tag "latest" points to "registry.connect.redhat.com/ca/apm-openshiftmonitor" - use the 'tag' command if you want to change the source to "docker.io/caapm/openshiftmonitor:latest"
解決方法:
このエラーは、同じ名前とタグを持つが、別の外部のレジストリからのイメージ ストリームがすでに存在することを示しています。 この問題を修正するには、タグ名を変更するか、イメージ ストリームを削除する必要があります。 たとえば、イメージ ストリームを削除するには、以下の手順に従います。
  1. イメージ ストリーム名を取得します。
    $ oc get is
    NAME DOCKER REPO TAGS UPDATED
    apm-openshiftmonitor
    172.30.216.104:5000/caapm/apm-openshiftmonitor latest
  2. イメージ ストリームを削除します。
    $ oc delete is apm-openshiftmonitor
  3. イメージを再インポートします。
    $ oc import-image my-ca/apm-openshiftmonitor --from=docker.io/caapm/openshiftmonitor:latest --confirm
よくある質問
インストールが成功したかどうかを知るにはどうすればよいですか
OpenShift クラスタ内の各ノードに、以下のような名前で実行中のポッドがある場合、OpenShift モニタリングは正常にインストールされています。
  • caagent-xxxxx
1 つのノードには、ホストのメタデータ情報が含まれる 1 つの追加ポッドが必要です。 このポッドは以下のような名前になっています。
  • caagent-deployment-xxxxx
これらのインスタンスの正しいポッド名を確認します。 クラスタの各ノードで以下のコマンドを呼び出すことによって、この情報を検証できます。
oc get pods | grep caagent
または
oc get pods | grep caagent-deployment
アンインストールが成功したかどうかを知るにはどうすればよいですか
クラスタのいずれかのノードで実行中の
caagent
という名前のポッドが存在しなくなった場合、OpenShift モニタは正常にアンインストールされています。
クラスタの各ノードで以下のコマンドを呼び出すことによって、これを検証できます。 コマンドの出力は空白になる必要があります。
oc get pods | grep caagent
エージェント ログ レベルを変更するにはどうすればよいですか
ログ レベルを変更するには、以下の手順に従います。
  1. caagent
    ポッドにログインします。
    oc exec -it <caagent pod name> bash
  2. ./core/config/IntroscopeAgent.profile
    を開きます。
  3. エージェントのドキュメントの説明に従ってログ レベルを変更します。
ポッドまたはコンテナを再起動する必要はありません。
カスタム コンテナ ラベルを属性として発行するにはどうすればよいですか
カスタム コンテナ ラベルを属性として発行するには、以下の手順に従います。
  1. コンテナを識別します。
    docker ps | grep caagent
  2. Docker から現在の
    attributes.json
    を取得します。
    docker cp <caagent_container>:/usr/local/openshift/APM_IA/extensions/OpenshiftMonitor/config/attributes.json
  3. カスタム属性の設定」で説明しているとおりに
    attributes.json
    に変更を加えます。
  4. 変更したファイルをコンテナにコピーします。
    docker cp attributes.json <caagent_container>:/usr/local/openshift/APM_IA/extensions/OpenshiftMonitor/config/attributes.json
  5. コンテナを再起動します。
    docker restart <caagent_container>
コンテナ フロー マップが動作しており、エッジを生成していることを知るにはどうすればよいですか
コンテナ フロー マップが正しく動作しており、エッジを生成しているかどうかを確認するには、以下の手順に従います。
  1. 持続性メトリックのリスト
    で、持続性メトリックを確認します。
    Agent Stats|Sustainability|ContainerFlow
  2. 詳細ログがさらに必要な場合は、次のモジュールの DEBUG ログを有効化します。
    log4j.logger.IntroscopeAgent.NsEnterOutputProcessor=DEBUG, console, logfile。
    DEBUG レベルを有効化すると、ContainerFlow 持続可能性メトリックの下にエッジ情報アイテムが作成されます。
OpenShift モニタリングを特定のラベルが付いたノードに展開するにはどうすればよいですか?
たとえば、ラベル
region=Infrastructure
が付いたノード上でのみ OpenShift モニタリングを展開します。
  1. OpenShift モニタリング拡張機能のインストールおよび設定」で説明されているように、caagent-openshiftmonitor.yml ファイルを再度作成します。 以下のように、spec セクションに nodeSelector キーを追加します。
    spec: # oc adm policy add-scc-to-user privileged -z default template: metadata: labels: app: caagent spec: hostPID: true hostIPC: true hostNetwork: true nodeSelector: region: Infrastructure containers:
    - resources: securityContext: privileged: true
  2. 以下のコマンドを実行します。
    oc edit namespace caapm
    以下の注釈を追加します。
    openshift.io/node-selector: “region= Infrastructure "
    openshift.io/description: ""
  3. これらの変更を加えて Openshift モニタを再インストールします。
ノードにポッドが展開されていない場合、デプロイヤ ポッドがメトリック ビューでこのノードからプロジェクトを取得するのはなぜですか
OpenShift モニタリングには、内部から外部(ポッド モニタリング)と外部から内部への 2 つのモニタリング方法があり、OpenShift クラスタ メタデータが収集されます。 OpenShift モニタリングは、この情報を使用して、メトリック ビューの下にクラスタの詳細を表示します。 このため、ポッドが展開されていないノードからのプロジェクトも確認できます。