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 com status de Fim de Vida (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
.
Execute o seguinte comando para remover quaisquer aliases existentes.
sudo update-alternatives --remove-all python
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:
- Selecione a conta de armazenamento de uso geral na qual você deseja que a extensão seja gravada.
- No menu à esquerda, em Segurança + rede, selecione Assinatura de acesso compartilhado.
- Faça as seleções conforme descrito anteriormente.
- Selecione Gerar cadeia de ligação e 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 sasURL
s. 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 scheduledTransferPeriod arquivo . |
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 chamada LinuxSyslogVer2v0 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.
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 fileLogs
o , 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: operformanceCounters
especificadodisplayName
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.guestmetrics
preenchido a partir de , se configurado: o "azure.vm.linux.guestmetrics
Nome paraAzMonSink
exibiçã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
, PercentIOWaitTime
e 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
ouEventHub
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 aLinuxSyslog*
tabela. - Carregue linhas anexadas no arquivo
/var/log/myladtestlog
para aMyLadTestLog
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 oresourceId
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 oresourceId
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:
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:
- Explorador de Servidores do Visual Studio
- Explorador do Storage 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.
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.