Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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. O Instâncias de Contêiner do Azure inclui suporte integrado para enviar logs e dados de eventos aos logs do Azure Monitor.
Para enviar dados de log e de eventos do grupo de contêineres para os logs do Azure Monitor, especifique a ID e a chave de um workspace existente do Log Analytics 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 um ID do workspace e uma chave do workspace para habilitar o 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 o papel dos logs no Azure Monitor. Consulte as alterações na terminologia do Azure Monitor para mais detalhes.
Pré-requisitos
Para habilitar os logs nas 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.
Importante
Esta seção descreve a integração legada do Log Analytics, que requer a chave do espaço de trabalho. A integração herdada tem as seguintes limitações:
- O workspace do Log Analytics deve ser acessível publicamente (não há suporte para pontos de extremidade privados).
- A autenticação local deve ser habilitada no workspace.
Para uma integração mais abrangente com suporte a pontos de extremidade privados, considere usar Configurações de Diagnóstico.
Para obter a ID do workspace Log Analytics e a chave primária, use o CLI do Azure:
# Get the workspace ID
az monitor log-analytics workspace show \
--resource-group <resource-group> \
--workspace-name <workspace-name> \
--query customerId \
--output tsv
# Get the primary shared key
az monitor log-analytics workspace get-shared-keys \
--resource-group <resource-group> \
--workspace-name <workspace-name> \
--query primarySharedKey \
--output tsv
Criar grupo de contêineres
Agora que você tem a ID do espaço de trabalho do Log Analytics e a chave primária, já pode criar um grupo de contêineres com registro em log habilitado.
Os exemplos a seguir demonstram duas maneiras de criar um grupo de contêineres composto por um único contêiner fluentd: CLI do Azure e 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 faz o download de uma imagem pública de contêiner 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 em um novo arquivo e, depois, substitua LOG_ANALYTICS_WORKSPACE_ID e LOG_ANALYTICS_WORKSPACE_KEY pelos valores que você obteve na etapa anterior. Salve o arquivo como deploy-aci.yaml.
Observação
O exemplo a seguir baixa uma imagem pública de contêiner 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 na 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 os logs do grupo de contêineres na tabela ContainerInstanceLog_CL:
- Navegue até o espaço de trabalho do Log Analytics no portal do Azure
- Em Geral, selecione Logs
- Digite a seguinte consulta:
ContainerInstanceLog_CL | limit 50 - Selecione 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.
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 os dados do evento na tabela ContainerEvent_CL:
- Navegue até o espaço de trabalho do Log Analytics no portal do Azure
- Em Geral, selecione Logs
- Digite a seguinte consulta:
ContainerEvent_CL | limit 50 - Selecione 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.
Consulta de logs do contêiner
Os logs do Azure Monitor incluem uma extensa linguagem de consulta 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 (|). É 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 o Log Analytics, consulte Tabelas legadas do Log Analytics.
Usando configurações de diagnóstico
Use as Configurações de Diagnóstico para encaminhar logs e eventos do grupo de contêineres para o Log Analytics. Esse recurso oferece vários benefícios em relação à integração herdada descrita neste artigo:
- Suporte a endpoint privado — funciona com espaços de trabalho do Log Analytics que usam endpoints privados.
- Nenhuma chave de workspace necessária – Azure Resource Manager manipula a autenticação, portanto, você não precisa gerenciar ou girar chaves de workspace.
- Tabelas de Azure Monitor padrão – os logs vão para tabelas de Azure Monitor padrão em vez de tabelas de log personalizadas.
Para saber mais, veja tabelas do Log Analytics do Azure Monitor.
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: