Grupo de contêineres e log de instâncias com logs do Azure Monitor

Os espaços de trabalho do Log Analytics fornecem um local centralizado para armazenar e consultar dados de log não apenas de recursos do Azure, mas também recursos locais e recursos em outras nuvens. As Instâncias de Contêiner do Azure incluem suporte interno para enviar logs e dados de eventos para logs do Azure Monitor.

Para enviar log de grupo de contêineres e dados de eventos para logs do Azure Monitor, especifique uma ID de espaço de trabalho e uma chave de espaço de trabalho do Log Analytics existentes ao configurar um grupo de contêineres.

As seções a seguir descrevem como criar um grupo de contêineres habilitado para registro em log e como consultar logs. Você também pode atualizar um grupo de contêineres com uma ID e uma chave de espaço de trabalho para habilitar o registro.

Nota

Este artigo foi atualizado recentemente para usar o termo logs do Azure Monitor em vez de Log Analytics. Os dados de log ainda são armazenados em um espaço de trabalho do Log Analytics e ainda são coletados e analisados pelo mesmo serviço do Log Analytics. Estamos atualizando a terminologia para refletir melhor a função dos logs no Azure Monitor. Consulte Alterações de terminologia do Azure Monitor para obter detalhes.

Pré-requisitos

Para habilitar o registro em log em suas instâncias de contêiner, você precisa dos seguintes pré-requisitos:

Obter credenciais do Azure Log Analytics

O Azure Container Instances necessita de permissão para enviar dados para a sua área de trabalho do Log Analytics. Para conceder esta permissão e ativar o registo, tem de fornecer o ID da área de trabalho do Log Analytics e uma das respetivas chaves (primárias ou secundárias), quando criar o grupo de contentores.

Para obter o ID do espaço de trabalho de análise de log e a chave primária:

  1. Navegue para a sua área de trabalho do Log Analytics no portal do Azure
  2. Em Configurações, selecione Gerenciamento de agentes
  3. Tome nota:
    • ID do espaço de trabalho
    • Chave primária

Criar grupo de contentores

Agora que você tem o ID do espaço de trabalho de análise de log e a chave primária, está pronto para criar um grupo de contêineres habilitado para log.

Os exemplos a seguir demonstram duas maneiras de criar um grupo de contêineres que consiste em um único contêiner fluente : CLI do Azure e CLI do Azure com um modelo YAML. O contêiner fluente produz várias linhas de saída em sua configuração padrão. Uma vez que este resultado é enviado para a sua área de trabalho do Log Analytics, funciona bem para demonstrar a visualização e a consulta dos registos.

Implementar com a CLI do Azure

Para implementar com a CLI do Azure, especifique os parâmetros --log-analytics-workspace e --log-analytics-workspace-key no comando az container create. Substitua os dois valores de área de trabalho pelos valores que obteve no passo anterior (e atualize o nome de grupo de recursos) antes de executar o seguinte comando.

Nota

O exemplo a seguir extrai uma imagem de contêiner público do Docker Hub. Recomendamos que você configure um segredo de pull para autenticar usando uma conta do Docker Hub em vez de fazer uma solicitação pull anônima. Para melhorar a confiabilidade ao trabalhar com conteúdo público, importe e gerencie a imagem em um registro de contêiner privado do Azure. Saiba mais sobre como trabalhar com imagens públicas.

az container create \
    --resource-group myResourceGroup \
    --name mycontainergroup001 \
    --image fluent/fluentd:v1.3-debian-1 \
    --log-analytics-workspace <WORKSPACE_ID> \
    --log-analytics-workspace-key <WORKSPACE_KEY>

Implementar com o YAML

Utilize este método de preferir implementar grupos de contentores com o YAML. O seguinte YAML define um grupo de contentores com um único contentor. Copie o ficheiro YAML para um novo ficheiro e substitua LOG_ANALYTICS_WORKSPACE_ID e LOG_ANALYTICS_WORKSPACE_KEY pelos valores que obteve no passo anterior. Guarde o ficheiro como deploy-aci.yaml.

Nota

O exemplo a seguir extrai uma imagem de contêiner público do Docker Hub. Recomendamos que você configure um segredo de pull para autenticar usando uma conta do Docker Hub em vez de fazer uma solicitação pull anônima. Para melhorar a confiabilidade ao trabalhar com conteúdo público, importe e gerencie a imagem em um registro de contêiner privado do Azure. Saiba mais sobre como trabalhar com imagens públicas.

apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
  containers:
  - name: mycontainer001
    properties:
      environmentVariables: []
      image: fluent/fluentd:v1.3-debian-1
      ports: []
      resources:
        requests:
          cpu: 1.0
          memoryInGB: 1.5
  osType: Linux
  restartPolicy: Always
  diagnostics:
    logAnalytics:
      workspaceId: LOG_ANALYTICS_WORKSPACE_ID
      workspaceKey: LOG_ANALYTICS_WORKSPACE_KEY
tags: null
type: Microsoft.ContainerInstance/containerGroups

Em seguida, execute o seguinte comando para implantar o grupo de contêineres. Substitua myResourceGroup por um grupo de recursos em sua assinatura (ou primeiro crie um grupo de recursos chamado "myResourceGroup"):

az container create --resource-group myResourceGroup --name mycontainergroup001 --file deploy-aci.yaml

Deverá receber uma resposta do Azure com detalhes de implementação poucos instantes após a emissão do comando.

Ver registos

Depois de implantar o grupo de contêineres, pode levar vários minutos (até 10) para que as primeiras entradas de log apareçam no portal do Azure.

Para exibir os logs do grupo de contêineres na ContainerInstanceLog_CL tabela:

  1. Navegue para a sua área de trabalho do Log Analytics no portal do Azure
  2. Em Geral, selecione Logs
  3. Digite a seguinte consulta: ContainerInstanceLog_CL | limit 50
  4. Selecione Executar

Deverá ver vários resultados apresentados pela consulta . Se, no início, você não vir nenhum resultado, aguarde alguns minutos e selecione o botão Executar para executar a consulta novamente. Por padrão, as entradas de log são exibidas no formato Tabela . Em seguida, pode expandir uma linha para ver os conteúdos de uma entrada de registo individual.

Resultados da Pesquisa de registos no portal do Azure

Ver eventos

Você também pode exibir eventos para instâncias de contêiner no portal do Azure. Os eventos incluem a hora em que a instância é criada e quando ela é iniciada. Para exibir os dados do ContainerEvent_CL evento na tabela:

  1. Navegue para a sua área de trabalho do Log Analytics no portal do Azure
  2. Em Geral, selecione Logs
  3. Digite a seguinte consulta: ContainerEvent_CL | limit 50
  4. Selecione Executar

Deverá ver vários resultados apresentados pela consulta . Se, no início, você não vir nenhum resultado, aguarde alguns minutos e selecione o botão Executar para executar a consulta novamente. Por padrão, as entradas são exibidas no formato Tabela . Em seguida, você pode expandir uma linha para ver o conteúdo de uma entrada individual.

Resultados da Pesquisa de Eventos no portal do Azure

Consultar registos de contentor

Os logs do Azure Monitor incluem uma linguagem de consulta extensa para extrair informações de potencialmente milhares de linhas de saída de log.

A estrutura básica de uma consulta é a tabela de origem (neste artigo, ContainerInstanceLog_CL ou ContainerEvent_CL) seguida por uma série de operadores separados pelo caractere pipe (|). Pode encadear vários operadores para refinar os resultados e executar funções avançadas.

Para ver exemplos de resultados da consulta, cole a seguinte consulta na caixa de texto da consulta e selecione o botão Executar para executar a consulta. Esta consulta apresenta todas as entradas de registo cujo campo "Mensagem" contenha a palavra "aviso":

ContainerInstanceLog_CL
| where Message contains "warn"

Também são suportadas consultas mais complexas. Por exemplo, esta consulta apresenta apenas as entradas de registo para o grupo de contentores "mycontainergroup001" gerado na última hora:

ContainerInstanceLog_CL
| where (ContainerGroup_s == "mycontainergroup001")
| where (TimeGenerated > ago(1h))

Esquema de log

Para saber mais sobre o esquema herdado do Azure Monitor para o Log Analytics, consulte Tabelas herdadas do Log Analytics.

Usando configurações de diagnóstico

As tabelas mais recentes exigem o uso de configurações de diagnóstico para rotear informações para o Log Analytics. O recurso de configurações de diagnóstico para Instâncias de Contêiner está em visualização pública e pode ser habilitado por meio de opções de recursos de visualização no portal do Azure.

Para saber mais, consulte Tabelas do Azure Monitor Log Analytics.

Próximos passos

Registos do Azure Monitor

Para obter mais informações sobre como consultar logs e configurar alertas em logs do Azure Monitor, consulte:

Monitorizar a CPU e a memória do contentor

Para obter informações sobre a monitorização da CPU do Container Instances e recursos de memória, consulte: