エージェント問題の解決
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
clusterrole
、clusterrolebinding
リソースがすでにクラスターにある場合
Error: INSTALLATION FAILED: Unable to continue with install: ClusterRole "whatap" in namespace "" exists and cannot be imported into the current release |
---|
クラスターへclusterrole
、clusterrolebinding
リソースがすでに存在する場合は、次のコマンドでそのリソースを削除します。
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モニタリングを再インストールします。
-
管理 > エージェントインストール画面で最新のYAMLファイルをダウンロードします。
-
ユーザーKubernetes環境でダウンロードしたYAMLファイルを使用してエージェントをインストールしてください。
-
ユーザーKubernetes環境でインストール中にエラーの出力有無を確認してください。
-
WhaTapモニタリングエージェントPodがRunning状態であるかを確認してください。
ノートKubernetes環境及びワークロード > Podリストメニューで確認します。
-
管理 > 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が記録されている場合は、正常にマッピングされた状態です。