詳細なログを生成し、バージョンと設定情報を取得するには、次の手順に従います。 トラブルシューティングのヘルプについては、 「データが表示されない」または「エラーメッセージ」を参照してください。
インテグレーションのバージョン 2 を使用している場合は、 バージョン 2 のKubernetesを参照してください。
Kubernetes 統合では、 debug
レベルのログは生成されません。独自で、または New Relic サポートと協力してより詳細な調査を行っている場合は、冗長モードを有効にすることができます。
注意
詳細モードでは、ログ ファイルに送信される情報の量が大幅に増加します。このモードはトラブルシューティングの目的で一時的にのみ有効にし、終了したらログ レベルをリセットしてください。
Helm と
nri-bundle
チャートを使用して詳細なログ記録を取得するには:次の設定を
values.yaml
ファイルに追加します。# To enable verboseLog for newrelic-infrastructure onlynewrelic-infrastructure:verboseLog: trueすべてのサブチャートに対して詳細なログ記録を有効にすることもできます。
# To enable verboseLog for all sub-chartsglobal: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:- name: NRIA_LICENSE_KEYvalueFrom:secretKeyRef:key: licenseKeyname: newrelic-bundle-newrelic-infrastructure-license- name: NRIA_VERBOSEvalue: "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 K8sContainerSampleSELECT uniqueCount(entityId)WHERE containerNameLIKE '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 K8sContainerSampleSELECT uniqueCount(entityId)WHERE containerNameLIKE '%kube-state-metrics%' facet clusterName, containerImage
イベント コレクターのログを確認するには、次のコマンドを実行します。
$kubectl logs deploy/nr-kube-events kube-events
詳細を追加するには、設定ファイルのconfig
セクションにclusterName
の前または後にverbose: "true"
を追加して、冗長モードを有効にします。
New Relic にイベントを送信するエージェントのログを確認するには、次のコマンドを実行します。
$kubectl logs deploy/nr-kube-events infra-agent