Usar a extensão de diagnóstico Linux 4.0 para monitorar métricas e logs
Cuidado
Este artigo faz referência ao CentOS, uma distribuição Linux que está em status de fim do serviço (EOL). Considere seu uso e planeje adequadamente. Para obter mais informações, veja as Diretrizes sobre fim da vida útil do CentOS.
Este documento 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, confira Usar a extensão de diagnóstico Linux 3.0 para monitorar métricas e logs. Para obter informações sobre a versão 2.3 e anteriores, confira Monitorar dados de desempenho e 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. Ela oferece os seguintes recursos:
Fonte de dados | Opções de personalização | Destinos necessários | Destinos opcionais |
---|---|---|---|
Métricas | Contador, agregação, taxa de amostragem, especificadores | Armazenamento de Tabelas do Azure | Hub de eventos, Armazenamento de Blobs do Azure (formato JSON), Azure Monitor (novo no LAD 4.0) |
syslog | Recurso, nível de severidade | Armazenamento de Tabelas do Azure | Hub de eventos, armazenamento de blobs do Azure (formato JSON) |
Arquivos | Caminho de log, tabela de destino | Armazenamento de Tabelas do Azure | Hub de eventos, armazenamento de blobs do Azure (formato JSON) |
Esta extensão funciona com os dois 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 de galeria da VM Linux 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 estiver executando uma versão mais antiga do agente convidado, atualize o agente Linux. - CLI do Azure. Configurar o ambiente da CLI do Azure em seu computador.
- O comando
wget
. Se você ainda não o possui, 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 dão suporte ao armazenamento de tabelas que é necessário. Uma conta de armazenamento de blobs não funciona.
- Python 2.
Distribuições Linux compatíveis
Confira Sistemas operacionais do agente com suporte.
Requisito do Python
A extensão de diagnóstico Linux requer o Python 2. Se sua máquina virtual usa uma distribuição que não inclui o Python 2 por, instale-o.
Observação
No momento, estamos planejando convergir todas as versões do LAD (Extensões de Diagnóstico do Linux) com o novo Agente de Monitoramento do Azure, que já dá suporte ao Python 3. O LAD será agendado para substituição pendente de 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 arquivo executável python2
deve ter um alias para python
.
Execute o comando a seguir para remover todos os aliases existentes.
sudo update-alternatives --remove-all python
Execute o comando a seguir para criar o novo alias.
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
Instalar a extensão
É possível habilitar essa extensão para sua VM e conjunto de dimensionamento de máquinas virtuais usando os cmdlets do Azure PowerShell, os scripts da CLI do Azure, os modelos do ARM (Azure Resource Manager) ou o portal do Azure. Para obter mais informações, consulte Recursos e extensões da máquina virtual para Linux.
Observação
Determinados componentes da extensão de VM de diagnóstico Linux também são fornecidos na Extensão de VM do Log Analytics. Pode haver conflitos se as duas extensões forem instanciadas no mesmo modelo do 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:
- Capturar e armazenar as mesmas métricas que as versões 2.3 e 3.x do LAD forneciam.
- Enviar métricas para o coletor do Azure Monitor, junto com o coletor usual, para o Armazenamento do Azure. Essa funcionalidade é nova no LAD 4.0.
- Capturar um conjunto útil de métricas do sistema de arquivos, assim como no LAD 3.0.
- Capturar a coleção de syslog padrão habilitada pelo LAD 2.3.
- Habilitar a experiência do portal do Azure para gráficos e criação de alertas em métricas da VM.
A configuração para download é apenas um exemplo. Modifique-a 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 suas configurações protegidas estiverem no arquivo ProtectedSettings.json e suas 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 supõe que você esteja usando o modo de Gerenciamento de Recursos do Azure da CLI do Azure. Para configurar o LAD para VMs do modelo de implantação clássico, alterne para o modo de gerenciamento de serviço (azure config mode asm
) e omita o nome do grupo de recursos no comando.
Para saber mais, confira a documentação da CLI entre plataformas.
Habilitar a atualização automática
Para habilitar a atualização automática, recomendamos a habilitação do 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 exemplo
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 o respectivo conteúdo estão sujeitos a alterações.
Observação
Para os exemplos a seguir, preencha os valores corretos para as variáveis na primeira seção antes de executar o código.
Na maioria dos casos, você precisa baixar uma cópia do arquivo JSON de configurações do portal e personalizá-la de acordo com as suas necessidades. Use modelos ou sua automação para usar uma versão personalizada do arquivo de configuração em vez de baixar da URL toda vez.
Quando você habilita o novo coletor de Azure Monitor, as VMs precisam ter a identidade atribuída pelo sistema habilitada para gerar tokens de autenticação de MSI (Identidade de Serviço Gerenciada). Você pode adicionar essas configurações durante ou após a criação da VM. Para obter instruções relacionadas ao portal do Azure, a CLI do Azure, o PowerShell e o Azure Resource Manager, confira 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 Dimensionamento de Máquinas Virtuais - 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 de extensão
Depois de alterar as configurações públicas ou protegidas, execute o mesmo comando para implantá-las na VM. Se qualquer configuração for alterada, as atualizações serão enviadas para a extensão. O LAD recarrega a configuração e é reiniciado.
Migrar de versões anteriores da extensão
A versão mais recente da extensão é a 4.0, que está atualmente em versão prévia pública. Ainda há suporte para versões mais antigas do 3.x. As versões 2.x foram preteridas desde 31 de julho de 2018.
Importante
Para migrar da 3.x para a última versão da extensão, desinstale a extensão antiga. Em seguida, instale a versão 4, que inclui a configuração atualizada da identidade atribuída pelo sistema e de coletores para enviar métricas para o coletor do Azure Monitor.
Ao instalar a nova extensão, habilite atualizações automáticas da versão secundária:
- Nas VMs do modelo de implantação do Azure Resource Manager, inclua
"autoUpgradeMinorVersion": true
no modelo de implantação da VM. - Em VMs do modelo de implantação clássico, especifique a versão
4.*
se você estiver instalando a extensão por meio da CLI do Azure ou do PowerShell.
Você pode usar a mesma conta de armazenamento usada para o LAD 3.x.
Configurações protegidas
Esse conjunto de informações de configuração contém informações confidenciais que devem ser protegidas da visualização pública. Ele contém, por exemplo, credenciais de armazenamento. As configurações são transmitidas para a extensão e armazenadas por ela de maneira 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 Governamental ou Azure operado pela 21Vianet, defina este valor conforme for 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 de adição, criação, lista, atualização e gravação (sp='acluw' ). Não inclua o ponto de interrogação (?) no início. |
mdsdHttpProxy | (opcional) As informações de proxy HTTP de que a extensão precisa para se conectar ao ponto de extremidade e à conta de armazenamento especificados. |
sinksConfig | (Opcional) Detalhes de destinos alternativos para os quais as métricas e os eventos podem ser entregues. As seções a seguir fornecem detalhes sobre cada coletor de dados a que a extensão dá suporte. |
Para obter um token SAS dentro de um modelo do ARM, use a função listAccountSas
. Para obter um modelo de exemplo, confira Exemplo da 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 para uso geral na qual deseja que a extensão grave.
- No menu da esquerda, em Segurança + rede, selecione Assinatura de acesso compartilhado.
- Faça as seleções conforme descrito anteriormente.
- Selecione Gerar SAS e cadeia de conexão.
Copie a assinatura de acesso compartilhado gerada no campo storageAccountSasToken
. Remova o ponto de interrogação (?) à esquerda.
sinksConfig
Observação
As configurações pública e protegida têm uma seção sinksConfig
opcional. A seção sinksConfig
nas configurações protegidas só contém as configurações de coletor EventHub
e JsonBlob
, devido à inclusão de segredos como sasURL
s. As configurações de coletor AzMonSink
não podem ser incluídas nas configurações protegidas.
"sinksConfig": {
"sink": [
{
"name": "sinkname",
"type": "sinktype",
...
},
...
]
},
A seção opcional sinksConfig
define mais destinos para os quais a extensão envia informações coletadas. A matriz "sink"
contém um objeto para cada coletor de dados adicional. O atributo "type"
determina os outros atributos no objeto.
Elemento | Valor |
---|---|
name | Uma cadeia de caracteres usada para se referir a esse coletor em outro lugar na configuração da extensão. |
type | O tipo de coletor que está sendo definido. Determina os outros valores, se houver, em instâncias desse tipo. |
A versão 4.0 da extensão de diagnóstico Linux fornece suporte a dois tipos de coletores protegidos: EventHub
e JsonBlob
.
Coletor EventHub
"sink": [
{
"name": "sinkname",
"type": "EventHub",
"sasURL": "https SAS URL"
},
...
]
A entrada "sasURL"
contém a URL completa, incluindo o token de Assinatura de Acesso Compartilhado para o hub de eventos para o qual os dados devem ser publicados. O LAD exige uma Assinatura de Acesso Compartilhado para nomear uma política que permita a declaração de envio. Aqui está um exemplo:
- Crie um namespace dos 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 chamada
writer
que habilite a declaração de envio.
Se você criou uma SAS que é válida até meia-noite UTC em 1º de janeiro de 2018, o valor sasURL
pode ser semelhante ao exemplo a seguir.
https://contosohub.servicebus.windows.net/syslogmsgs?sr=contosohub.servicebus.windows.net%2fsyslogmsgs&sig=xxxxxxxxxxxxxxxxxxxxxxxxx&se=1514764800&skn=writer
Para saber mais sobre como gerar e recuperar informações sobre tokens SAS para os Hubs de Eventos, confira Gerar um token SAS.
Coletor JsonBlob
"sink": [
{
"name": "sinkname",
"type": "JsonBlob"
},
...
]
Dados direcionados a um coletor JsonBlob
são armazenados em blobs no Armazenamento do Azure. Cada instância de LAD cria um blob a cada hora para cada nome de coletor. Cada blob sempre contém uma matriz JSON de objetos sintaticamente válida. Novas entradas são adicionadas atomicamente à matriz.
Os blobs são armazenados em um contêiner com o mesmo nome que o coletor. As regras do Armazenamento do Azure para nomes de contêiner de blob se aplicam aos nomes dos coletores JsonBlob
. Os nomes devem ter entre 3 e 63 caracteres ASCII alfanuméricos em letras minúsculas 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 coletadas pela extensão. Cada configuração, exceto ladCfg
, é opcional. Se você especificar a coleção de métrica ou de syslog em ladCfg
, também precisará especificar StorageAccount
. Você deve especificar o elemento sinksConfig
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 | Valor |
---|---|
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 estrutura ladCfg
controla a reunião de métricas e logs para entrega ao serviço de Métricas do Azure Monitor e outros coletores de dados. Você deve especificar performanceCounters
ou syslogEvents
, ou ambos. Especifique também a estrutura metrics
.
Para não habilitar o syslog ou a coleta de métricas, especifique uma estrutura vazia para o elemento ladCfg
:
"ladCfg": {
"diagnosticMonitorConfiguration": {}
}
Elemento | Valor |
---|---|
eventVolume | (Opcional) Controla o número de partições criadas dentro da tabela de armazenamento. O valor deve ser "Large" , "Medium" ou "Small" . O valor padrão é "Medium" . |
sampleRateInSeconds | (Opcional) O intervalo padrão entre a coleta de métricas brutas, ou seja, não agregadas. A menor taxa de amostra com suporte é de 15 segundos. O padrão é 15 . |
Métricas
"metrics": {
"resourceId": "/subscriptions/...",
"metricAggregation" : [
{ "scheduledTransferPeriod" : "PT1H" },
{ "scheduledTransferPeriod" : "PT5M" }
]
}
Elemento | Valor |
---|---|
resourceId | A ID de recurso do Azure Resource Manager da VM ou conjunto de dimensionamento de máquinas virtuais à qual pertence a VM. Especifique também essa configuração se a configuração usar qualquer coletor JsonBlob . |
scheduledTransferPeriod | A frequência com a qual as métricas agregadas são computadas e transferidas para as Métricas do Azure Monitor. A frequência é expressa como um intervalo de tempo IS 8601. O menor período de transferência é 60 segundos, ou seja, PT1M. Especifique pelo menos um scheduledTransferPeriod . |
Os exemplos de métricas especificados na seção performanceCounters
são coletados a cada 15 segundos ou na taxa de amostra explicitamente definidas para o contador. Se várias frequências scheduledTransferPeriod
aparecerem (como no exemplo), cada agregação será calculada independentemente.
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 seção opcional performanceCounters
controla a coleta de métricas. As amostras brutas são agregadas para cada scheduledTransferPeriod para produzir esses valores:
- Média
- Mínimo
- Máximo
- Valor coletado por último
- Contagem de amostras brutas usadas para computar a agregação
Elemento | Valor |
---|---|
coletores | (Opcional) Uma lista separada por vírgulas de nomes de coletores para os quais o LAD envia resultados de métricas agregadas. 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). |
type | Identifica o provedor real da métrica. |
class | Junto com "counter" , identifica a métrica específica dentro do namespace do provedor. |
contador | Junto com "class" , identifica a métrica específica dentro do namespace do provedor. Veja uma lista de contadores disponíveis. |
counterSpecifier | Identifica a métrica dentro do namespace de Métricas do Azure Monitor. |
condition | (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 esta métrica são coletados. Se o valor não estiver definido, o valor de definirá o intervalo de coleção sampleRateInSeconds . A menor taxa de amostra com suporte é de 15 segundos (PT15S). |
unit | Define a unidade para a métrica. Deve ser uma destas cadeias de caracteres: "Count" , "Bytes" , "Seconds" , "Percent" , "CountPerSecond" , "BytesPerSecond" , "Millisecond" . Os consumidores dos dados coletados esperam que os valores de dados coletados correspondam a essa unidade. O LAD ignora esse campo. |
displayName | O rótulo a ser anexado aos dados nas métricas do Azure Monitor durante a exibição no namespace de métricas Guest (classic) . Esse rótulo está no idioma especificado pela configuração de localidade associada. O LAD ignora esse campo. Observação: Se visualizar a mesma métrica no namespace de métricas azure.vm.linux.guestmetrics disponível se AzMonSink estiver configurado, o nome de exibição depende totalmente do contador. Para localizar o mapeamento entre contadores e nomes, consulte Métricas compatíveis com o provedor interno. |
O counterSpecifier
é um identificador arbitrário. Os consumidores de métricas, como o gráfico do Portal do Azure e o recurso de alerta, usam counterSpecifier
como a chave que identifica uma métrica ou instância de uma métrica.
Para métricas builtin
, recomendamos valores de counterSpecifier
iniciados por /builtin/
. Para coletar a instância específica de uma métrica, anexe o identificador da instância ao valor de counterSpecifier
. Estes são alguns exemplos:
/builtin/Processor/PercentIdleTime
. Tempo ocioso médio de todas as vCPUs/builtin/Disk/FreeSpace(/mnt)
. Espaço livre para o sistema de arquivos/mnt
/builtin/Disk/FreeSpace
. Espaço livre com a média de todos os sistemas de arquivos montados
O LAD e o portal do Azure não esperam que o valor de counterSpecifier
corresponda a nenhum padrão. Seja consistente na maneira como você constrói valores de counterSpecifier
.
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 nos Hubs de Eventos ou em ambos. Você não pode desabilitar o armazenamento de dados em uma tabela.
Todas as instâncias do LAD que usam o mesmo nome de conta de armazenamento e ponto de extremidade adicionam suas métricas e seus logs à mesma tabela. Se muitas VMs gravarem na mesma partição de tabela, o Azure poderá restringir as gravações nessa partição.
A configuração eventVolume
faz as entradas serem distribuídas entre 1 (pequeno), 10 (médio) ou 100 (grande) partições. Normalmente, partições médias são suficientes para evitar a limitação do tráfego.
O recurso de Métricas do Azure Monitor do portal do Azure usa os dados nesta tabela para gerar grafos ou disparar alertas. O nome da tabela é a concatenação dessas cadeias de caracteres:
WADMetrics
- O
"scheduledTransferPeriod"
para os valores agregados armazenados na tabela P10DV2S
- Uma data, na forma AAAAMMDD, que é alterada a cada 10 dias
Os exemplos incluem WADMetricsPT1HP10DV2S20170410
e WADMetricsPT1MP10DV2S20170609
.
syslogEvents
"syslogEvents": {
"sinks": "",
"syslogEventConfiguration": {
"facilityName1": "minSeverity",
"facilityName2": "minSeverity",
...
}
}
A seção opcional syslogEvents
controla a coleta de eventos de log do syslog. Se a seção for omitida, eventos de syslog não serão capturados.
A coleção syslogEventConfiguration
tem uma entrada para cada instalação de syslog de interesse. Se minSeverity
for "NONE"
para uma instalação específica, ou se a instalação não aparecer no elemento, nenhum evento dessa instalação será capturado.
Elemento | Valor |
---|---|
coletores | Uma lista separada por vírgulas de nomes de coletores nos quais os eventos de log individuais são publicados. Todos os eventos de log correspondentes às restrições em syslogEventConfiguration são publicados em cada coletor listado. Exemplo: "EHforsyslog" |
facilityName | Um nome de instalação de syslog, como "LOG_USER" ou "LOG_LOCAL0" . Para obter mais informações, consulte Valores para instalação na página de manual do syslog. |
minSeverity | Um nível de severidade de 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 de captura eventos enviados para o recurso em ou acima do nível especificado. |
Quando você especifica syslogEvents
, o LAD sempre grava dados em uma tabela chamada LinuxSyslogVer2v0 no Armazenamento do Microsoft Azure. Os mesmos dados podem ser gravados em blobs JSON ou nos Hubs de Eventos ou em ambos. Você não pode desabilitar o armazenamento de dados em uma tabela.
sinksConfig
A seção pública opcional sinksConfig
permite o envio de métricas ao coletor do Azure Monitor, além da conta de armazenamento e da exibição Métricas de convidado padrão.
Observação
As configurações pública e protegida têm uma seção sinksConfig
opcional. A seção sinksConfig
nas configurações públicas contém somente a configuração de coletor AzMonSink
. As configurações de coletor EventHub
e JsonBlob
não podem ser incluídas nas configurações públicas.
Observação
A seção sinksConfig
requer que a identidade atribuída pelo sistema esteja habilitada no conjunto de dimensionamento de máquinas virtuais ou nas VMS.
Você pode habilitar a identidade atribuída pelo sistema por meio do portal do Azure, da CLI, do PowerShell ou do Azure Resource Manager. Siga as instruções detalhadas ou veja os exemplos de instalações anteriores neste artigo.
"sinksConfig": {
"sink": [
{
"name": "AzMonSink",
"type": "AzMonSink",
"AzureMonitor": {}
}
]
},
fileLogs
A seção fileLogs
controla a captura de arquivos de log. O LAD captura novas linhas de texto conforme elas são gravadas no arquivo. Ele as grava em linhas de tabela e em qualquer coletor especificado, como JsonBlob
e EventHub
.
Observação
Os fileLogs
são capturados por um subcomponente do LAD chamado omsagent
. Para coletar fileLogs
, verifique se o usuário omsagent
tem permissões de leitura nos arquivos que você especificar. 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 marcar permissões, execute sudo su omsagent -c 'cat /path/to/file'
.
"fileLogs": [
{
"file": "/var/log/mydaemonlog",
"table": "MyDaemonEvents",
"sinks": ""
}
]
Elemento | Valor |
---|---|
file | O caminho completo do arquivo de log a ser inspecionado e capturado. O caminho não pode especificar um diretório ou conter caracteres curinga. A conta de usuário omsagent precisa ter acesso de leitura ao caminho do arquivo. |
tabela | (Opcional) A tabela do Armazenamento do Microsoft Azure na qual novas linhas da cauda do arquivo são gravadas. A tabela precisa estar na conta de armazenamento designada, conforme especificado na configuração protegida. |
coletores | (Opcional) Uma lista separada por vírgulas de nomes de coletores adicionais para os quais as linhas de log são enviadas. |
"table"
ou "sinks"
, ou ambos, devem ser especificados.
Métricas com suporte do provedor interno
As métricas padrão a que o LAD dá suporte são agregadas em todos os sistemas de arquivos, discos ou nomes. Para métricas não agregadas, confira o suporte de métricas de coletor do Azure Monitor mais recentes.
Observação
Os nomes de exibição de cada métrica são diferentes dependendo do namespace de métricas ao qual ela pertence:
Guest (classic)
(preenchido com sua conta de armazenamento): odisplayName
especificado na seçãoperformanceCounters
ou o nome de exibição padrão, conforme visto no portal do Azure. Para a VM, em Monitoramento>de Configurações de diagnóstico, selecione a guia Métricas.azure.vm.linux.guestmetrics
(preenchido comAzMonSink
, quando configurado): o "Nome de exibição deazure.vm.linux.guestmetrics
" especificado nas seguintes tabelas.
Os valores de métrica entre as Guest (classic)
versões e azure.vm.linux.guestmetrics
diferem. Embora as métricas clássicas apliquem determinadas agregações no agente, as novas são contadores não agregados, o que oferece aos clientes a flexibilidade de agregar conforme desejado no tempo de exibição/alerta.
O provedor de métricas builtin
é uma fonte de métricas mais interessantes para um amplo conjunto de usuários. Essas métricas enquadram-se em cinco classes amplas:
- Processador
- Memória
- Rede
- Sistema de arquivos
- Disco
métricas internas para a classe Processor
A classe de métricas Processor fornece informações sobre o uso do processador na VM. Ao agregar porcentagens, o resultado é a média em todas as CPUs.
Em uma VM de duas vCPUs, se uma vCPU estiver 100% ocupada e a outra estiver 100% ociosa, o PercentIdleTime
relatado será 50. Se cada vCPU estiver 50% ocupada no mesmo período, o resultado relatado também será de 50. Em uma VM de quatro vCPUs, quando uma vCPU estiver 100% ocupada e as outras estiverem ociosas, o PercentIdleTime
relatado será 75.
Contador | Nome de exibição azure.vm.linux.guestmetrics | Significado |
---|---|---|
PercentIdleTime | cpu idle time |
Percentual de tempo durante a janela de agregação que os processadores executaram o loop ocioso do kernel |
PercentProcessorTime | cpu percentage guest os |
Percentual de tempo executando um thread não ocioso |
PercentIOWaitTime | cpu io wait time |
Percentual de tempo esperando a conclusão das operações de E/S |
PercentInterruptTime | cpu interrupt time |
Percentual de tempo executando interrupções de hardware/software e DPCs (chamadas de procedimento deferidas) |
PercentUserTime | cpu user time |
Do tempo não ocioso durante a janela de agregação, o percentual de tempo no modo de usuário em prioridade normal |
PercentNiceTime | cpu nice time |
De tempo não ocioso, a porcentagem gasta em prioridade diminuída (boa) |
PercentPrivilegedTime | cpu privileged time |
De tempo não ocioso, a porcentagem gasta em modo privilegiado (kernel) |
Os primeiros quatro contadores devem somar 100%. Os últimos três contadores também somam 100 %. Esses três contadores subdividem a soma de PercentProcessorTime
, PercentIOWaitTime
e PercentInterruptTime
.
métricas internas para a classe Memory
A classe de métricas Memory fornece informações sobre o uso de memória, paginação e troca.
Contador | Nome de exibição azure.vm.linux.guestmetrics | Significado |
---|---|---|
AvailableMemory | memory available |
Memória física disponível em MiB |
PercentAvailableMemory | mem. percent available |
Memória física disponível como um percentual da memória total |
UsedMemory | memory used |
Memória física em uso (MiB) |
PercentUsedMemory | memory percentage |
Memória física em uso como um percentual da memória total |
PagesPerSec | pages |
Paginação total (leitura/gravação) |
PagesReadPerSec | page reads |
Páginas lidas no repositório de backup, como arquivo de permuta, arquivo de programa e arquivo mapeado |
PagesWrittenPerSec | page writes |
Páginas gravadas no repositório 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 troca não usado como um percentual da troca total |
UsedSwap | swap used |
Espaço de troca em uso (MiB) |
PercentUsedSwap | swap percent used |
Espaço de troca em uso como um percentual da troca total |
Essa classe de métricas tem apenas uma instância. O atributo "condition"
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 de rede em um adaptador 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 do host.
Contador | Nome de exibição azure.vm.linux.guestmetrics | Significado |
---|---|---|
BytesTransmitted | network out guest os |
Total de bytes enviados desde a inicialização |
BytesReceived | network in guest os |
Total de bytes recebidos desde a inicialização |
BytesTotal | network total bytes |
Total de bytes enviados ou recebidos desde a inicialização |
PacketsTransmitted | packets sent |
Total de pacotes enviados desde a inicialização |
PacketsReceived | packets received |
Total de pacotes recebidos desde a inicialização |
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 a inicialização |
TotalCollisions | network collisions |
Número de colisões relatadas pelas portas de rede desde a inicialização |
Métricas internas para a classe de sistema de arquivos
A classe de métricas de sistema de arquivos fornece informações sobre o uso do sistema de arquivos. Valores absolutos e percentuais são relatados como seriam exibidos para um usuário comum, não raiz.
Contador | Nome de exibição azure.vm.linux.guestmetrics | Significado |
---|---|---|
FreeSpace | filesystem free space |
Espaço em disco disponível em bytes |
UsedSpace | filesystem used space |
Espaço em disco usado em bytes |
PercentFreeSpace | filesystem % free space |
Percentual de espaço livre |
PercentUsedSpace | filesystem % used space |
Percentual de espaço usado |
PercentFreeInodes | filesystem % free inodes |
Percentual de nós de índice (inodes) não usados |
PercentUsedInodes | filesystem % used inodes |
Percentual de inodes 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 lido ou gravados por segundo |
ReadsPerSecond | filesystem reads/sec |
Operações de leitura por segundo |
WritesPerSecond | filesystem writes/sec |
Operações de gravação por segundo |
TransfersPerSecond | 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. Essas estatísticas aplicam-se a toda a unidade.
Quando um dispositivo tem vários sistemas de arquivos, os contadores do dispositivo serão, na verdade, agregados em todos eles.
Contador | Nome de exibição azure.vm.linux.guestmetrics | Significado |
---|---|---|
ReadsPerSecond | disk reads |
Operações de leitura por segundo |
WritesPerSecond | disk writes |
Operações de gravação por segundo |
TransfersPerSecond | disk transfers |
Operações totais 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 |
AverageTransferTime | disk transfer time |
Média de segundos por operação |
AverageDiskQueueLength | disk queue length |
Número médio de operações de disco enfileiradas |
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 |
Configuração de exemplo do LAD 4.0
Com base nas definições anteriores, esta seção fornece uma configuração de exemplo da extensão do LAD 4.0 e algumas explicações. Para aplicar o exemplo, use o nome de sua conta de armazenamento, o token SAS de sua conta e os tokens de Assinatura de Acesso Compartilhado dos Hubs de Eventos.
Observação
Dependendo de você usar a CLI do Azure ou o Azure PowerShell para instalar o LAD, o método para fornecer configurações públicas e protegidas será diferente:
- Se estiver usando a CLI do Azure, salve as configurações a seguir em ProtectedSettings.json e PublicSettings.json a fim de usar com o comando de exemplo anterior.
- Se estiver usando o PowerShell, execute
$protectedSettings = '{ ... }'
e$publicSettings = '{ ... }'
para salvar as configurações para$protectedSettings
e$publicSettings
.
Configuração de configurações protegidas
As configurações protegidas definem:
- Uma conta de armazenamento.
- Um token de assinatura de acesso compartilhado da 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 configurações públicas
As configurações públicas fazem o LAD:
- Carregar as métricas de porcentagem de tempo de processador e espaço em disco usado para a tabela
WADMetrics*
. - Carregar as mensagens da instalação
"user"
do syslog e"info"
de gravidade para a tabelaLinuxSyslog*
. - Carregar as linhas acrescentadas no arquivo
/var/log/myladtestlog
para a tabelaMyLadTestLog
.
Em cada caso, os dados também são carregados para:
- Armazenamento de Blobs do Azure. O nome do contêiner é conforme definido no coletor
JsonBlob
. - Um ponto de extremidade dos Hubs de Eventos, conforme especificado no coletor
EventHub
.
{
"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 à da máquina virtual ou conjunto de dimensionamento de máquinas virtuais.
- Os gráficos e os alertas das métricas da plataforma Azure conhecem o
resourceId
da VM em que você está trabalhando. Ele espera localizar os dados de sua VM usandoresourceId
como a chave de pesquisa. - Se você usa o Dimensionamento Automático do Azure, o
resourceId
na configuração de dimensionamento automático deverá corresponder aoresourceId
usado pelo LAD. - O
resourceId
é incorporado aos nomes de blobs JSON gravados pelo LAD.
Ver seus dados
Use o Portal do Azure para exibir dados de desempenho ou definir alertas:
Os dados de performanceCounters
sempre são armazenados em uma tabela de Armazenamento do Azure. As APIs do Armazenamento do Azure estão disponíveis em várias linguagens e plataformas.
Os dados enviados para coletores JsonBlob
são armazenados nos blobs na conta de armazenamento nomeada nas Configurações protegidas. Você pode consumir os dados do blob usando qualquer API do Armazenamento de Blobs do Azure.
Você também pode usar essas ferramentas de interface do usuário para acessar os dados no Armazenamento do Azure:
- Gerenciador de Servidores do Visual Studio
- Gerenciador de Armazenamento do Azure
A captura de tela a seguir do Gerenciador de Armazenamento do Azure mostra as tabelas do Armazenamento do Azure geradas e os contêineres de uma extensão de 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 dos Hubs de Eventos, confira a Documentação dos Hubs de Eventos relevante.
Próximas etapas
- 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áquinas virtuais usando suas métricas para controlar o dimensionamento automático.