Tutorial: Monitorizar contentores do Windows no Service Fabric com os registos do Azure Monitor

Esta é a terceira parte de um tutorial e orienta-o ao longo da configuração dos registos do Azure Monitor para monitorizar os contentores do Windows orquestrados no Service Fabric.

Neste tutorial, ficará a saber como:

  • Configurar os registos do Azure Monitor para o 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 utilizar o termo registos do Azure Monitor em vez do Log Analytics. Os dados de registo ainda estão armazenados numa área de trabalho do Log Analytics e ainda são recolhidos e analisados pelo mesmo serviço do Log Analytics. Estamos a atualizar a terminologia para refletir melhor a função dos registos no Azure Monitor. Veja Alterações de terminologia do Azure Monitor para obter detalhes.

Pré-requisitos

Antes de começar este tutorial, tem de:

Configurar registos do Azure Monitor com o cluster no modelo de Resource Manager

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 tenha um cluster próprio que pretenda configurar para monitorizar contentores com registos 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.

Adicionar registos do Azure Monitor ao 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. Encontre o recurso dos conjuntos de dimensionamento de máquinas virtuais: resources>"apiVersion": "[variables('vmssApiVersion')]". Nas propriedades>virtualMachineProfileextensionProfile>>extensions, adicione a seguinte descrição da extensão 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. Deverá ver os recursos de análise de registos no seu grupo de recursos assim que isto estiver 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 lhe for pedido para a área de trabalho do Log Analytics, selecione a área de trabalho que foi criada no seu grupo de recursos e selecione Criar. Isto adiciona uma Solução de Monitorização de Contentores à área de trabalho, iniciando o agente do Log Analytics implementado pelo modelo para começar a recolher registos 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 a selecionar, a página de destino deverá mostrar-lhe o número de imagens de contentor que tem em execução.

Tenha em atenção que executámos cinco instâncias do contentor fabrikam a partir da segunda parte do tutorial

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

Selecionar a Solução de Monitor de Contentor irá levá-lo a um dashboard mais detalhado, o que lhe permite percorrer vários painéis, bem como executar consultas nos registos do Azure Monitor.

Uma vez que o agente recolhe registos do Docker, mostra stdout e stderr como predefinição. Se deslocar horizontalmente, verá inventário de imagens de contentor, estado, métricas e consultas de exemplo que pode executar para obter dados mais úteis.

Dashboard da solução de Contentores

Clicar em qualquer um destes painéis irá levá-lo à consulta Kusto que está a gerar o valor apresentado. 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

Outra vantagem da utilização do agente do Log Analytics é a capacidade de alterar os contadores de desempenho que pretende obter através da experiência de IU do log analytics, em vez de ter de configurar o agente de diagnóstico do Azure e efetuar uma atualização baseada em modelos Resource Manager sempre. Para tal, selecione na Área de Trabalho do OMS na página de destino da sua solução de Monitorização de Contentores (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 Definições Avançadas para abrir o menu Definições Avançadas.
  • Selecione Origens>Ligadas Windows Servers para verificar se tem 5 Computadores Windows Ligados.
  • SelecioneContadores de Desempenho do Windows de Dados> para procurar e adicionar novos contadores de desempenho. Aqui, verá uma lista de recomendações dos registos do Azure Monitor para contadores de desempenho que pode recolher, bem como a opção para procurar outros contadores. Verifique se os contadores processador(_Total)% de Tempo e Memória do Processador (*)\Os contadores MBytes disponíveis estão a ser recolhidos.

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

Passos seguintes

Neste tutorial, ficou a saber como:

  • Configurar os registos do Azure Monitor para o 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 configurou a monitorização para a sua aplicação em contentores, experimente:

  • Configurar os registos do Azure Monitor para um cluster do Linux, seguindo passos semelhantes a este tutorial. Veja este modelo para fazer alterações ao seu modelo do Resource Manager.
  • Configure os registos 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 as funcionalidades de pesquisa e consulta de registos oferecidas como parte dos registos do Azure Monitor.