Use a extensão de diagnóstico do Linux 4.0 para monitorar métricas e logs

Atenção

Este artigo faz referência ao CentOS, uma distribuição Linux que está se aproximando do status de Fim da Vida Útil (EOL). Por favor, considere o seu uso e planeje de acordo. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.

Este artigo descreve as versões mais recentes da extensão de diagnóstico do Linux (LAD).

Importante

Para obter informações sobre a versão 3.x, consulte Usar a extensão de diagnóstico do Linux 3.0 para monitorar métricas e logs. Para obter informações sobre a versão 2.3 e anteriores, consulte Monitorar o desempenho e os dados de diagnóstico de uma VM Linux.

A extensão de diagnóstico do Linux ajuda você a monitorar a integridade de uma VM Linux no Microsoft Azure. Tem as seguintes capacidades:

Data source Opções de personalização Destinos obrigatórios Destinos opcionais
Métricas Contador, Agregação, Taxa de amostragem, Especificadores Armazenamento de Tabelas do Azure EventHub, Azure Blob Storage (formato JSON), Azure Monitor (novo no LAD 4.0)
Syslog Instalação, nível de severidade Armazenamento de Tabelas do Azure EventHub, Armazenamento de Blob do Azure (formato JSON)
Ficheiros Caminho do Log, Tabela de Destino Armazenamento de Tabelas do Azure EventHub, Armazenamento de Blob do Azure (formato JSON)

Esta extensão funciona com ambos os modelos de implantação do Azure: Azure Resource Manager e clássico.

Pré-requisitos

  • Agente Linux do Azure versão 2.2.0 ou posterior. A maioria das imagens da galeria Linux da VM do Azure inclui a versão 2.2.7 ou posterior. Execute /usr/sbin/waagent -version para confirmar a versão instalada na VM. Se a VM executar uma versão mais antiga do agente convidado, atualize o agente Linux.
  • CLI do Azure. Configure o ambiente da CLI do Azure em sua máquina.
  • O wget comando. Se você ainda não o tem, instale-o usando o gerenciador de pacotes correspondente.
  • Uma assinatura do Azure e uma conta de armazenamento de uso geral para armazenar os dados. As contas de armazenamento de uso geral suportam o armazenamento de tabelas, que é necessário. Uma conta de armazenamento de blob não funciona.
  • Python 2.

Distribuições Linux suportadas

Consulte Sistemas operacionais de agente suportados.

Requisito Python

A extensão de diagnóstico Linux requer Python 2. Se sua máquina virtual usa uma distribuição que não inclui Python 2, instale-a.

Nota

No momento, estamos planejando convergir todas as versões das Extensões de Diagnóstico do Linux (LAD) com o novo Agente de Monitoramento do Azure, que já oferece suporte ao Python 3. O LAD será agendado para descontinuação enquanto aguarda anúncio e aprovação.

Para instalar o Python 2, execute um dos seguintes comandos de exemplo:

  • Red Hat, CentOS, Oracle: yum install -y python2
  • Ubuntu, Debian: apt-get install -y python2
  • SUSE: zypper install -y python2

O python2 arquivo executável deve ser aliased para python.

  1. Execute o seguinte comando para remover quaisquer aliases existentes.

    sudo update-alternatives --remove-all python
    
  2. Execute o seguinte comando para criar o novo alias.

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
    

Instalar a extensão

Você pode habilitar essa extensão para sua VM e Conjunto de Escala de Máquina Virtual usando os cmdlets do Azure PowerShell, scripts da CLI do Azure, modelos do Azure Resource Manager (modelos ARM) ou o portal do Azure. Para obter mais informações, consulte Extensões e recursos de máquina virtual para Linux.

Nota

Alguns componentes da extensão Linux Diagnostic VM também são fornecidos na extensão Log Analytics VM. Conflitos podem surgir se ambas as extensões forem instanciadas no mesmo modelo ARM.

Para evitar conflitos de tempo de instalação, use a dependsOn diretiva para instalar as extensões sequencialmente. As extensões podem ser instaladas em qualquer ordem.

Use as instruções de instalação e uma configuração de exemplo para download para configurar o LAD 4.0 para:

  • Capture e armazene as mesmas métricas que as versões 2.3 e 3.x do LAD forneceram.
  • Envie métricas para o coletor do Azure Monitor junto com o coletor usual para o Armazenamento do Azure. Esta funcionalidade é nova no LAD 4.0.
  • Capture um conjunto útil de métricas do sistema de arquivos, como no LAD 3.0.
  • Capture a coleção syslog padrão habilitada pelo LAD 2.3.
  • Habilite a experiência do portal do Azure para criar gráficos e alertas em métricas de VM.

A configuração para download é apenas um exemplo. Modifique-o para atender às suas necessidades.

Instalação

Você pode instalar e configurar o LAD 4.0 na CLI do Azure ou no Azure PowerShell.

Se as configurações protegidas estiverem no ProtectedSettings.json de arquivos e as informações de configuração pública estiverem em PublicSettings.json, execute este comando:

az vm extension set --publisher Microsoft.Azure.Diagnostics \
  --name LinuxDiagnostic --version 4.0 --resource-group <resource_group_name> \
  --vm-name <vm_name> --protected-settings ProtectedSettings.json \
  --settings PublicSettings.json

O comando pressupõe que você esteja usando o modo Gerenciamento de Recursos do Azure da CLI do Azure. Para configurar o LAD para VMs de modelo de implantação clássica, alterne para o modo de Gerenciamento de Serviços (azure config mode asm) e omita o nome do grupo de recursos no comando.

Para obter mais informações, consulte a documentação da CLI entre plataformas.

Ativar atualização automática

Para habilitar a atualização automática do agente, recomendamos que você habilite o recurso Atualização Automática de Extensão :

