Compartilhar via


Log de grupo e instância de contêiner com os logs do Azure Monitor

Os workspaces do Log Analytics fornecem uma localização centralizada para armazenar e consultar dados de log não apenas dos recursos do Azure, mas também dos recursos locais e recursos em outras nuvens. As Instâncias de Contêiner do Azure incluem suporte interno para enviar dados de eventos e logs aos logs do Azure Monitor.

Para enviar dados eventos e logs do grupo de contêineres para logs do Azure Monitor, especifique uma chave do workspace e uma ID do workspace do Log Analytics existente 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 do workspace para registro em log.

Observação

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. Confira as 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 Log Analytics

As Instâncias de Contêiner do Azure precisam de permissão para enviar dados ao espaço de trabalho do Log Analytics. Para conceder essa permissão e habilitar o registro em log, será necessário fornecer a ID do espaço de trabalho do Log Analytics e uma de suas chaves (primária ou secundária) ao criar o grupo de contêineres.

Para obter a ID do espaço de trabalho do Log Analytics e a chave primária:

  1. Navegue até o espaço de trabalho do Log Analytics no portal do Azure
  2. Em Configurações, selecione Gerenciamento de agentes
  3. Anote:
    • ID do Workspace
    • Chave primária

Criar grupo de contêineres

Agora que você tem a ID e do espaço de trabalho do Log Analytics e a chave primária, você 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 fluentd: a CLI do Azure e a CLI do Azure com um modelo YAML. O contêiner fluentd produz várias linhas de saída na configuração padrão. Como essa saída é enviada para o espaço de trabalho do Log Analytics, ela funciona bem para demonstrar a visualização e a consulta de logs.

Implantar com a CLI do Azure

Para implantar 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 workspace pelos valores que você obteve na etapa anterior (e atualize o nome do grupo de recursos) antes de executar o comando a seguir.

Observação

O exemplo a seguir efetua pull de uma imagem de contêiner público do Docker Hub. É recomendável configurar um segredo de pull para autenticar-se usando uma conta do Docker Hub em vez de fazer uma solicitação de pull anônima. Para melhorar a confiabilidade ao trabalhar com o 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>

Implantar com YAML

Use esse método se você preferir implantar grupos de contêineres com YAML. O YAML a seguir define um grupo de contêineres com um único contêiner. Copie o YAML para em um novo arquivo, então substitua LOG_ANALYTICS_WORKSPACE_ID e LOG_ANALYTICS_WORKSPACE_KEY pelos valores obtidos na etapa anterior. Salve o arquivo como deploy-aci.yaml.

Observação

O exemplo a seguir efetua pull de uma imagem de contêiner público do Docker Hub. É recomendável configurar um segredo de pull para autenticar-se usando uma conta do Docker Hub em vez de fazer uma solicitação de pull anônima. Para melhorar a confiabilidade ao trabalhar com o 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 comando a seguir 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

Você deverá receber uma resposta do Azure contendo detalhes da implantação, logo após a emissão do comando.

Exibir logs

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

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

  1. Navegue até o espaço de trabalho do Log Analytics no portal do Azure
  2. Em Geral, selecione Logs
  3. Digite a seguinte consulta: ContainerInstanceLog_CL | limit 50
  4. Selecionar Executar

Você deverá ver vários resultados exibidos pela consulta. Caso não veja nenhum resultado, aguarde alguns minutos e, em seguida, selecione o botão Executar para executar a consulta novamente. Por padrão, as entradas de log são exibidas no formato de Tabela. Em seguida, você poderá expandir uma linha para ver o conteúdo de uma entrada de log individual.

Pesquisa de Logs no portal do Azure

Exibir 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 dados de evento na tabela ContainerEvent_CL:

  1. Navegue até o espaço de trabalho do Log Analytics no portal do Azure
  2. Em Geral, selecione Logs
  3. Digite a seguinte consulta: ContainerEvent_CL | limit 50
  4. Selecionar Executar

Você deverá ver vários resultados exibidos pela consulta. Caso não veja nenhum resultado, aguarde alguns minutos e, em seguida, selecione o botão Executar para executar a consulta novamente. Por padrão, as entradas são exibidas no formato de Tabela. Em seguida, você poderá expandir uma linha para ver o conteúdo de uma entrada individual.

Resultados da pesquisa de eventos no portal do Azure

Consulta de logs do contêiner

Os logs do Azure Monitor incluem uma linguagem de consulta extensa para efetuar pull das 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 de pipe (|). É possível encadear vários operadores para refinar os resultados e executar funções avançadas.

Para ver os resultados da consulta de exemplo, cole a consulta a seguir na caixa de texto da consulta e selecione o botão Executar para executar a consulta. Esta consulta exibe todas as entradas de log cujo campo de "Mensagem" contém a palavra "warn":

ContainerInstanceLog_CL
| where Message contains "warn"

Consultas mais complexas também têm suporte. Por exemplo, essa consulta exibe apenas as entradas de log do grupo de contêineres "mycontainergroup001" gerado na última hora:

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

Esquema do log

Para saber mais sobre o esquema legado do Azure Monitor para Log Analytics, veja tabelas legadas do Log Analytics.

Usando configurações de diagnóstico

As tabelas mais recentes requerem a utilização de definições de diagnóstico para encaminhar informações para o Log Analytics. O recurso de configurações de diagnóstico para Instâncias de Contêiner está em versão prévia pública e pode ser habilitado por meio de opções de recursos de visualização no portal do Azure.

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

Próximas etapas

Logs do Azure Monitor

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

Monitorar memória e CPU do contêiner

Para obter informações sobre monitoramento de recursos de memória e CPU da instância de contêiner, consulte: