Partilhar via


Tutorial: Monitorar contêineres do Windows no Service Fabric usando logs do Azure Monitor

Esta é a terceira parte de um tutorial e orienta você na configuração dos logs do Azure Monitor para monitorar seus contêineres do Windows orquestrados no Service Fabric.

Neste tutorial, irá aprender a:

  • Configurar logs do Azure Monitor para seu cluster do Service Fabric
  • Utilizar uma área de trabalho do Log Analytics para ver e consultar os registos de contentores e nós
  • Configurar o agente do Log Analytics para recolher métricas de contentores e nós

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

Antes de começar este tutorial, tem de:

Configurar os logs do Azure Monitor com seu cluster no modelo do Gerenciador de Recursos

Caso tenha utilizado o modelo disponibilizado na primeira parte deste tutorial, o mesmo deveria incluir as adições seguintes aos modelos do Azure Resource Manager genéricos do Service Fabric. Caso você tenha um cluster próprio que esteja procurando configurar para monitorar contêineres com logs do Azure Monitor:

  • Faça as alterações seguintes ao modelo do Resource Manager.
  • Implemente-o com o PowerShell para atualizar o cluster mediante a implementação do modelo. O Azure Resource Manager apercebe-se de que o recurso existe, pelo que o implementa como uma atualização.

Adicionando logs do Azure Monitor ao seu modelo de cluster

Faça as alterações seguintes ao template.json:

  1. Adicione a localização e o nome da área de trabalho do Log Analytics à secção parameters:

    "omsWorkspacename": {
      "type": "string",
      "defaultValue": "[toLower(concat('sf',uniqueString(resourceGroup().id)))]",
      "metadata": {
        "description": "Name of your Log Analytics Workspace"
      }
    },
    "omsRegion": {
      "type": "string",
      "defaultValue": "East US",
      "allowedValues": [
        "West Europe",
        "East US",
        "Southeast Asia"
      ],
      "metadata": {
        "description": "Specify the Azure Region for your Log Analytics workspace"
      }
    }
    

    Para alterar um dos dois valores utilizados, adicione os mesmos parâmetros ao template.parameters.json e altere os valores utilizados aí.

  2. Adicione o nome da solução e a solução a variables:

    "omsSolutionName": "[Concat('ServiceFabric', '(', parameters('omsWorkspacename'), ')')]",
    "omsSolution": "ServiceFabric"
    
  3. Adicione o Microsoft Monitoring Agent como uma extensão da máquina virtual. Localize o recurso de conjuntos de dimensionamento de máquinas virtuais: resources>"apiVersion": "[variables('vmssApiVersion')]". Em properties>virtualMachineProfile>extensionProfile>extensions, adicione a descrição de extensão seguinte na extensão ServiceFabricNode:

    {
        "name": "[concat(variables('vmNodeType0Name'),'OMS')]",
        "properties": {
            "publisher": "Microsoft.EnterpriseCloud.Monitoring",
            "type": "MicrosoftMonitoringAgent",
            "typeHandlerVersion": "1.0",
            "autoUpgradeMinorVersion": true,
            "settings": {
                "workspaceId": "[reference(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')), '2015-11-01-preview').customerId]"
            },
            "protectedSettings": {
                "workspaceKey": "[listKeys(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')),'2015-11-01-preview').primarySharedKey]"
            }
        }
    },
    
  4. Adicione a área de trabalho do Log Analytics como recurso individual. Em resources, a seguir ao recurso de conjuntos de dimensionamento de máquinas virtuais, adicione o seguinte:

    {
        "apiVersion": "2015-11-01-preview",
        "location": "[parameters('omsRegion')]",
        "name": "[parameters('omsWorkspacename')]",
        "type": "Microsoft.OperationalInsights/workspaces",
        "properties": {
            "sku": {
                "name": "Free"
            }
        },
        "resources": [
            {
                "apiVersion": "2015-11-01-preview",
                "name": "[concat(variables('applicationDiagnosticsStorageAccountName'),parameters('omsWorkspacename'))]",
                "type": "storageinsightconfigs",
                "dependsOn": [
                    "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]",
                    "[concat('Microsoft.Storage/storageAccounts/', variables('applicationDiagnosticsStorageAccountName'))]"
                ],
                "properties": {
                    "containers": [ ],
                    "tables": [
                        "WADServiceFabric*EventTable",
                        "WADWindowsEventLogsTable",
                        "WADETWEventTable"
                    ],
                    "storageAccount": {
                        "id": "[resourceId('Microsoft.Storage/storageaccounts/', variables('applicationDiagnosticsStorageAccountName'))]",
                        "key": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('applicationDiagnosticsStorageAccountName')),'2015-06-15').key1]"
                    }
                }
            },
            {
                "apiVersion": "2015-11-01-preview",
                "name": "System",
                "type": "datasources",
                "dependsOn": [
                    "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]"
                ],
                "kind": "WindowsEvent",
                "properties": {
                    "eventLogName": "System",
                    "eventTypes": [
                        {
                            "eventType": "Error"
                        },
                        {
                            "eventType": "Warning"
                        },
                        {
                            "eventType": "Information"
                        }
                    ]
                }
            }
        ]
    },
    {
        "apiVersion": "2015-11-01-preview",
        "location": "[parameters('omsRegion')]",
        "name": "[variables('omsSolutionName')]",
        "type": "Microsoft.OperationsManagement/solutions",
        "dependsOn": [
            "[concat('Microsoft.OperationalInsights/workspaces/', parameters('OMSWorkspacename'))]"
        ],
        "properties": {
            "workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]"
        },
        "plan": {
            "name": "[variables('omsSolutionName')]",
            "publisher": "Microsoft",
            "product": "[Concat('OMSGallery/', variables('omsSolution'))]",
            "promotionCode": ""
        }
    },
    