az vm extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic \
  --version 4.0 --resource-group <resource_group_name> --vm-name <vm_name> \
  --protected-settings ProtectedSettings.json --settings PublicSettings.json \
  --enable-auto-upgrade true

Instalação de amostra

Nesses exemplos, a configuração de exemplo coleta um conjunto de dados padrão e os envia para o armazenamento de tabelas. A URL para a configuração de exemplo e seu conteúdo podem ser alterados.

Nota

Para os exemplos a seguir, preencha os valores apropriados para as variáveis na primeira seção antes de executar o código.

Na maioria dos casos, você deve baixar uma cópia do arquivo JSON de configurações do portal e personalizá-lo para suas necessidades. Use modelos ou sua própria automação para usar uma versão personalizada do arquivo de configuração em vez de fazer o download da URL a cada vez.

Quando você habilita o novo coletor do Azure Monitor, as VMs precisam ter a identidade atribuída ao sistema habilitada para gerar tokens de autenticação MSI (Managed Service Identity). Você pode adicionar essas configurações durante ou após a criação da VM. Para obter instruções sobre o portal do Azure, a CLI do Azure, o PowerShell e o Azure Resource Manager, consulte Configurar identidades gerenciadas.

Exemplo de instalação - CLI do Azure

# Set your Azure VM diagnostic variables.
my_subscription_id=<your_azure_subscription_id>
my_resource_group=<your_azure_resource_group_name_containing_your_azure_linux_vm>
my_linux_vm=<your_azure_linux_vm_name>
my_diagnostic_storage_account=<your_azure_storage_account_for_storing_vm_diagnostic_data>

# Login to Azure before you do anything else.
az login

# Select the subscription that contains the storage account.
az account set --subscription $my_subscription_id

# Enable system-assigned identity on the existing VM.
az vm identity assign --resource-group $my_resource_group --name $my_linux_vm

# Download the sample public settings. You could instead use curl or any web browser.
wget https://raw.githubusercontent.com/Azure/azure-linux-extensions/master/Diagnostic/tests/lad_2_3_compatible_portal_pub_settings.json -O portal_public_settings.json

# Build the VM resource ID. Replace the storage account name and resource ID in the public settings.
my_vm_resource_id=$(az vm show --resource-group $my_resource_group \
  --name $my_linux_vm --query "id" -o tsv)
sed -i "s#__DIAGNOSTIC_STORAGE_ACCOUNT__#$my_diagnostic_storage_account#g" portal_public_settings.json
sed -i "s#__VM_RESOURCE_ID__#$my_vm_resource_id#g" portal_public_settings.json

# Build the protected settings (storage account SAS token).
my_diagnostic_storage_account_sastoken=$(az storage account generate-sas \
  --account-name $my_diagnostic_storage_account --expiry 2037-12-31T23:59:00Z \
  --permissions wlacu --resource-types co --services bt -o tsv)
my_lad_protected_settings="{'storageAccountName': '$my_diagnostic_storage_account', \
  'storageAccountSasToken': '$my_diagnostic_storage_account_sastoken'}"

# Finally, tell Azure to install and enable the extension.
az vm extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic \
  --version 4.0 --resource-group $my_resource_group --vm-name $my_linux_vm \
  --protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json

Exemplo de instalação para conjuntos de escala de máquina virtual - CLI do Azure

# Set your Azure virtual machine scale set diagnostic variables.
my_subscription_id=<your_azure_subscription_id>
my_resource_group=<your_azure_resource_group_name_containing_your_azure_linux_vm>
my_linux_vmss=<your_azure_linux_vmss_name>
my_diagnostic_storage_account=<your_azure_storage_account_for_storing_vm_diagnostic_data>

# Login to Azure before you do anything else.
az login

# Select the subscription that contains the storage account.
az account set --subscription $my_subscription_id

# Enable system-assigned identity on the existing virtual machine scale set.
az vmss identity assign --resource-group $my_resource_group --name $my_linux_vmss

# Download the sample public settings. You could also use curl or any web browser.
wget https://raw.githubusercontent.com/Azure/azure-linux-extensions/master/Diagnostic/tests/lad_2_3_compatible_portal_pub_settings.json -O portal_public_settings.json

# Build the virtual machine scale set resource ID. Replace the storage account name and resource ID in the public settings.
my_vmss_resource_id=$(az vmss show --resource-group $my_resource_group \
  --name $my_linux_vmss --query "id" -o tsv)
sed -i "s#__DIAGNOSTIC_STORAGE_ACCOUNT__#$my_diagnostic_storage_account#g" portal_public_settings.json
sed -i "s#__VM_RESOURCE_ID__#$my_vmss_resource_id#g" portal_public_settings.json

# Build the protected settings (storage account SAS token).
my_diagnostic_storage_account_sastoken=$(az storage account generate-sas \
  --account-name $my_diagnostic_storage_account --expiry 2037-12-31T23:59:00Z \
  --permissions wlacu --resource-types co --services bt -o tsv)
my_lad_protected_settings="{'storageAccountName': '$my_diagnostic_storage_account', 'storageAccountSasToken': '$my_diagnostic_storage_account_sastoken'}"

# Finally, tell Azure to install and enable the extension.
az vmss extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic
  --version 4.0 --resource-group $my_resource_group --vmss-name $my_linux_vmss \
  --protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json

Atualizar as configurações da extensão

Depois de alterar as configurações protegidas ou públicas, execute o mesmo comando para implantá-las na VM. Se alguma configuração for alterada, as atualizações serão enviadas para a extensão. O LAD recarrega a configuração e reinicia-se.

Migrar de versões anteriores da extensão

A última versão da extensão é 4.0, que está atualmente em pré-visualização pública. Versões mais antigas do 3.x ainda são suportadas. As versões 2.x foram preteridas desde 31 de julho de 2018.

Importante

Para migrar do 3.x para a versão mais recente da extensão, desinstale a extensão antiga. Em seguida, instale a versão 4, que inclui a configuração atualizada para identidade atribuída ao sistema e coletores para enviar métricas para o coletor do Azure Monitor.

Ao instalar a nova extensão, habilite as atualizações automáticas de versões secundárias:

  • Nas VMs do modelo de implantação do Azure Resource Manager, inclua "autoUpgradeMinorVersion": true no modelo de implantação de VM.
  • Em VMs de modelo de implantação clássica, especifique a versão 4.* se estiver instalando a extensão por meio da CLI do Azure ou do PowerShell.

Você pode usar a mesma conta de armazenamento usada para LAD 3.x.

Configurações protegidas

Esse conjunto de informações de configuração contém informações confidenciais que devem ser protegidas da exibição pública. Ele contém, por exemplo, credenciais de armazenamento. As configurações são transmitidas para a extensão, que as armazena de forma criptografada.

{
    "storageAccountName" : "the storage account to receive data",
    "storageAccountEndPoint": "the hostname suffix for the cloud for this account",
    "storageAccountSasToken": "SAS access token",
    "mdsdHttpProxy": "HTTP proxy settings",
    "sinksConfig": { ... }
}
Nome Valor
storageAccountName O nome da conta de armazenamento na qual a extensão grava dados.
storageAccountEndPoint (Opcional) O ponto de extremidade que identifica a nuvem na qual a conta de armazenamento existe. Se essa configuração estiver ausente, por padrão, o LAD usará a nuvem pública do Azure, https://core.windows.net. Para usar uma conta de armazenamento no Azure Alemanha, Azure Government ou Microsoft Azure operado pela 21Vianet, defina esse valor conforme necessário.
storageAccountSasToken Um token SAS de conta para serviços de blob e tabela (ss='bt'). Esse token se aplica a contêineres e objetos (srt='co'). Ele concede permissões para adicionar, criar, listar, atualizar e gravar (sp='acluw'). Não inclua o ponto de interrogação principal (?).
mdsdHttpProxy (Opcional) Informações de proxy HTTP que a extensão precisa para se conectar à conta de armazenamento e ao ponto de extremidade especificados.
sinksConfig (Opcional) Detalhes de destinos alternativos para os quais métricas e eventos podem ser entregues. As seções a seguir fornecem detalhes sobre cada coletor de dados suportado pela extensão.

Para obter um token SAS dentro de um modelo ARM, use a listAccountSas função. Para obter um modelo de exemplo, consulte Exemplo de função de lista.

Você pode construir o token de assinatura de acesso compartilhado necessário por meio do portal do Azure:

  1. Selecione a conta de armazenamento de uso geral na qual você deseja que a extensão seja gravada.
  2. No menu à esquerda, em Segurança + rede, selecione Assinatura de acesso compartilhado.
  3. Faça as seleções conforme descrito anteriormente.
  4. Selecione Gerar cadeia de ligação e SAS.

A captura de tela mostra a página Assinatura de acesso compartilhado, que tem a cadeia de conexão e Gerar SAS.

Copie a assinatura de acesso compartilhado gerada para o storageAccountSasToken campo. Remova o ponto de interrogação à esquerda (?).

sinksConfig

Nota

As configurações públicas e protegidas têm uma seção opcional sinksConfig . A sinksConfig seção nas configurações protegidas apenas mantém EventHub e JsonBlob afunda configurações, devido à inclusão de segredos como sasURLs. AzMonSink As configurações do coletor não podem ser incluídas nas configurações protegidas.

"sinksConfig": {
    "sink": [
        {
            "name": "sinkname",
            "type": "sinktype",
            ...
        },
        ...
    ]
},

A sinksConfig seção opcional define mais destinos para os quais a extensão envia as informações coletadas. A "sink" matriz contém um objeto para cada coletor de dados extra. O "type" atributo determina os outros atributos no objeto.

Elemento Valor
nome Uma cadeia de caracteres usada para se referir a esse coletor em outro lugar na configuração da extensão.
tipo O tipo de pia que está sendo definido. Determina os outros valores, se houver, em instâncias desse tipo.

A extensão de diagnóstico Linux 4.0 suporta dois tipos de coletor protegido: EventHub e JsonBlob.

Coletor do EventHub

"sink": [
    {
        "name": "sinkname",
        "type": "EventHub",
        "sasURL": "https SAS URL"
    },
    ...
]

A "sasURL" entrada contém a URL completa, incluindo o token de assinatura de acesso compartilhado, para o hub de eventos no qual os dados devem ser publicados. O LAD requer uma assinatura de acesso compartilhado para nomear uma política que permita a declaração de envio. Eis um exemplo:

  • Crie um namespace de Hubs de Eventos chamado contosohub.
  • Crie um hub de eventos no namespace chamado syslogmsgs.
  • Crie uma política de acesso compartilhado no hub de eventos nomeado writer que habilite a declaração de envio.

Se você criar uma SAS válida até a meia-noite UTC de 1º de janeiro de 2018, o sasURL valor pode ser como o exemplo a seguir.

https://contosohub.servicebus.windows.net/syslogmsgs?sr=contosohub.servicebus.windows.net%2fsyslogmsgs&sig=xxxxxxxxxxxxxxxxxxxxxxxxx&se=1514764800&skn=writer

Para obter mais informações sobre como gerar e recuperar informações sobre tokens SAS para Hubs de Eventos, consulte Gerar um token SAS.

Pia JsonBlob

"sink": [
    {
        "name": "sinkname",
        "type": "JsonBlob"
    },
    ...
]

