詳細ログを生成し、バージョンと構成情報を取得するには、次の手順に従います。統合のバージョン 2 を使用している場合は、 このセクションに進んでください。
Kubernetes 統合では、 debug
レベルのログは生成されません。独自で、または New Relic サポートと協力してより詳細な調査を行っている場合は、冗長モードを有効にすることができます。
注意
詳細モードでは、ログ ファイルに送信される情報の量が大幅に増加します。このモードはトラブルシューティングの目的で一時的にのみ有効にし、終了したらログ レベルをリセットしてください。
Helm と
nri-bundle
チャートを使用して詳細なログの詳細を取得するには、次の構成をvalues.yaml
ファイルに追加します。すべてのサブチャートの詳細ログを有効にすることもできます。# To enable verboseLog for newrelic-infrastructure only# newrelic-infrastructure:# verboseLog: true# To enable verboseLog for all sub-charts# global:# verboseLog: true必要な構成を追加したら、次のコマンドを使用してソリューションをアップグレードします。
bash$helm upgrade <RELEASE_NAME> newrelic/nri-bundle \>--namespace <NEWRELIC_NAMESPACE> \>-f values-newrelic.yaml \>[--version fixed-chart-version]詳細ログを収集した後、
values.yaml
ファイルの変更を元に戻し、upgrade
コマンドを再度実行します。マニフェスト ファイルを使用して詳細なログの詳細を取得するには、2 つの異なる環境変数を設定する必要があります。
NRIA_VERBOSE="1"
すべてのagent
コンテナとforwarder
コンテナ。これにより、エージェントの詳細ログが有効になります。これはNRIA_LICENSE_KEY
の下で設定できます。統合のすべてのコンポーネントに
NRI_KUBERNETES_VERBOSE=true"
を設定します。これにより、統合の詳細ログが有効になります。env:
名前: NRIA_LICENSE_KEY valueFrom: SecretKeyRef: key: ライセンスキー名: newrelic-bundle-newrelic-infrastructor-license
名前: NRIA_VERBOSE 値: "1"
マニフェストを編集したら、次のコマンドを使用してソリューションをアップグレードします。
bash$kubectl apply -f your_newrelic_k8s.yaml -n <NEWRELIC_NAMESPACE>詳細ログを収集した後、マニフェストの変更を元に戻し、マニフェストを再度適用します。
統合には ksm
、 controlplane
、および kubelet
のスクレイピングを担当する 3 つの異なるコンポーネントがあります。各インスタンスでは 2 つのコンテナが実行されており、1 つはデータをスクレイピングし、もう 1 つはデータを転送します。kubelet
コンポーネントのエージェントは、ノード データのスクレイピングと統合の実行も担当します。以下の図は、3 つのノードを持つクラスターにインストールされた統合を示しています。
ログを取得するには、ログを取得するポッドの名前を取得します。
$kubectl get pods -n <NEWRELIC_NAMESPACE>
ログを取得します。
$kubectl logs <POD_NAME> --all-containers --prefix
前回の実行からログを取得するには、 --previous
フラグを追加します。1 つのコンテナのみからログを取得するには、 --all-containers --prefix
フラグを削除し、 --container
オプションでコンテナを指定します。
重要
Kubernetes 統合を最大限に活用するには、最新バージョンを使用することをお勧めします。バージョン 3 で導入された変更を確認してください。
Kubernetes 統合を使用する場合、インフラストラクチャ エージェントは、インフラストラクチャ エージェントと Kubernetes 統合の両方を含む Docker イメージとして配布されます。Docker イメージにはバージョンのタグが付けられており、インフラストラクチャ エージェントにも独自のバージョンがあります。
エージェントが New Relic にデータを送信すると、次の NRQL クエリを使用して、クラスター内で実行している Kubernetes のインフラストラクチャ エージェント (Docker イメージ) のバージョンを取得できます。
FROM K8sContainerSample SELECT uniqueCount(entityId) WHERE containerName LIKE 'agent' FACET clusterName, containerImage
エージェントがデータを報告していない場合:
kubectl
を使用して、クラスターで実行しているKubernetesのNewRelic統合のバージョンを取得します。
$kubectl get pods --all-namespaces -l app.kubernetes.io/name=newrelic-infrastructure -o jsonpath="{.items..spec..containers..image}"
クラスター上で実行されている kube-state-metrics
のバージョンを取得するには、次の NRQL クエリを実行します。
FROM K8sContainerSample SELECT uniqueCount(entityId) WHERE containerName LIKE '%kube-state-metrics%' facet clusterName, containerImage
統合バージョン 2 の手順
Kubernetes 統合の場合、インフラストラクチャ エージェントはエラーが発生した場合にのみログ エントリを追加します。最も一般的なエラーは、標準 (詳細ではない) ログに表示されます。独自で、または New Relic サポートと協力してより詳細な調査を行っている場合は、冗長モードを有効にすることができます。
注意
詳細モードでは、ログ ファイルに送信される情報の量が大幅に増加します。このモードはトラブルシューティングの目的で一時的にのみ有効にし、終了したらログ レベルをリセットしてください。
マニフェスト ファイルを使用して詳細ログを有効にするには:
詳細ログを有効にする: デプロイメント ファイルで、
NRIA_VERBOSE
の値を1
に設定します。変更したコンフィグレーションを実行して適用する。
bash$kubectl apply -f your_newrelic_k8s.yaml数分間、あるいは十分なアクティビティが発生するまで、冗長モードのままにしておきます。
詳細モードを無効にする:
NRIA_VERBOSE
の値を0
に戻します。復元したコンフィグレーションを実行して適用します。
bash$kubectl apply -f your_newrelic_k8s.yaml環境内のノードのリストを取得します。
bash$kubectl get nodes --all-namespacesinfrastructureおよびkube-state-metricsポッドのリストを取得します。
bash$kubectl get pods --all-namespaces -o wide | egrep 'newrelic|kube-state-metrics'
Kubernetes 統合の場合、インフラストラクチャ エージェントはエラーが発生した場合にのみログ エントリを追加します。最も一般的なエラーは、標準 (詳細ではない) ログに表示されます。独自で、または New Relic サポートと協力してより詳細な調査を行っている場合は、冗長モードを有効にすることができます。
注意
詳細モードでは、ログ ファイルに送信される情報の量が大幅に増加します。このモードはトラブルシューティングの目的で一時的にのみ有効にし、終了したらログ レベルをリセットしてください。
Helm を使用して詳細ログを有効にするには:
次のコマンドを実行してください。
bash$helm upgrade -n <namespace> --reuse-values newrelic-bundle --set newrelic-infrastructure.verboseLog=true newrelic/nri-bundle数分間、あるいは十分なアクティビティが発生するまで、冗長モードのままにしておきます。
必要な情報が得られたら、詳細なログを無効にします。
bash$helm upgrade --reuse-values newrelic-bundle --set newrelic-infrastructure.verboseLog=false newrelic/nri-bundle復元したコンフィグレーションを実行して適用します。
bash$kubectl apply -f your_newrelic_k8s.yaml環境内のノードのリストを取得します。
bash$kubectl get nodes --all-namespacesinfrastructureおよびkube-state-metricsポッドのリストを取得します。
bash$kubectl get pods --all-namespaces -o wide | egrep 'newrelic|kube-state-metrics'
kube-state-metrics
に接続しているポッドからログを取得するには:
次のコマンドを実行してください。
bash$kubectl get pods --all-namespaces -o wide | grep kube-state-metricsこのような出力を探してください。
bash$kube-system kube-state-metrics-5c6f5cb9b5-pclhh 2/2$Running 4 4d 172.17.0.3 minikubekube-state-metrics
と同じノードで実行されている New Relic ポッドを取得します。bash$kubectl describe node minikube | grep newrelic-infraこのような出力を探してください。
bash$default newrelic-infra-5wcv6 100m (5%)$0 (0%) 100Mi (5%) 100Mi (5%)を実行して、ノードのログを取得します。
bash$kubectl logs newrelic-infra-5wcv6
マスターノードで動作しているポッドのログを取得するには
マスターと表示されているノードを取得します。
bash$kubectl get nodes -l node-role.kubernetes.io/master=""あるいは。
bash$kubectl get nodes -l kubernetes.io/role="master"このような出力を探してください。
bash$NAME STATUS ROLES AGE VERSION$ip-10-42-24-4.ec2.internal Ready master 42d v1.14.8前のステップで返されたノードのいずれかで稼働しているNew Relicポッドを取得します。
bash$kubectl get pods --field-selector spec.nodeName=ip-10-42-24-4.ec2.internal -l name=newrelic-infra --all-namespacesこのような出力を探してください。
bash$newrelic-infra-whvztを実行して、ノードのログを取得します。
bash$kubectl logs newrelic-infra-whvzt
トラブルシューティングのヘルプについては、 データが表示されない または エラーメッセージ を参照してください。