Está disponível aqui um modelo de exemplo (utilizado na primeira parte do tutorial) que tem todas estas alterações e que pode consultar sempre que necessário. Estas alterações adicionarão uma área de trabalho do Log Analytics ao seu grupo de recursos. A área de trabalho será configurada para recolher eventos da plataforma do Service Fabric a partir das tabelas de armazenamento configuradas com o agente Diagnóstico do Microsoft Azure. O agente do Log Analytics (Microsoft Monitoring Agent) também foi adicionado a cada nó do seu cluster como extensão de máquina virtual, o que significa que, à medida que dimensiona o cluster, o agente é configurado automaticamente em cada máquina e ligado à mesma área de trabalho.

Implemente o modelo com as alterações novas para atualizar o seu cluster atual. Você verá os recursos de análise de log em seu grupo de recursos assim que isso for concluído. Quando o cluster estiver pronto, implemente a aplicação contentorizada no mesmo. No próximo passo, vamos configurar a monitorização dos contentores.

Adicionar a solução de Monitorização de Contentores à sua área de trabalho do Log Analytics

Para configurar a solução de Contentores na sua área de trabalho, procure Solução de Monitorização de Contentores e crie um recurso Contentores (na categoria Monitorização + Gestão).

Adicionar a solução de Contentores

Quando solicitado para o espaço de trabalho do Log Analytics, selecione o espaço de trabalho que foi criado no seu grupo de recursos e selecione Criar. Isso adiciona uma Solução de Monitoramento de Contêiner ao seu espaço de trabalho, iniciando o agente do Log Analytics implantado pelo modelo para começar a coletar logs e estatísticas do docker.

Navegue de volta para o grupo de recursos, onde deverá ver agora a solução de monitorização acabada de adicionar. Se você selecioná-lo, a página de destino deve mostrar o número de imagens de contêiner que você tem em execução.

Observe que executamos cinco instâncias do contêiner fabrikam da parte dois do tutorial

Página de destino da solução de contentor

Selecionar a Solução de Monitor de Contêiner levará você a um painel mais detalhado, que permite percorrer vários painéis, bem como executar consultas nos logs do Azure Monitor.

Uma vez que o agente recolhe registos do Docker, mostra stdout e stderr como predefinição. Se você rolar horizontalmente, verá inventário, status, métricas e consultas de exemplo de imagens de contêiner que você poderia executar para obter dados mais úteis.

Dashboard da solução de Contentores

Clicar em qualquer um desses painéis levará você para a consulta Kusto que está gerando o valor exibido. Altere a consulta para * de modo a ver todos os diferentes tipos de registos que estão a ser recolhidos. Aqui, pode consultar ou filtrar por desempenho do contentor ou por registos ou ver eventos da plataforma do Service Fabric. Os agentes também estão constantemente a emitir um heartbeat de cada nó e que pode ver para confirmar que ainda estão a ser recolhidos dados das suas máquinas, caso a configuração do seu cluster se altere.

Consulta do contentor

Configurar o agente do Log Analytics para recolher contadores de desempenho

Outro benefício de usar o agente do Log Analytics é a capacidade de alterar os contadores de desempenho que você deseja obter por meio da experiência da interface do usuário de análise de log, em vez de ter que configurar o agente de diagnóstico do Azure e fazer uma atualização baseada em modelo do Resource Manager a cada vez. Para fazer isso, selecione no Espaço de trabalho do OMS na página inicial da sua solução de monitoramento de contêiner (ou Service Fabric).

Desta forma, é encaminhado para a área de trabalho do Log Analytics, onde pode ver as suas soluções, criar dashboards personalizados e configurar o agente do Log Analytics.

  • Selecione Configurações avançadas para abrir o menu Configurações avançadas.
  • Selecione Servidores Windows de Fontes Conectadas>para verificar se você tem 5 Computadores Windows Conectados.
  • Selecione Contadores de Desempenho do Windows de Dados>para procurar e adicionar novos contadores de desempenho. Aqui você verá uma lista de recomendações dos logs do Azure Monitor para contadores de desempenho que você pode coletar, bem como a opção de pesquisar outros contadores. Verifique se os contadores Processor(_Total)% Processor Time and Memory(*)\Available MBytes estão sendo coletados.

Atualize a Solução de Monitorização de Contadores passados alguns minutos e, depois, deverá começar a receber dados de Desempenho do Computador. Isto ajuda a compreender de que forma é que os seus recursos estão a ser atualizados. Também pode utilizar estas métricas para tomar decisões adequadas relativamente ao dimensionamento do seu cluster ou para confirmar se um cluster está a balancear a sua carga conforme esperado.

Nota: certifique-se de que os seus filtros de hora estão definidos corretamente para poder consumir estas métricas.

Contadores de desempenho 2

Próximos passos

Neste tutorial, ficou a saber como:

  • Configurar logs do Azure Monitor para seu cluster do Service Fabric
  • Utilizar uma área de trabalho do Log Analytics para ver e consultar os registos de contentores e nós
  • Configurar o agente do Log Analytics para recolher métricas de contentores e nós

Agora que você configurou o monitoramento para seu aplicativo em contêiner, tente:

  • Configurar os logs do Azure Monitor para um cluster Linux, seguindo etapas semelhantes a este tutorial. Veja este modelo para fazer alterações ao seu modelo do Resource Manager.
  • Configure os logs do Azure Monitor para configurar alertas automatizados para ajudar na deteção e diagnóstico.
  • Explorar a lista de contadores de desempenho recomendados do Service Fabric a configurar para os seus clusters.
  • Familiarize-se com os recursos de pesquisa e consulta de log oferecidos como parte dos logs do Azure Monitor.