本文へスキップ

エージェント問題の解決

Helmチャート基準のインストール問題の解決

名前がwhatapである他のHelmリポジトリがある場合

"whatap" already exists with the same configuration, skipping

すでに同じ名前の他のwhatapリポジトリが存在する場合は、次のコマンドを使用して既存のwhatapリポジトリを削除してからインストールを進めてください。

helm repo remove whatap

名前がwhatap-monitoringである他のネームスペースがクラスターにある場合

Error: INSTALLATION FAILED: Unable to continue with install: Namespace "whatap-monitoring" in namespace "" exists and cannot be imported into the current release

クラスターにwhatap-monitoringネームスペースが存在する場合、ユーザーがyamlファイルベースですでにWhaTap Kubernetesエージェントをインストールしているためです。 この場合、次のコマンドにより、既存のwhatap-monitoringネームスペースと関連リソースを削除します。

kubectl delete namespace whatap-monitoring
kubectl delete clusterrolebinding whatap
kubectl delete clusterrole whatap

clusterroleclusterrolebindingリソースがすでにクラスターにある場合

Error: INSTALLATION FAILED: Unable to continue with install: ClusterRole "whatap" in namespace "" exists and cannot be imported into the current release

クラスターへclusterroleclusterrolebindingリソースがすでに存在する場合は、次のコマンドでそのリソースを削除します。

kubectl delete clusterrolebinding whatap
kubectl delete clusterrole whatap

whatap-monitoringネームスペースが使用できない場合

基本的にWhaTap Kubernetesエージェントはwhatap-monitoringネームスペースにインストールされます。 ただし、該当ネームスペースが使用できない場合、またはユーザーが特定のネームスペースを指定する必要がある場合は、次の手順を参考にして、必要なネームスペースにエージェントをインストールします。

事前準備

  • チャートバージョン: whatap/kube 1.7.11以降

    次のコマンドでチャートのバージョンを確認します。

    helm search repo whatap/kube --versions

    1.7.11バージョン未満の場合は、次のコマンドでチャートのバージョンをアップデートします。

    helm repo update
  • Helm 버전: Helm 3以降

インストール手順

使用するネームスペース名を<namespace>に入力し、次のコマンドを実行してエージェントをインストールします。

helm install whatap-kube-agent whatap/kube --create-namespace --namespace <namespace> --set namespaceOverrideEnabled=true --wait -f values.yaml

アップデートと削除

  • アップデート

    次のコマンドでエージェントをアップデートします。

    helm update whatap-kube-agent whatap/kube --namespace <namespace> --wait
  • 削除

    次のコマンドを使用してエージェントを削除します。

    helm uninstall whatap-kube-agent whatap/kube --namespace <namespace>


エージェント起動時に発生する問題の解決

旧型YAMLファイルを通じてWhaTap Kubernetesモニタリングをインストールした場合

Unrecognized VM option 'UseCGroupMemoryLimitForHeap'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

2022年8月24日以前にダウンロードしたインストールYAMLを通じてWhaTapのKubernetesモニタリングをインストールした場合、ノードエージェント(whatap-node-agent) 起動時にエラーが発生し、起動に失敗する場合があります。

原因は以下のとおりです。 2022年8月24日以前にダウンロードしたインストールYAMLファイル内UseCGroupMemoryLimitForHeap JVMオプションを使用したノードエージェントの実行スクリプトが含まれています。

WhaTapノードエージェント1.2.0以降(2022年11月21日リリース) バージョンからエージェント内部で使用するJDKがアップグレードされおり、アップグレードされたJDKバージョンは、これ以上UseCGroupMemoryLimitForHeapオプションを提供していません。 2022年8月24日以前にダウンロードしたYAMLファイルにWhaTap Kubernetesモニタリングをインストールした状態でノードエージェント1.2.0以降のバージョンを起動する場合、Unrecognized VM option 'UseCGroupMemoryLimitForHeap’メッセージが発生し、起動に失敗します。

解決方法

この問題を解決するために、次のようにKubernetesモニタリングを再インストールします。

  1. 管理 > エージェントインストール画面で最新のYAMLファイルをダウンロードします。

  2. ユーザーKubernetes環境でダウンロードしたYAMLファイルを使用してエージェントをインストールしてください。

  3. ユーザーKubernetes環境でインストール中にエラーの出力有無を確認してください。

  4. WhaTapモニタリングエージェントPodがRunning状態であるかを確認してください。

    ノート

    Kubernetes環境及びワークロード > Podリストメニューで確認します。

  5. 管理 > Kubernetesエージェントリストメニューで、各モニタリングエージェントで発生するログを確認します。

アプリケーション連動問題の解決

コンテナマップにJavaモニタリングデータが表示されない場合

Kubernetes環境でCgroupsの設定や管理方法によっては、特定の状況でコンテナIDを確保できない問題が発生する可能性があります。 WhaTapは、このような状況に対応するために、Kubernetesモニタリングのコンテナとアプリケーション間のマッピングメカニズムを変更しました。 当該変更事項の場合は、WhaTapKubernetesエージェント1.7.7バージョンとJavaエージェント2.2.33バージョンから適用され、Cgroupsの影響でコンテナIDが漏れる問題を解決します。

解決方法

エージェントのアップデート

Kubernetes環境で発生するコンテナIDの識別問題を解決するためには、WhaTapのKubernetesエージェントとAPMが互いにやり取りするデータを正確に識別できるよう、サポートする最新バージョンを使用する必要があります。 クバネティス·エージェント1.7.7バージョン以降をを設置し、Javaエージェント2.2.33バージョン以降をインストールします。

ノート

現在はJavaエージェントのみサポートしており、他の言語のAPMは今後サポートする予定です。

追加環境変数の設定 

エージェントバージョンのアップデート以降も、コンテナマップにJavaアプリケーション情報が表示されない場合、ユーザー環境変数を追加して問題を解決できます。 この設定は、Java APMがインストールされたコンテナマニフェスト(YAML)の環境変数に、当該コンテナ内のJavaエージェントの絶対パスを表すWHATAP_JAVA_AGENT_PATHオプションを追加します。

次はJava APMがインストールされたコンテナ環境変数に当該オプションを追加した例です。

env:
- name: NODE_IP
valueFrom: {fieldRef: {fieldPath: status.hostIP}}
- name: NODE_NAME
valueFrom: {fieldRef: {fieldPath: spec.nodeName}}
- name: POD_NAME
valueFrom: {fieldRef: {fieldPath: metadata.name}}
- name: OKIND
value: {YOUR_OKIND_NAME}
- name: license
value: <Project Access Key>
- name: whatap.server.host
value: <収集サーバーのIPアドレス>
- name: whatap.micro.enabled
value: "true"
- name: WHATAP_JAVA_AGENT_PATH
value: "/whatap/whatap.agent-2.2.35.jar"

コンテナとAPM間の正常マッピングの確認方法

コンテナとアプリケーションが正常にマップされていることを確認する方法は、次の通りです。

  • ダッシューボード > コンテナマップメニューでコンテナマップブロック内に白いマイクロコンテナが存在する場合、正常にマッピングされた状態です。

  • 分析 > メトリクス照会メニューでapp_counterカテゴリーのcontainerフィールドにアプリケーションが実行中のコンテナIDが記録されている場合は、正常にマッピングされた状態です。