Os dados direcionados para um JsonBlob coletor são armazenados em blobs no Armazenamento do Azure. Cada instância do LAD cria um blob a cada hora para cada nome de coletor. Cada blob sempre contém uma matriz JSON sintaticamente válida de objetos. Novas entradas são adicionadas atomicamente à matriz.

Os blobs são armazenados em um contêiner que tem o mesmo nome do coletor. As regras de Armazenamento do Azure para nomes de contêiner de blob se aplicam aos nomes de JsonBlob coletores. Os nomes devem ter entre 3 e 63 caracteres ASCII alfanuméricos minúsculos ou traços.

Configurações públicas

A estrutura de configurações públicas contém vários blocos de configurações que controlam as informações que a extensão coleta. Cada configuração, exceto ladCfg, é opcional. Se você especificar a métrica ou a coleção syslog no ladCfg, também deverá especificar StorageAccount. Você deve especificar o sinksConfig elemento para habilitar o coletor do Azure Monitor para métricas do LAD 4.0.

{
    "ladCfg":  { ... },
    "fileLogs": { ... },
    "StorageAccount": "the storage account to receive data",
    "sinksConfig": { ... },
    "mdsdHttpProxy" : ""
}
Elemento Value
StorageAccount O nome da conta de armazenamento na qual a extensão grava dados. Deve ser o nome especificado nas configurações protegidas.
mdsdHttpProxy (Opcional) O proxy especificado nas configurações protegidas. Se o valor privado for definido, ele substituirá o valor público. Coloque as configurações de proxy que contêm um segredo, como uma senha, nas configurações protegidas.

As seções a seguir fornecem detalhes sobre os elementos restantes.

ladCfg

"ladCfg": {
    "diagnosticMonitorConfiguration": {
        "eventVolume": "Medium",
        "metrics": { ... },
        "performanceCounters": { ... },
        "syslogEvents": { ... }
    },
    "sampleRateInSeconds": 15
}

A ladCfg estrutura controla a coleta de métricas e logs para entrega ao serviço Azure Monitor Metrics e a outros coletores de dados. Especifique uma performanceCounters ou syslogEvents ambas. Especifique também a metrics estrutura.

Se você não quiser habilitar syslog ou coleta de métricas, especifique uma estrutura vazia para o ladCfg elemento:

"ladCfg": {
    "diagnosticMonitorConfiguration": {}
}
Elemento Value
eventVolume (Opcional) Controla o número de partições criadas na tabela de armazenamento. O valor deve ser "Large", "Medium", ou "Small". O valor predefinido é "Medium".
sampleRateInSeconds (Opcional) O intervalo padrão entre a coleção de métricas brutas, ou seja, não agregadas. A menor taxa de amostragem suportada é de 15 segundos. A predefinição é 15.

metrics

"metrics": {
    "resourceId": "/subscriptions/...",
    "metricAggregation" : [
        { "scheduledTransferPeriod" : "PT1H" },
        { "scheduledTransferPeriod" : "PT5M" }
    ]
}
Elemento Value
resourceId A ID de recurso do Azure Resource Manager da VM ou do Conjunto de Escala de Máquina Virtual ao qual a VM pertence. Especifique também essa configuração se a configuração usar qualquer JsonBlob coletor.
scheduledTransferPeriod A frequência com que as métricas agregadas são calculadas e transferidas para o Azure Monitor Metrics. A frequência é expressa como um intervalo de tempo IS 8601. O menor período de transferência é de 60 segundos, ou seja, PT1M. Especifique pelo menos um scheduledTransferPeriodarquivo .

As amostras das métricas especificadas na seção são coletadas a performanceCounters cada 15 segundos ou na taxa de amostragem explicitamente definida para o contador. Se aparecerem várias scheduledTransferPeriod frequências, como no exemplo, cada agregação é calculada de forma independente.

performanceCounters

"performanceCounters": {
    "sinks": "",
    "performanceCounterConfiguration": [
        {
            "type": "builtin",
            "class": "Processor",
            "counter": "PercentIdleTime",
            "counterSpecifier": "/builtin/Processor/PercentIdleTime",
            "condition": "IsAggregate=TRUE",
            "sampleRate": "PT15S",
            "unit": "Percent",
            "annotation": [
                {
                    "displayName" : "cpu idle time",
                    "locale" : "en-us"
                }
            ]
        }
    ]
}

A performanceCounters seção opcional controla a coleta de métricas. As amostras brutas são agregadas para cada scheduledTransferPeriod para produzir estes valores:

  • Média
  • Mínimo
  • Máximo
  • Último valor recolhido
  • Contagem das amostras em bruto utilizadas para calcular o agregado
Elemento Value
Pias (Opcional) Uma lista separada por vírgulas de nomes de coletores para os quais o LAD envia resultados métricos agregados. Todas as métricas agregadas são publicadas em cada coletor listado. Por exemplo, "MyEventHubSink, MyJsonSink, MyAzMonSink". Para obter mais informações, consulte sinksConfig (configurações protegidas) e sinksConfig (configurações públicas).
tipo Identifica o provedor real da métrica.
classe Juntamente com "counter", identifica a métrica específica dentro do namespace do provedor.
counter Juntamente com "class", identifica a métrica específica dentro do namespace do provedor. Veja uma lista de contadores disponíveis.
contadorEspecificador Identifica a métrica dentro do namespace Azure Monitor Metrics.
condição (Opcional) Seleciona uma instância do objeto ao qual a métrica se aplica. Ou seleciona a agregação em todas as instâncias desse objeto.
sampleRate O intervalo IS 8601 que define a taxa na qual as amostras brutas para essa métrica são coletadas. Se o valor não estiver definido, o valor de define o intervalo de sampleRateInSeconds coleta. A menor taxa de amostragem suportada é de 15 segundos (PT15S).
unit Define a unidade para a métrica. Deve ser uma destas strings: "Count", "Bytes", "Seconds", "Percent", "CountPerSecond", "BytesPerSecond", "Millisecond". Os consumidores dos dados recolhidos esperam que os valores dos dados recolhidos correspondam a esta unidade. A LAD ignora este campo.
displayName O rótulo a ser anexado aos dados no Azure Monitor Metrics ao exibir no namespace de Guest (classic) métricas. Esse rótulo está no idioma especificado pela configuração de localidade associada. A LAD ignora este campo. Nota: Se estiver visualizando a mesma métrica no azure.vm.linux.guestmetrics Namespace de métricas, que estará disponível se AzMonSink estiver configurado, o nome para exibição dependerá inteiramente do contador. Para localizar o mapeamento entre contadores e nomes, consulte Métricas suportadas pelo provedor interno.

