冗長なログを生成したり、バージョンや設定情報を取得するには、以下の手順に従ってください。
Kubernetes統合の場合、デバッグレベルのログは生成されません。自分で、またはNew Relic Supportを使用してより詳細な調査を行う場合は、冗長モードを有効にできます。
注意
Verboseモードでは、ログファイルに送信される情報量が大幅に増加します。トラブルシューティングのためだけに一時的にこのモードを有効にし、終了したらログレベルをリセットしてください。
Helmと
nri-bundle
チャートを使用して詳細なログを取得するには、values.yamlnewrelic-infrastructure.verboseLog
に追加するだけで十分です。すべてのサブチャート設定global.verboseLog
でそれらを有効にできることに注意してください。# 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
ファイルの変更を元に戻して、再度アップグレードします。マニフェストファイルを使用して統合の詳細なログを手動で取得するには、2つの異なる環境変数を設定する必要があります。
NRIA_VERBOSE="1"
すべてのagent
およびforwarder
コンテナ用。たとえば、NRIA_LICENSE_KEY
環境変数の下。この環境変数は、エージェントの詳細ログを有効にします。- 統合のすべてのコンポーネントに
NRI_KUBERNETES_VERBOSE=true"
を設定します。この環境変数は、統合の詳細なログを有効にします。
マニフェストを編集したら、次のコマンドを使用してソリューションをアップグレードします。次に、しばらく待ってログを収集し、マニフェストの変更を元に戻して、マニフェストを再度適用します。
bash$kubectl apply -f your_newrelic_k8s.yaml -n <NEWRELIC_NAMESPACE>
統合には、 ksm
、 controlplane
、およびkubelet
のスクレイピングを担当する3つの異なるコンポーネントがあります。いずれの場合も、2つのコンテナーが実行されており、1つはデータをスクレイピングし、もう1つはデータを転送します。kubeletコンポーネントのエージェントは、ノードデータのスクレイプと統合の実行も担当します。
ログを取得するには、ログを取得するポッドの名前を取得します。
$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 Supportでより詳細な調査を行う場合は、verboseモードを有効にすることができます。
注意
Verboseモードでは、ログファイルに送信される情報量が大幅に増加します。トラブルシューティングのためだけに一時的にこのモードを有効にし、終了したらログレベルをリセットしてください。
マニフェストファイルを使用する統合の詳細なログ情報を取得するには
verbose
ログを有効にする:デプロイメントファイルで、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 Supportでより詳細な調査を行う場合は、verboseモードを有効にすることができます。
注意
Verboseモードでは、ログファイルに送信される情報量が大幅に増加します。トラブルシューティングのためだけに一時的にこのモードを有効にし、終了したらログレベルをリセットしてください。
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マニフェストファイルを使用したインストールで冗長なログを取得する のセクションのステップ5から構成を復元する手順に従ってください。
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
トラブルシューティングのヘルプについては、 データが表示されない または エラーメッセージ を参照してください。