Gerenciar o agente do Container insights

O Container Insights usa uma versão em contêiner do agente do Log Analytics para Linux. Depois da implementação inicial, poderá ter de realizar tarefas opcionais ou de rotina durante o seu ciclo de vida. Este artigo explica como atualizar manualmente o agente e desabilitar a coleta de variáveis ambientais de um contêiner específico.

Nota

Se você já implantou um cluster AKS e habilitou o monitoramento usando a CLI do Azure ou um modelo do Gerenciador de Recursos, não poderá usá-lo kubectl para atualizar, excluir, reimplantar ou implantar o agente. O modelo precisa ser implantado no mesmo grupo de recursos que o cluster.

Atualizar o agente do Container insights

O Container Insights usa uma versão em contêiner do agente do Log Analytics para Linux. Quando uma nova versão do agente é lançada, o agente é atualizado automaticamente em seus clusters Kubernetes gerenciados hospedados no Serviço Kubernetes do Azure (AKS) e no Kubernetes habilitado para Azure Arc.

Se a atualização do agente falhar para um cluster hospedado no AKS, este artigo também descreve o processo para atualizar manualmente o agente. Para acompanhar as versões lançadas, consulte Anúncios de lançamento do agente.

Atualizar o agente em um cluster AKS

O processo para atualizar o agente em um cluster AKS consiste em duas etapas. A primeira etapa é desabilitar o monitoramento com insights de contêiner usando a CLI do Azure. Siga as etapas descritas no artigo Desativar insights de contêiner no cluster do Kubernetes . Usando a CLI do Azure, você pode remover o agente dos nós no cluster sem afetar a solução e os dados correspondentes armazenados no espaço de trabalho.

Nota

Enquanto você está executando essa atividade de manutenção, os nós no cluster não estão encaminhando os dados coletados. As exibições de desempenho não mostrarão dados entre o momento em que você removeu o agente e instalou a nova versão.

O segundo passo é instalar a nova versão do agente. Siga as etapas descritas em Habilitar monitoramento usando a CLI do Azure para concluir esse processo.

Depois de reativar o monitoramento, pode levar cerca de 15 minutos até que você possa exibir as métricas de integridade atualizadas para o cluster. Você tem dois métodos para verificar se o agente foi atualizado com êxito:

  • Execute o comando kubectl get pod <ama-logs-agent-pod-name> -n kube-system -o=jsonpath='{.spec.containers[0].image}'. No status retornado, anote o valor em Image for Azure Monitor Agent na seção Containers da saída.
  • Na guia Nós, selecione o nó do cluster. No painel Propriedades à direita, anote o valor em Marca de imagem do agente.

A versão do agente mostrada deve corresponder à versão mais recente listada na página Histórico de lançamentos .

Atualizar o agente em um cluster Kubernetes híbrido

Execute as seguintes etapas para atualizar o agente em um cluster do Kubernetes que é executado:

  • Clusters Kubernetes autogerenciados hospedados no Azure usando o mecanismo AKS.
  • Clusters Kubernetes autogerenciados hospedados no Azure Stack ou no local usando o mecanismo AKS.

Se o espaço de trabalho do Log Analytics estiver no Azure comercial, execute o seguinte comando:

$ helm upgrade --set omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<my_prod_cluster> incubator/azuremonitor-containers

Se o espaço de trabalho do Log Analytics estiver no Microsoft Azure operado pela 21Vianet, execute o seguinte comando:

$ helm upgrade --set omsagent.domain=opinsights.azure.cn,omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<your_cluster_name> incubator/azuremonitor-containers

Se o espaço de trabalho do Log Analytics estiver no Azure US Government, execute o seguinte comando:

$ helm upgrade --set omsagent.domain=opinsights.azure.us,omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<your_cluster_name> incubator/azuremonitor-containers

Desabilitar a coleta de variáveis de ambiente em um contêiner

O Container Insights coleta variáveis ambientais dos contêineres em execução em um pod e as apresenta no painel de propriedades do contêiner selecionado na visualização Contêineres . Você pode controlar esse comportamento desabilitando a coleta para um contêiner específico durante a implantação do cluster Kubernetes ou depois definindo a variável AZMON_COLLECT_ENVde ambiente . Este recurso está disponível na versão do agente ciprod11292018 e superior.

Para desabilitar a coleta de variáveis ambientais em um contêiner novo ou existente, defina a variável AZMON_COLLECT_ENV com um valor de no arquivo de configuração YAML de implantação do False Kubernetes.

- name: AZMON_COLLECT_ENV  
  value: "False"  