O counterSpecifier é um identificador arbitrário. Os consumidores de métricas, como o recurso de gráficos e alertas do portal do Azure, usam counterSpecifier como a chave que identifica uma métrica ou uma instância de uma métrica.

Para builtin métricas, recomendamos counterSpecifier valores que comecem com /builtin/. Para coletar uma instância específica de uma métrica, anexe o identificador da instância ao counterSpecifier valor. Seguem-se alguns exemplos:

  • /builtin/Processor/PercentIdleTime. Tempo ocioso médio em todas as vCPUs
  • /builtin/Disk/FreeSpace(/mnt). Espaço livre para o /mnt sistema de arquivos
  • /builtin/Disk/FreeSpace. Espaço livre médio em todos os sistemas de arquivos montados

O LAD e o portal do Azure não esperam que o counterSpecifier valor corresponda a nenhum padrão. Seja consistente na forma como constrói counterSpecifier valores.

Quando você especifica performanceCounters, o LAD sempre grava dados em uma tabela no Armazenamento do Azure. Os mesmos dados podem ser gravados em blobs JSON ou Hubs de Eventos ou ambos. Não é possível desativar o armazenamento de dados em uma tabela.

Todas as instâncias de LAD que usam o mesmo nome de conta de armazenamento e ponto de extremidade adicionam suas métricas e logs à mesma tabela. Se muitas VMs gravarem na mesma partição de tabela, o Azure poderá limitar as gravações nessa partição.

A eventVolume configuração faz com que as entradas sejam distribuídas em 1 (pequena), 10 (média) ou 100 (grande) partições. Normalmente, as partições médias são suficientes para evitar a limitação do tráfego.

O recurso Azure Monitor Metrics do portal do Azure usa os dados nesta tabela para produzir gráficos ou disparar alertas. O nome da tabela é a concatenação destas cadeias de caracteres:

  • WADMetrics
  • O "scheduledTransferPeriod" para os valores agregados armazenados na tabela
  • P10DV2S
  • Uma data, sob a forma de AAAAMMDD, que muda de 10 em 10 dias

Os exemplos incluem WADMetricsPT1HP10DV2S20170410 e WADMetricsPT1MP10DV2S20170609.

syslogEventos

"syslogEvents": {
    "sinks": "",
    "syslogEventConfiguration": {
        "facilityName1": "minSeverity",
        "facilityName2": "minSeverity",
        ...
    }
}

A syslogEvents seção opcional controla a coleção de eventos de log do syslog. Se a seção for omitida, os eventos syslog não serão capturados.

A syslogEventConfiguration coleção tem uma entrada para cada recurso syslog de interesse. Se minSeverity for "NONE" para uma instalação específica, ou se essa instalação não aparecer no elemento , nenhum evento dessa instalação será capturado.

Elemento Value
Pias Uma lista separada por vírgulas de nomes de coletores nos quais eventos de log individuais são publicados. Todos os eventos de log que correspondem às restrições são publicados em syslogEventConfiguration cada coletor listado. Exemplo: "EHforsyslog"
Nome da instalação Um nome de recurso syslog, como "LOG_USER" ou "LOG_LOCAL0". Para obter mais informações, consulte Valores para facilidade na página de manual do syslog.
minSeveridade Um nível de severidade syslog, como "LOG_ERR" ou "LOG_INFO". Para obter mais informações, consulte Valores para nível na página de manual do syslog. A extensão captura eventos enviados para a instalação no nível especificado ou acima dele.

Quando você especifica syslogEvents, o LAD sempre grava dados em uma tabela no Armazenamento do Azure. Os mesmos dados podem ser gravados em blobs JSON ou Hubs de Eventos ou ambos. Não é possível desativar o armazenamento de dados em uma tabela.

O comportamento de particionamento para esta tabela é o mesmo descrito para performanceCounters. O nome da tabela é a concatenação destas cadeias de caracteres:

  • LinuxSyslog
  • Uma data, sob a forma de AAAAMMDD, que muda de 10 em 10 dias

Os exemplos incluem LinuxSyslog20170410 e LinuxSyslog20170609.

sinksConfig

A seção pública sinksConfig opcional permite enviar métricas para o coletor do Azure Monitor, além da conta de Armazenamento e da exibição padrão de Métricas de Convidado.

Nota

As configurações públicas e protegidas têm uma seção opcional sinksConfig . A sinksConfig seção nas configurações públicas contém apenas a configuração do AzMonSink coletor. EventHub e JsonBlob as configurações do coletor não podem ser incluídas em suas configurações públicas.

Nota

