Gerenciar o agente de Insights do contêiner
Os insights do contêiner usa uma versão em contêiner do agente do Log Analytics para Linux. Após a implantação inicial, talvez seja necessário executar tarefas de rotina ou opcionais durante o ciclo de vida. Este artigo explica como atualizar o agente manualmente e desabilitar a coleta de variáveis de ambiente de um contêiner específico.
Observação
Se você já implantou um cluster do AKS e habilitou o monitoramento usando a CLI do Azure ou um modelo do Azure Resource Manager, não será possível usar 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 de Insights do contêiner
Os insights do contêiner 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 nos clusters do Kubernetes gerenciado hospedado no AKS (Serviço de Kubernetes do Azure) e no Kubernetes habilitado para o Azure Arc.
Se a atualização do agente falhar para um cluster hospedado no AKS, este artigo também descreverá o processo para atualizar manualmente o agente. Para seguir as versões lançadas, consulte Comunicados sobre lançamentos de agente.
Atualizar o agente em um cluster do AKS
O processo para atualizar o agente em um cluster do AKS consiste em duas etapas. A primeira etapa é desabilitar o monitoramento com os Insights do contêiner usando a CLI do Azure. Siga as etapas descritas no artigo Desabilitar insights do contêiner em seu artigo de cluster do Kubernetes. Ao usar 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.
Observação
Durante 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 a hora em que você removeu o agente e instalou a nova versão.
A segunda etapa é 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 reabilitar o monitoramento, poderá levar cerca de 15 minutos até ser possível exibir as métricas de integridade atualizadas do 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 Imagem para o agente do Azure Monitor na seção Contêineres da saída. - Na guia Nós, selecione o nó do cluster. No painel Propriedadesà direita, observe 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 da versão.
Atualizar o agente em um cluster híbrido do Kubernetes
Execute as seguintes etapas para atualizar o agente em um cluster do Kubernetes executado em:
- Clusters do Kubernetes autogerenciado hospedados no Azure usando o mecanismo do AKS.
- Clusters do Kubernetes autogerenciado hospedado no Azure Stack ou localmente usando o mecanismo do AKS.
Se o workspace 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 workspace 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 coleção de variáveis de ambiente em um contêiner
Os insights do contêiner coletam variáveis ambientais de contêineres em execução em um pod e apresenta-os no painel de propriedades do contêiner selecionado na exibição Contêineres. Controle esse comportamento desabilitando a coleção de um contêiner específico durante a implantação do cluster do Kubernetes ou depois definindo a variável de ambiente AZMON_COLLECT_ENV
. Esse recurso está disponível começando na versão do agente ciprod11292018 e superior.
Para desabilitar a coleção de variáveis de ambiente em um contêiner novo ou existente, defina a variável AZMON_COLLECT_ENV
com um valor False
em seu arquivo de configuração YAML de implantação do Kubernetes.
- name: AZMON_COLLECT_ENV
value: "False"
Execute o seguinte comando para aplicar a alteração em clusters do Kubernetes diferentes do Red Hat OpenShift no Azure: kubectl apply -f <path to yaml file>
. Para editar o ConfigMap e aplicar essa alteração para os clusters do Red Hat OpenShift no Azure, 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 exibição Contêineres nos Insights do contêiner. No painel de propriedades, expanda as Variáveis de Ambiente. A seção deve mostrar apenas a variável que já foi criada, que é AZMON_COLLECT_ENV=FALSE
. Para todos os outros contêineres, a seção Variáveis de Ambiente deverá listar todas as variáveis de ambiente descobertas.
Para reabilitar 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 kubectl
para atualizar o contêiner.
- name: AZMON_COLLECT_ENV
value: "True"
Atualização semântica de versão da versão do agente de insights de contêiner
O recurso Insights de Contêiner mudou a versão da imagem e da convenção de nomenclatura para [formato semver] (https://semver.org/). O versionamento semântico (SemVer) ajuda os desenvolvedores a acompanhar todas as alterações feitas em um 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 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.
O Semver é um esquema de controle de versão de software universal que é definido no formato MAJOR.MiNOR.PATCH, que segue as seguintes restrições:
- Incremente a versão principal (MAJOR) ao fazer alterações incompatíveis na API.
- Incremente a versão secundária (MINOR) ao adicionar a funcionalidade de maneira compatível com versões anteriores.
- Incremente a versão de correção (PATCH) ao fazer correções de bug compatíveis com versões anteriores.
Com a ascensão do Kubernetes e do ecossistema do OSS, os Insights de Contêiner migram para usar uma imagem semver seguindo o padrão K8s recomendado em que, com cada versão secundária introduzida, todas as alterações interruptivas eram necessárias para serem documentadas publicamente a cada nova versão do Kubernetes.
Reparar agentes duplicados
Se você habilitou manualmente os Insights do contêiner usando métodos personalizados antes de outubro de 2022, poderá acabar com várias versões do agente em execução juntas. Siga as etapas abaixo para limpar essa duplicação.
Reúna detalhes de quaisquer configurações personalizadas, como limites de memória e CPU em seus contêineres omsagent.
Examine 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. Ele pode ajudar a resolver os problemas de limitações de escala que alguns clientes encontraram anteriormente que resultaram em exceções OOMKilled.
SO Nome do Controlador Limites padrão Linux ds-cpu-limit-linux 500 m Linux ds-memory-limit-linux 750Mi Linux rs-cpu-limit 1 Linux rs-memory-limit 1.5Gi Windows ds-cpu-limit-windows 500 m Windows ds-memory-limit-windows 1 Gi Limpar recursos da integração anterior:
Se você já integrou usando o gráfico helm:
Liste todas as versões entre namespaces com o seguinte comando:
helm list --all-namespaces
Limpe o gráfico instalado para insights de contêiner com o seguinte comando:
helm uninstall <releaseName> --namespace <Namespace>
Se você tiver integrado anteriormente 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
Desabilite os insights do contêiner para limpar todos os recursos relacionados usando as diretrizes em Desabilitar Insights do Contêiner em seu cluster do Kubernetes
Integre novamente aos Insights do Contêiner usando as diretrizes em Habilitar Insights do Contêiner em seu cluster do Kubernetes
Próximas etapas
Se você tiver problemas ao atualizar o agente, revise a guia de solução de problemas para obter suporte.