Para gerar log detalhado e obter informações de versão e configuração, siga as etapas abaixo. Se você estiver usando a versão 2 da integração, pule para esta seção.
A integração Kubernetes não produz log de nível debug
. Se você estiver fazendo uma investigação mais aprofundada por conta própria ou com o suporte da New Relic, poderá ativar o modo detalhado.
Cuidado
O modo detalhado aumenta significativamente a quantidade de informações enviadas ao arquivo de log. Habilite este modo apenas temporariamente para fins de resolução de problemas e redefina o nível de log quando terminar.
Para obter detalhes detalhados de geração de registros usando o Helm e o gráfico
nri-bundle
, adicione a configuração a seguir ao arquivovalues.yaml
. Você também pode ativar o registro detalhado para todos os subgráficos:# To enable verboseLog for newrelic-infrastructure only# newrelic-infrastructure:# verboseLog: true# To enable verboseLog for all sub-charts# global:# verboseLog: trueDepois de adicionar a configuração desejada, atualize a solução com o seguinte comando:
bash$helm upgrade <RELEASE_NAME> newrelic/nri-bundle \>--namespace <NEWRELIC_NAMESPACE> \>-f values-newrelic.yaml \>[--version fixed-chart-version]Depois de coletar o registro detalhado, reverta a alteração no arquivo
values.yaml
e execute o comandoupgrade
novamente.Para obter detalhes detalhados do log usando um arquivo de manifesto, você precisa definir duas variáveis de ambiente diferentes:
NRIA_VERBOSE="1"
para todos os contêineresagent
eforwarder
; isso ativa o log detalhado do agente. Você pode definir isso abaixoNRIA_LICENSE_KEY
.definir
NRI_KUBERNETES_VERBOSE=true"
em todos os componentes da integração; isso permite o registro detalhado para a integração.env:
name: NRIA_LICENSE_KEY valueFrom: secretKeyRef: key: licenseKey name: newrelic-bundle-newrelic-infrastructure-license
nome: NRIA_VERBOSE value: "1"
Depois de editar o manifesto, atualize a solução com o seguinte comando:
bash$kubectl apply -f your_newrelic_k8s.yaml -n <NEWRELIC_NAMESPACE>Depois de coletar seu log detalhado, reverta a alteração no manifesto e aplique-o novamente.
Existem três componentes diferentes da integração responsáveis pela extração ksm
, controlplane
e kubelet
. Em cada instância existem dois contêineres em execução, sendo um deles raspando os dados e outro encaminhando-os. O agente no componente kubelet
também é responsável por extrair dados do nó e executar a integração. O diagrama abaixo mostra a integração instalada em um cluster com três nós.
Para buscar o log, obtenha o nome do pod do qual você deseja recuperar o log:
$kubectl get pods -n <NEWRELIC_NAMESPACE>
Recuperar o registro:
$kubectl logs <POD_NAME> --all-containers --prefix
Para recuperar o log da execução anterior, adicione a sinalização --previous
. Para obter log de apenas um dos contêineres, remova a flag --all-containers --prefix
e especifique o contêiner com a opção --container
.
Importante
Para obter a melhor experiência com nossa integração com Kubernetes, recomendamos que você use a versão mais recente. Confira as mudanças introduzidas na versão 3.
Ao usar a integração do Kubernetes , o agente de infraestrutura é distribuído como uma imagem Docker que contém o agente de infraestrutura e a integração do Kubernetes . A imagem Docker é marcada com uma versão, e o agente de infraestrutura também possui sua própria versão.
Depois que o agente estiver enviando dados para New Relic, você poderá recuperar as versões do agente de infraestrutura para Kubernetes (a imagem Docker ) que você está executando em seu cluster usando a seguinte consulta NRQL :
FROM K8sContainerSample SELECT uniqueCount(entityId) WHERE containerName LIKE 'agent' FACET clusterName, containerImage
Se o agente não estiver reportando nenhum dado:
Obtenha as versões da integração do New Relic para Kubernetes que você está executando em um cluster usando kubectl
:
$kubectl get pods --all-namespaces -l app.kubernetes.io/name=newrelic-infrastructure -o jsonpath="{.items..spec..containers..image}"
Para recuperar a versão de kube-state-metrics
em execução no cluster, execute a seguinte consulta NRQL :
FROM K8sContainerSample SELECT uniqueCount(entityId) WHERE containerName LIKE '%kube-state-metrics%' facet clusterName, containerImage
Instruções da versão 2 de integração
Para a integração Kubernetes , o agente de infraestrutura apenas adiciona uma entrada log em caso de erro. Os erros mais comuns são exibidos no log padrão (não detalhado). Se você estiver fazendo uma investigação mais aprofundada por conta própria ou com o suporte da New Relic, poderá ativar o modo detalhado.
Cuidado
O modo detalhado aumenta significativamente a quantidade de informações enviadas ao arquivo de log. Habilite este modo apenas temporariamente para fins de resolução de problemas e redefina o nível de log quando terminar.
Para ativar o registro detalhado usando um arquivo de manifesto:
Habilite o registro detalhado: No arquivo de implantação, defina o valor de
NRIA_VERBOSE
para1
.Aplique a configuração modificada executando:
bash$kubectl apply -f your_newrelic_k8s.yamlDeixe no modo detalhado por alguns minutos ou até que ocorra atividade suficiente.
Desative o modo detalhado: defina o valor
NRIA_VERBOSE
novamente como0
.Aplique a configuração restaurada executando:
bash$kubectl apply -f your_newrelic_k8s.yamlObtenha uma lista de nós no ambiente:
bash$kubectl get nodes --all-namespacesObtenha uma lista de infraestrutura e pod kube-state-métrica:
bash$kubectl get pods --all-namespaces -o wide | egrep 'newrelic|kube-state-metrics'
Para a integração Kubernetes , o agente de infraestrutura apenas adiciona uma entrada log em caso de erro. Os erros mais comuns são exibidos no log padrão (não detalhado). Se você estiver fazendo uma investigação mais aprofundada por conta própria ou com o suporte da New Relic, poderá ativar o modo detalhado.
Cuidado
O modo detalhado aumenta significativamente a quantidade de informações enviadas ao arquivo de log. Habilite este modo apenas temporariamente para fins de resolução de problemas e redefina o nível de log quando terminar.
Para ativar o registro detalhado usando Helm:
Execute o seguinte comando:
bash$helm upgrade -n <namespace> --reuse-values newrelic-bundle --set newrelic-infrastructure.verboseLog=true newrelic/nri-bundleDeixe no modo detalhado por alguns minutos ou até que ocorra atividade suficiente.
Quando você tiver as informações necessárias, desative o registro detalhado:
bash$helm upgrade --reuse-values newrelic-bundle --set newrelic-infrastructure.verboseLog=false newrelic/nri-bundleAplique a configuração restaurada executando:
bash$kubectl apply -f your_newrelic_k8s.yamlObtenha uma lista de nós no ambiente:
bash$kubectl get nodes --all-namespacesObtenha uma lista de infraestrutura e pod kube-state-métrica:
bash$kubectl get pods --all-namespaces -o wide | egrep 'newrelic|kube-state-metrics'
Para obter o registro do pod conectado a kube-state-metrics
:
Execute o seguinte comando:
bash$kubectl get pods --all-namespaces -o wide | grep kube-state-metricsProcure uma saída semelhante a esta:
bash$kube-system kube-state-metrics-5c6f5cb9b5-pclhh 2/2$Running 4 4d 172.17.0.3 minikubeObtenha o pod New Relic que está em execução no mesmo nó que
kube-state-metrics
:bash$kubectl describe node minikube | grep newrelic-infraProcure uma saída semelhante a esta:
bash$default newrelic-infra-5wcv6 100m (5%)$0 (0%) 100Mi (5%) 100Mi (5%)Recupere o log dos nós executando:
bash$kubectl logs newrelic-infra-5wcv6
Para obter o log de um pod em execução em um nó mestre:
Obtenha os nós rotulados como mestres:
bash$kubectl get nodes -l node-role.kubernetes.io/master=""Ou,
bash$kubectl get nodes -l kubernetes.io/role="master"Procure uma saída semelhante a esta:
bash$NAME STATUS ROLES AGE VERSION$ip-10-42-24-4.ec2.internal Ready master 42d v1.14.8Obtenha o pod New Relic que está em execução em um dos nós retornados na etapa anterior:
bash$kubectl get pods --field-selector spec.nodeName=ip-10-42-24-4.ec2.internal -l name=newrelic-infra --all-namespacesProcure uma saída semelhante a esta:
bash$newrelic-infra-whvztRecupere o log dos nós executando:
bash$kubectl logs newrelic-infra-whvzt
Para obter ajuda sobre resolução de problemas, consulte Não vendo dados ou mensagem de erro.