A sinksConfig seção requer que a identidade atribuída ao sistema seja habilitada nas VMs ou no conjunto de dimensionamento da máquina virtual. Você pode habilitar a identidade atribuída ao sistema por meio do portal do Azure, da CLI, do PowerShell ou do Azure Resource Manager. Siga as instruções detalhadas ou consulte os exemplos de instalações anteriores neste artigo.

  "sinksConfig": {
    "sink": [
      {
        "name": "AzMonSink",
        "type": "AzMonSink",
        "AzureMonitor": {}
      }
    ]
  },

fileLogs

A fileLogs seção controla a captura de arquivos de log. O LAD captura novas linhas de texto à medida que são gravadas no arquivo. Ele os grava em linhas de tabela e em quaisquer coletores especificados, como JsonBlob e EventHub.

Nota

Os fileLogs são capturados por um subcomponente do LAD chamado omsagent. Para coletar fileLogso , verifique se o omsagent usuário tem permissões de leitura nos arquivos especificados. Ele também deve ter permissões de execução em todos os diretórios no caminho para esse arquivo. Depois que o LAD for instalado, para verificar as permissões, execute sudo su omsagent -c 'cat /path/to/file'.

"fileLogs": [
    {
        "file": "/var/log/mydaemonlog",
        "table": "MyDaemonEvents",
        "sinks": ""
    }
]
Elemento Value
ficheiro O caminho completo do arquivo de log a ser observado e capturado. O caminho não pode especificar um diretório ou conter caracteres curinga. A omsagent conta de usuário deve ter acesso de leitura ao caminho do arquivo.
tabela (Opcional) A Tabela de Armazenamento do Azure na qual novas linhas da parte final do arquivo são gravadas. A tabela deve estar na conta de armazenamento designada, conforme especificado na configuração protegida.
Pias (Opcional) Uma lista separada por vírgulas de nomes de mais coletores para os quais as linhas de log são enviadas.

Um ou "table""sinks" ambos devem ser especificados.

Métricas suportadas pelo provedor integrado

As métricas padrão suportadas pelo LAD são agregadas em todos os sistemas de arquivos, discos ou nomes. Para métricas não agregadas, consulte o suporte mais recente a métricas de coletor do Azure Monitor.

Nota

Os nomes de exibição para cada métrica diferem dependendo do namespace de métricas ao qual ela pertence:

  • Guest (classic)preenchido a partir da sua conta de armazenamento: o performanceCounters especificado displayName na seção ou o nome de exibição padrão, conforme visto no Portal do Azure. Para a VM, em Configurações de diagnóstico de monitoramento>, selecione a guia Métricas.
  • azure.vm.linux.guestmetricspreenchido a partir de , se configurado: o "azure.vm.linux.guestmetricsNome para AzMonSinkexibição" especificado nas tabelas a seguir.

Os valores métricos entre Guest (classic) e azure.vm.linux.guestmetrics versões diferem. Enquanto as métricas clássicas tinham certas agregações aplicadas no agente, as novas métricas são contadores não agregados, dando aos clientes a flexibilidade de agregar conforme desejado no momento da visualização/alerta.

O builtin provedor de métricas é uma fonte de métricas que são as mais interessantes para um amplo conjunto de usuários. Essas métricas se dividem em cinco classes amplas:

  • Processador
  • Memória
  • Rede
  • Sistema de ficheiros
  • Disco

métricas internas para a classe Processor

A classe de métricas Processor fornece informações sobre o uso do processador na VM. Quando as porcentagens são agregadas, o resultado é a média em todas as CPUs.

Em uma VM de duas vCPU, se uma vCPU estiver 100% ocupada e a outra estiver 100% ociosa, o relatório PercentIdleTime será 50. Se cada vCPU estiver 50% ocupada no mesmo período, o resultado relatado também será 50. Em uma VM de quatro vCPU, quando uma vCPU está 100% ocupada e as outras estão ociosas, o relatório PercentIdleTime é 75.

Contador azure.vm.linux.guestmetrics Nome para exibição Significado
PercentIdleTime cpu idle time Porcentagem de tempo durante a janela de agregação em que os processadores executaram o loop ocioso do kernel
PercentProcessorTime cpu percentage guest os Porcentagem de tempo executando um thread não ocioso
PercentIOWaitTime cpu io wait time Percentagem de tempo à espera da conclusão das operações de E/S
PercentInterruptTime cpu interrupt time Porcentagem de tempo executando interrupções de hardware ou software e chamadas de procedimento adiado (DPCs)
PercentUserTime cpu user time De tempo não ocioso durante a janela de agregação, a porcentagem de tempo gasto no modo de usuário com prioridade normal
PercentNiceTime cpu nice time De tempo não ocioso, a percentagem gasta na prioridade reduzida (agradável)
PercentPrivilegedTime cpu privileged time De tempo não ocioso, a porcentagem gasta no modo privilegiado (kernel)

Os quatro primeiros contadores devem somar 100%. Os três últimos contadores também somam 100%. Estes três contadores subdividem a soma de PercentProcessorTime, PercentIOWaitTimee PercentInterruptTime.

métricas internas para a classe Memory

A classe Memory de métricas fornece informações sobre o uso de memória, paginação e troca.

Contador azure.vm.linux.guestmetrics Nome para exibição Significado
Memória disponível memory available Memória física disponível em MiB
PercentAvailableMemory mem. percent available Memória física disponível como uma percentagem da memória total
Memória Usada memory used Memória física em uso (MiB)
PercentUsedMemory memory percentage Memória física em uso como uma porcentagem da memória total
PáginasPerSec pages Paginação total (leitura/gravação)
PáginasReadPerSec page reads Páginas lidas do armazenamento de backup, como arquivo de permuta, arquivo de programa e arquivo mapeado
PáginasEscritaPerSec page writes Páginas gravadas no armazenamento de backup, como arquivo de permuta e arquivo mapeado
AvailableSwap swap available Espaço de permuta não utilizado (MiB)
PercentAvailableSwap swap percent available Espaço de swap não utilizado em percentagem do swap total
UsedSwap swap used Espaço de permuta em uso (MiB)
PercentUsedSwap swap percent used Espaço de swap em utilização em percentagem do swap total