Execute o seguinte comando para aplicar a alteração a clusters do Kubernetes diferentes do Azure Red Hat OpenShift: kubectl apply -f <path to yaml file>. Para editar o ConfigMap e aplicar essa alteração aos clusters do Azure Red Hat OpenShift, execute o seguinte comando:

oc edit configmaps container-azm-ms-agentconfig -n openshift-azure-logging

Este comando abre o editor de texto padrão. Depois de definir a variável, salve o arquivo no editor.

Para verificar se a alteração de configuração entrou em vigor, selecione um contêiner na visualização Contêineres em Informações sobre contêineres. No painel de propriedades, expanda Variáveis de Ambiente. A seção deve mostrar apenas a variável criada anteriormente, que é AZMON_COLLECT_ENV=FALSE. Para todos os outros contêineres, a seção Variáveis de ambiente deve listar todas as variáveis de ambiente descobertas.

Para reativar a descoberta das variáveis ambientais, aplique o mesmo processo usado anteriormente e altere o valor de False para True. Em seguida, execute novamente o comando para atualizar o kubectl contêiner.

- name: AZMON_COLLECT_ENV  
  value: "True"  

Atualização da versão semântica da versão do agente do container insights

O Container Insights mudou a versão da imagem e a convenção de nomenclatura para [formato semver] (https://semver.org/). O SemVer ajuda os desenvolvedores a acompanhar todas as alterações feitas no software durante sua fase de desenvolvimento e garante que o controle de versão do software seja consistente e significativo. A versão antiga estava no formato de ciprod timestamp-commitId e win-ciprod<<timestamp-commitId>>>>, nossas primeiras versões de imagem usando o formato Semver são 3.1.4 para Linux e win-3.1.4<< para Windows.

Semver é um esquema de versionamento de software universal definido no formato MAJOR. MENOR. PATCH, que segue as seguintes restrições:

  1. Incremente a versão MAJOR quando fizer alterações de API incompatíveis.
  2. Incremente a versão MINOR quando adicionar funcionalidade de forma compatível com versões anteriores.
  3. Incremente a versão PATCH quando fizer correções de bugs compatíveis com versões anteriores.

Com a ascensão do Kubernetes e do ecossistema OSS, o Container Insights migra para usar a imagem semver seguindo o padrão recomendado pelo K8s, em que, a cada versão secundária introduzida, todas as alterações de quebra precisavam ser documentadas publicamente a cada nova versão do Kubernetes.

Reparar agentes duplicados

Se você habilitou manualmente o Container Insights usando métodos personalizados antes de outubro de 2022, poderá acabar com várias versões do agente sendo executadas juntas. Siga as etapas abaixo para limpar essa duplicação.

  1. Reúna detalhes de quaisquer configurações personalizadas, como limites de memória e CPU em seus contêineres omsagent.

  2. Revise os limites de recursos padrão para ama-logs e determine se eles atendem às suas necessidades. Caso contrário, talvez seja necessário criar um tópico de suporte para ajudar a investigar e alternar os limites de memória/cpu. Isso pode ajudar a resolver os problemas de limitações de escala que alguns clientes encontraram anteriormente e que resultaram em exceções OOMKilled.

    SO Nome do controlador Limites padrão
    Linux ds-cpu-limit-linux 500m
    Linux ds-memória-limite-linux 750 mi
    Linux rs-cpu-limite 5
    Linux rs-limite de memória 1,5 Gi
    Windows ds-cpu-limit-windows 500m
    Windows ds-memória-limite-windows 1Gi
  3. Limpe os recursos da integração anterior:

    Se você já integrou usando o gráfico de leme :

    Liste todas as versões entre namespaces com o seguinte comando:

     helm list --all-namespaces
    

    Limpe o gráfico instalado para Container insights com o seguinte comando:

    helm uninstall <releaseName> --namespace <Namespace>
    

    Se você já integrou usando a implantação do yaml :

    Baixe o arquivo yaml de implantação personalizada anterior com o seguinte comando:

    curl -LO raw.githubusercontent.com/microsoft/Docker-Provider/ci_dev/kubernetes/omsagent.yaml
    

    Limpe o gráfico omsagent antigo com o seguinte comando:

    kubectl delete -f omsagent.yaml
    
  4. Desative os insights do Container para limpar todos os recursos relacionados usando as orientações em Desabilitar insights do Container no cluster do Kubernetes

  5. Reintegre aos insights do Container usando as orientações em Habilitar insights do Container em seu cluster do Kubernetes

Próximos passos

Se você tiver problemas ao atualizar o agente, consulte o guia de solução de problemas para obter suporte.