Essa classe de métricas tem apenas uma instância. O "condition" atributo não tem configurações úteis e deve ser omitido.

métricas internas para a classe Network

A classe de métricas Network fornece informações sobre a atividade da rede em uma interface de rede individual desde a inicialização.

O LAD não expõe métricas de largura de banda. Você pode obter essas métricas a partir de métricas de host.

Contador azure.vm.linux.guestmetrics Nome para exibição Significado
BytesTransmitidos network out guest os Total de bytes enviados desde a inicialização
BytesRecebidos network in guest os Total de bytes recebidos desde o arranque
BytesTotal network total bytes Total de bytes enviados ou recebidos desde a inicialização
PacotesTransmitidos packets sent Total de pacotes enviados desde o arranque
PacotesRecebidos packets received Total de pacotes recebidos desde o arranque
TotalRxErrors packets received errors Número de erros de recebimento desde a inicialização
TotalTxErrors packets sent errors Número de erros de transmissão desde o arranque
TotalCollisions network collisions Número de colisões relatadas pelas portas de rede desde a inicialização

métricas internas para a classe File system

A classe de métricas do sistema de arquivos fornece informações sobre o uso do sistema de arquivos. Os valores absolutos e percentuais são relatados como seriam exibidos para um usuário comum, não root.

Contador azure.vm.linux.guestmetrics Nome para exibição Significado
Espaço Livre filesystem free space Espaço disponível em disco em bytes
Espaço Usado filesystem used space Espaço em disco usado em bytes
PercentFreeSpace filesystem % free space Percentagem de espaço livre
PercentUsedSpace filesystem % used space Percentagem de espaço utilizado
PercentFreeInodes filesystem % free inodes Percentagem de nós de índice não utilizados (inodes)
PercentUsedInodes filesystem % used inodes Porcentagem de inodos alocados (em uso) somados em todos os sistemas de arquivos
BytesReadPerSecond filesystem read bytes/sec Bytes lidos por segundo
BytesWrittenPerSecond filesystem write bytes/sec Bytes gravados por segundo
BytesPerSecond filesystem bytes/sec Bytes lidos ou gravados por segundo
ReadsPerSecond filesystem reads/sec Ler operações por segundo
WritesPerSecond filesystem writes/sec Operações de gravação por segundo
TransferênciasPerSecond filesystem transfers/sec Operações de leitura ou gravação por segundo

métricas internas para a classe Disk

A classe de métricas Disk fornece informações sobre o uso do dispositivo de disco. Estas estatísticas aplicam-se a toda a unidade.

Quando um dispositivo tem vários sistemas de arquivos, os contadores desse dispositivo são, efetivamente, agregados em todos os sistemas de arquivos.

Contador azure.vm.linux.guestmetrics Nome para exibição Significado
ReadsPerSecond disk reads Ler operações por segundo
WritesPerSecond disk writes Operações de gravação por segundo
TransferênciasPerSecond disk transfers Total de operações por segundo
AverageReadTime disk read time Média de segundos por operação de leitura
AverageWriteTime disk write time Média de segundos por operação de gravação
MédiaTempo de Transferência disk transfer time Média de segundos por operação
AverageDiskQueueLength disk queue length Número médio de operações de disco em fila
ReadBytesPerSecond disk read guest os Número de bytes lidos por segundo
WriteBytesPerSecond disk write guest os Número de bytes gravados por segundo
BytesPerSecond disk total bytes Número de bytes lidos ou gravados por segundo

Exemplo de configuração do LAD 4.0

Com base nas definições anteriores, esta seção fornece um exemplo de configuração da extensão LAD 4.0 e algumas explicações. Para aplicar este exemplo, use seu próprio nome de conta de armazenamento, token de assinatura de acesso compartilhado de conta e tokens SAS de Hubs de Eventos.

Nota

Dependendo se você usa a CLI do Azure ou o Azure PowerShell para instalar o LAD, o método para fornecer configurações públicas e protegidas é diferente:

  • Se você estiver usando a CLI do Azure, salve as seguintes configurações para ProtectedSettings.json e PublicSettings.json usar o comando de exemplo anterior.
  • Se você estiver usando o PowerShell, execute $protectedSettings = '{ ... }' e $publicSettings = '{ ... }' salve as seguintes configurações em $protectedSettings e $publicSettings.

Configuração de definições protegidas

As configurações protegidas configuram:

  • Uma conta de armazenamento.
  • Um token de assinatura de acesso compartilhado de conta correspondente.
  • Vários coletores: JsonBlob ou EventHub com tokens SAS.
{
  "storageAccountName": "yourdiagstgacct",
  "storageAccountSasToken": "sv=xxxx-xx-xx&ss=bt&srt=co&sp=wlacu&st=yyyy-yy-yyT21%3A22%3A00Z&se=zzzz-zz-zzT21%3A22%3A00Z&sig=fake_signature",
  "sinksConfig": {
    "sink": [
      {
        "name": "SyslogJsonBlob",
        "type": "JsonBlob"
      },
      {
        "name": "FilelogJsonBlob",
        "type": "JsonBlob"
      },
      {
        "name": "LinuxCpuJsonBlob",
        "type": "JsonBlob"
      },
      {
        "name": "MyJsonMetricsBlob",
        "type": "JsonBlob"
      },
      {
        "name": "LinuxCpuEventHub",
        "type": "EventHub",
        "sasURL": "https://youreventhubnamespace.servicebus.windows.net/youreventhubpublisher?sr=https%3a%2f%2fyoureventhubnamespace.servicebus.windows.net%2fyoureventhubpublisher%2f&sig=fake_signature&se=1808096361&skn=yourehpolicy"
      },
      {
        "name": "MyMetricEventHub",
        "type": "EventHub",
        "sasURL": "https://youreventhubnamespace.servicebus.windows.net/youreventhubpublisher?sr=https%3a%2f%2fyoureventhubnamespace.servicebus.windows.net%2fyoureventhubpublisher%2f&sig=yourehpolicy&skn=yourehpolicy"
      },
      {
        "name": "LoggingEventHub",
        "type": "EventHub",
        "sasURL": "https://youreventhubnamespace.servicebus.windows.net/youreventhubpublisher?sr=https%3a%2f%2fyoureventhubnamespace.servicebus.windows.net%2fyoureventhubpublisher%2f&sig=yourehpolicy&se=1808096361&skn=yourehpolicy"
      }
    ]
  }
}

Configuração de definições públicas

As configurações públicas fazem com que o LAD:

  • Carregue métricas de tempo de processador por porcentagem e métricas de espaço em disco usado para a WADMetrics* tabela.
  • Carregue mensagens do recurso "user" syslog e severidade "info" para a LinuxSyslog* tabela.
  • Carregue linhas anexadas no arquivo /var/log/myladtestlog para a MyLadTestLog tabela.

Em cada caso, os dados também são carregados para:

  • Armazenamento de Blobs do Azure. O nome do contêiner é o JsonBlob definido no coletor.
  • Um ponto de extremidade de Hubs de Eventos, conforme especificado no EventHub coletor.
{
  "StorageAccount": "yourdiagstgacct",
  "ladCfg": {
    "sampleRateInSeconds": 15,
    "diagnosticMonitorConfiguration": {
      "performanceCounters": {
        "sinks": "MyMetricEventHub,MyJsonMetricsBlob",
        "performanceCounterConfiguration": [
          {
            "unit": "Percent",
            "type": "builtin",
            "counter": "PercentProcessorTime",
            "counterSpecifier": "/builtin/Processor/PercentProcessorTime",
            "annotation": [
              {
                "locale": "en-us",
                "displayName": "cpu percentage guest os"
              }
            ],
            "condition": "IsAggregate=TRUE",
            "class": "Processor"
          },
          {
            "unit": "Bytes",
            "type": "builtin",
            "counter": "UsedSpace",
            "counterSpecifier": "/builtin/FileSystem/UsedSpace",
            "annotation": [
              {
                "locale": "en-us",
                "displayName": "Used disfilesystem used space"
              }
            ],
            "condition": "Name=\"/\"",
            "class": "Filesystem"
          }
        ]
      },
      "metrics": {
        "metricAggregation": [
          {
            "scheduledTransferPeriod": "PT1H"
          },
          {
            "scheduledTransferPeriod": "PT1M"
          }
        ],
        "resourceId": "/subscriptions/your_azure_subscription_id/resourceGroups/your_resource_group_name/providers/Microsoft.Compute/virtualMachines/your_vm_name"
      },
      "eventVolume": "Large",
      "syslogEvents": {
        "sinks": "SyslogJsonBlob,LoggingEventHub",
        "syslogEventConfiguration": {
          "LOG_USER": "LOG_INFO"
        }
      }
    }
  },
  "sinksConfig": {
    "sink": [
      {
        "name": "AzMonSink",
        "type": "AzMonSink",
        "AzureMonitor": {}
      }
    ]
  },
  "fileLogs": [
    {
      "file": "/var/log/myladtestlog",
      "table": "MyLadTestLog",
      "sinks": "FilelogJsonBlob,LoggingEventHub"
    }
  ]
}

O resourceId na configuração deve corresponder ao da VM ou do Conjunto de Escala da Máquina Virtual.

  • O gráfico e os alertas de métricas da plataforma Azure sabem o resourceId da VM em que você está trabalhando. Ele espera encontrar os dados para sua VM usando o resourceId como a chave de pesquisa.
  • Se você usar a escala automática do Azure, a resourceId configuração de escala automática deverá corresponder à que o resourceId LAD usa.
  • O resourceId é incorporado aos nomes dos blobs JSON escritos por LAD.

Ver os dados

Use o portal do Azure para exibir dados de desempenho ou definir alertas:

A captura de tela mostra a página Métricas no portal do Azure e a opção Disponibilidade selecionada.

Os performanceCounters dados são sempre armazenados em uma tabela de Armazenamento do Azure. As APIs de Armazenamento do Azure estão disponíveis para muitos idiomas e plataformas.

Os dados enviados para JsonBlob coletores são armazenados em blobs na conta de armazenamento nomeada nas configurações protegidas. Você pode consumir os dados de blob em qualquer API de Armazenamento de Blob do Azure.

Você também pode usar estas ferramentas de interface do usuário para acessar os dados no Armazenamento do Azure:

A captura de tela a seguir de uma sessão do Gerenciador de Armazenamento do Azure mostra as tabelas e contêineres gerados do Armazenamento do Azure a partir de uma extensão LAD 4.0 configurada corretamente em uma VM de teste. A imagem não corresponde exatamente à configuração de exemplo do LAD 4.0.

A captura de tela mostra o Gerenciador de Armazenamento do Azure.

Para obter mais informações sobre como consumir mensagens publicadas em um ponto de extremidade de Hubs de Eventos, consulte a documentação relevante dos Hubs de Eventos.

Próximos passos

  • No Azure Monitor, crie alertas para as métricas coletadas.
  • Crie gráficos de monitoramento para suas métricas.
  • Crie um Conjunto de Dimensionamento de Máquina Virtual usando suas métricas para controlar o dimensionamento automático.