Usare l'estensione di diagnostica Linux 4.0 per monitorare metriche e log
Attenzione
Questo articolo fa riferimento a CentOS, una distribuzione Linux prossima allo stato EOL (End of Life, fine del ciclo di vita). Prendere in considerazione l'uso e il piano di conseguenza. Per altre informazioni, vedere le linee guida per la fine della vita di CentOS.
Questo articolo descrive le versioni più recenti dell'estensione diagnostica Linux (LAD).
Importante
Per informazioni sulla versione 3.x, vedere Usare l'estensione di diagnostica Linux 3.0 per monitorare metriche e log. Per informazioni sulla versione 2.3 e precedenti, vedere Monitorare le prestazioni e i dati di diagnostica di una macchina virtuale Linux.
L'estensione di diagnostica Linux consente di monitorare l'integrità di una macchina virtuale Linux in Microsoft Azure. Questo servizio offre le funzionalità seguenti:
Origine dati | Opzioni di personalizzazione | Destinazioni obbligatorie | Destinazioni facoltative |
---|---|---|---|
Metriche | Contatore, aggregazione, frequenza di campionamento, identificatori | Archiviazione tabelle di Azure | EventHub, Archiviazione BLOB di Azure (formato JSON), Monitoraggio di Azure (novità in LAD 4.0) |
syslog | Struttura, livello di gravità | Archiviazione tabelle di Azure | EventHub, Archiviazione BLOB di Azure (formato JSON) |
File | Percorso log, tabella di destinazione | Archiviazione tabelle di Azure | EventHub, Archiviazione BLOB di Azure (formato JSON) |
Questa estensione funziona con entrambi i modelli di distribuzione di Azure: Azure Resource Manager e versione classica.
Prerequisiti
- Agente Linux di Azure versione 2.2.0 o successiva. La maggior parte delle immagini della raccolta Linux di macchine virtuali di Azure include la versione 2.2.7 o successive. Eseguire
/usr/sbin/waagent -version
per verificare la versione installata nella macchina virtuale. Se la macchina virtuale esegue una versione precedente dell'agente guest, aggiornare l'agente Linux. - Interfaccia della riga di comando di Azure. Configurare l'ambiente dell'interfaccia della riga di comando di Azure nella macchina virtuale.
- Comando
wget
. Se non è già disponibile, installarlo usando la gestione pacchetti corrispondente. - Una sottoscrizione di Azure e un account di archiviazione per utilizzo generico per archiviare i dati. Gli account di archiviazione per utilizzo generico supportano l'archiviazione tabelle, necessaria. Un account di archiviazione BLOB non funziona.
- Python 2.
Distribuzioni Linux supportate
Vedere Sistemi operativi dell'agente supportati.
Requisito di Python
L'estensione di diagnostica Linux richiede Python 2. Se la macchina virtuale usa una distribuzione che non include Python 2, installarla.
Nota
Attualmente si prevede di convergere tutte le versioni di Linux Diagnostic Extensions (LAD) con il nuovo agente di monitoraggio di Azure, che supporta già Python 3. Il LAD sarà pianificato per la deprecazione dell'annuncio e dell'approvazione in sospeso.
Per installare Python 2, eseguire uno dei comandi di esempio seguenti:
- Red Hat, CentOS, Oracle:
yum install -y python2
- Ubuntu, Debian:
apt-get install -y python2
- SUSE:
zypper install -y python2
Il python2
file eseguibile deve essere sottoposto a alias a python
.
Eseguire il comando seguente per rimuovere eventuali alias esistenti.
sudo update-alternatives --remove-all python
Eseguire il comando seguente per creare il nuovo alias.
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
Installare l'estensione
È possibile abilitare questa estensione per la macchina virtuale e il set di scalabilità di macchine virtuali usando i cmdlet di Azure PowerShell, gli script dell'interfaccia della riga di comando di Azure, i modelli di Azure Resource Manager (modelli arm) o il portale di Azure. Per altre informazioni, vedere Estensioni e funzionalità delle macchine virtuali per Linux.
Nota
Alcuni componenti dell'estensione vm di diagnostica Linux vengono forniti anche nell'estensione vm di Log Analytics. I conflitti possono verificarsi se entrambe le estensioni vengono create nello stesso modello di Resource Manager.
Per evitare conflitti in fase di installazione, usare la dependsOn
direttiva per installare le estensioni in sequenza. Le estensioni possono essere installate in entrambi gli ordini.
Usare le istruzioni di installazione e una configurazione di esempio scaricabile per configurare LAD 4.0 per:
- Acquisire e archiviare le stesse metriche fornite da LAD versioni 2.3 e 3.x.
- Inviare le metriche al sink di Monitoraggio di Azure insieme al normale sink per Archiviazione di Azure. Questa funzionalità è una novità di LAD 4.0.
- Acquisire un set utile di metriche del file system, come in LAD 3.0.
- Acquisire la raccolta syslog predefinita abilitata da LAD 2.3.
- Abilitare l'esperienza di portale di Azure per creare grafici e avvisi sulle metriche delle macchine virtuali.
La configurazione scaricabile è solo un esempio. Modificarlo in base alle proprie esigenze.
Installazione
È possibile installare e configurare LAD 4.0 nell'interfaccia della riga di comando di Azure o in Azure PowerShell.
Se le impostazioni protette si trovano nel file Protected Impostazioni.json e le informazioni di configurazione pubbliche sono in Public Impostazioni.json, eseguire questo 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
Il comando presuppone che si stia usando la modalità Gestione risorse di Azure dell'interfaccia della riga di comando di Azure. Per configurare LAD per le macchine virtuali del modello di distribuzione classica, passare alla modalità di gestione dei servizi (azure config mode asm
) e omettere il nome del gruppo di risorse nel comando .
Per altre informazioni, vedere la documentazione sull'interfaccia della riga di comando multipiattaforma.
Abilitare l'aggiornamento automatico
Per abilitare l'aggiornamento automatico dell'agente, è consigliabile abilitare la funzionalità aggiornamento automatico dell'estensione:
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
Installazione di esempio
In questi esempi, la configurazione di esempio raccoglie un set di dati standard e li invia all'archiviazione tabelle. L'URL per la configurazione di esempio e il relativo contenuto possono cambiare.
Nota
Per gli esempi seguenti, compilare i valori appropriati per le variabili nella prima sezione prima di eseguire il codice.
Nella maggior parte dei casi, è necessario scaricare una copia del file JSON delle impostazioni del portale e personalizzarla in base alle esigenze. Usare i modelli o la propria automazione per usare una versione personalizzata del file di configurazione anziché scaricarla dall'URL ogni volta.
Quando si abilita il nuovo sink di Monitoraggio di Azure, le macchine virtuali devono avere l'identità assegnata dal sistema abilitata per generare token di autenticazione msi (Managed Service Identity). È possibile aggiungere queste impostazioni durante o dopo la creazione della macchina virtuale. Per istruzioni sulla portale di Azure, l'interfaccia della riga di comando di Azure, PowerShell e Azure Resource Manager, vedere Configurare le identità gestite.
Esempio di installazione - Interfaccia della riga di comando di 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
Esempio di installazione per set di scalabilità di macchine virtuali - Interfaccia della riga di comando di 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
Aggiornare le impostazioni dell'estensione
Dopo aver modificato le impostazioni protette o pubbliche, eseguire lo stesso comando per distribuirle nella macchina virtuale. Se sono state modificate impostazioni, gli aggiornamenti vengono inviati all'estensione. LAD ricarica la configurazione e si riavvia.
Eseguire la migrazione dalle versioni precedenti dell'estensione
La versione più recente dell'estensione è 4.0, attualmente disponibile in anteprima pubblica. Le versioni precedenti di 3.x sono ancora supportate. Le versioni 2.x sono deprecate dal 31 luglio 2018.
Importante
Per eseguire la migrazione dalla versione 3.x alla versione più recente dell'estensione, disinstallare l'estensione precedente. Installare quindi la versione 4, che include la configurazione aggiornata per l'identità assegnata dal sistema e i sink per l'invio di metriche al sink di Monitoraggio di Azure.
Quando si installa la nuova estensione, abilitare gli aggiornamenti automatici delle versioni secondarie:
- Nelle macchine virtuali del modello di distribuzione di Azure Resource Manager includere
"autoUpgradeMinorVersion": true
nel modello di distribuzione della macchina virtuale. - Nelle macchine virtuali del modello di distribuzione classica specificare la versione
4.*
se si installa l'estensione tramite l'interfaccia della riga di comando di Azure o PowerShell.
È possibile usare lo stesso account di archiviazione usato per LAD 3.x.
Impostazioni protette
Questo set di informazioni di configurazione contiene informazioni riservate che devono essere protette dalla visualizzazione pubblica. Contiene, ad esempio, le credenziali di archiviazione. Le impostazioni vengono trasmesse all'estensione, che le archivia in formato crittografato.
{
"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 | Valore |
---|---|
storageAccountName | Nome dell'account di archiviazione in cui l'estensione scrive i dati. |
storageAccountEndPoint | (Facoltativo) Endpoint che identifica il cloud in cui è presente l'account di archiviazione. Se questa impostazione è assente, per impostazione predefinita, LAD usa il cloud pubblico di Azure, https://core.windows.net . Per usare un account di archiviazione in Azure Germania, Azure per enti pubblici o Microsoft Azure gestito da 21Vianet, impostare questo valore come richiesto. |
storageAccountSasToken | Token di firma di accesso condiviso dell'account per i servizi BLOB e tabelle (ss='bt' ). Questo token si applica a contenitori e oggetti (srt='co' ). Concede autorizzazioni di aggiunta, creazione, elenco, aggiornamento e scrittura (sp='acluw' ). Non includere il punto interrogativo (?) principale. |
mdsdHttpProxy | (Facoltativo) Informazioni sul proxy HTTP che l'estensione deve connettersi all'account di archiviazione e all'endpoint specificati. |
sinksConfig | (Facoltativo) Dettagli delle destinazioni alternative a cui è possibile recapitare metriche ed eventi. Le sezioni seguenti forniscono informazioni dettagliate su ogni sink di dati supportato dall'estensione. |
Per ottenere un token di firma di accesso condiviso all'interno di un modello di Resource Manager, usare la listAccountSas
funzione . Per un modello di esempio, vedere l'esempio di funzione list.
È possibile costruire il token di firma di accesso condiviso richiesto tramite il portale di Azure:
- Selezionare l'account di archiviazione per utilizzo generico in cui si vuole scrivere l'estensione.
- Nel menu a sinistra, in Sicurezza e rete selezionare Firma di accesso condiviso.
- Effettuare le selezioni come descritto in precedenza.
- Selezionare Genera firma di accesso condiviso e stringa di connessione.
Copiare la firma di accesso condiviso generata nel storageAccountSasToken
campo . Rimuovere il punto interrogativo iniziale (?).
sinksConfig
Nota
Le impostazioni pubbliche e protette hanno una sezione facoltativa sinksConfig
. La sinksConfig
sezione nelle impostazioni protette contiene EventHub
solo configurazioni di sink e JsonBlob
a causa dell'inclusione di segreti come sasURL
s. AzMonSink
Le configurazioni sink non possono essere incluse nelle impostazioni protette.
"sinksConfig": {
"sink": [
{
"name": "sinkname",
"type": "sinktype",
...
},
...
]
},
La sinksConfig
sezione facoltativa definisce più destinazioni a cui l'estensione invia informazioni raccolte. La "sink"
matrice contiene un oggetto per ogni sink di dati aggiuntivo. L'attributo "type"
determina gli altri attributi nell'oggetto .
Elemento | valore |
---|---|
name | Una stringa usata per fare riferimento a questo sink altrove nella configurazione dell'estensione. |
type | Il tipo di sink da definire. Determina gli altri valori, se presenti, in istanze di questo tipo. |
L'estensione di diagnostica Linux 4.0 supporta due tipi di sink protetti: EventHub
e JsonBlob
.
Sink di EventHub
"sink": [
{
"name": "sinkname",
"type": "EventHub",
"sasURL": "https SAS URL"
},
...
]
La "sasURL"
voce contiene l'URL completo, incluso il token di firma di accesso condiviso, per l'hub eventi in cui devono essere pubblicati i dati. LAD richiede una firma di accesso condiviso per denominare un criterio che abilita l'attestazione di invio. Ecco un esempio:
- Creare uno spazio dei nomi di Hub eventi denominato
contosohub
. - Creare un hub eventi nello spazio dei nomi denominato
syslogmsgs
. - Creare un criterio di accesso condiviso nell'hub eventi denominato
writer
che abilita l'attestazione di invio.
Se si crea una firma di accesso condiviso valida fino alla mezzanotte UTC del 1° gennaio 2018, il sasURL
valore potrebbe essere simile all'esempio seguente.
https://contosohub.servicebus.windows.net/syslogmsgs?sr=contosohub.servicebus.windows.net%2fsyslogmsgs&sig=xxxxxxxxxxxxxxxxxxxxxxxxx&se=1514764800&skn=writer
Per altre informazioni sulla generazione e il recupero di informazioni sui token di firma di accesso condiviso per Hub eventi, vedere Generare un token di firma di accesso condiviso.
Sink JsonBlob
"sink": [
{
"name": "sinkname",
"type": "JsonBlob"
},
...
]
I dati indirizzati a un JsonBlob
sink vengono archiviati in BLOB in Archiviazione di Azure. Ogni istanza di LAD crea un BLOB all'ora per ogni nome di sink. Ogni BLOB contiene sempre una matrice JSON sintatticamente valida di oggetti. Le nuove voci vengono aggiunte in modo atomico alla matrice.
I BLOB vengono archiviati in un contenitore con lo stesso nome del sink. Le regole di Archiviazione di Azure per i nomi dei contenitori BLOB si applicano ai nomi dei JsonBlob
sink. I nomi devono avere una lunghezza compresa tra 3 e 63 caratteri alfanumerici alfanumerici o trattini.
Impostazioni pubbliche
La struttura delle impostazioni pubbliche contiene vari blocchi di impostazioni che controllano le informazioni raccolte dall'estensione. Ogni impostazione, ad eccezione ladCfg
di , è facoltativa. Se si specifica la raccolta di metriche o syslog in ladCfg
, è necessario specificare StorageAccount
anche . È necessario specificare l'elemento sinksConfig
per abilitare il sink di Monitoraggio di Azure per le metriche da LAD 4.0.
{
"ladCfg": { ... },
"fileLogs": { ... },
"StorageAccount": "the storage account to receive data",
"sinksConfig": { ... },
"mdsdHttpProxy" : ""
}
Elemento | Valore |
---|---|
StorageAccount | Nome dell'account di archiviazione in cui l'estensione scrive i dati. Deve essere il nome specificato nelle impostazioni protette. |
mdsdHttpProxy | (Facoltativo) Proxy specificato nelle impostazioni protette. Se il valore privato è impostato, esegue l'override del valore pubblico. Inserire le impostazioni proxy che contengono un segreto, ad esempio una password, nelle impostazioni protette. |
Le sezioni seguenti forniscono informazioni dettagliate sugli elementi rimanenti.
ladCfg
"ladCfg": {
"diagnosticMonitorConfiguration": {
"eventVolume": "Medium",
"metrics": { ... },
"performanceCounters": { ... },
"syslogEvents": { ... }
},
"sampleRateInSeconds": 15
}
La ladCfg
struttura controlla la raccolta di metriche e log per il recapito al servizio Metriche di Monitoraggio di Azure e ad altri sink di dati. performanceCounters
Specificare o syslogEvents
o entrambi. Specificare anche la metrics
struttura.
Se non si vuole abilitare la raccolta di metriche o syslog, specificare una struttura vuota per l'elemento ladCfg
:
"ladCfg": {
"diagnosticMonitorConfiguration": {}
}
Elemento | Valore |
---|---|
eventVolume | (Facoltativo) Controlla il numero di partizioni create all'interno della tabella di archiviazione. Il valore deve essere "Large" , "Medium" o "Small" . Il valore predefinito è "Medium" . |
sampleRateInSeconds | (Facoltativo) Intervallo predefinito tra la raccolta di metriche non elaborate, ovvero non raggruppate. La frequenza di esempio più piccola supportata è 15 secondi. Il valore predefinito è 15 . |
Metriche
"metrics": {
"resourceId": "/subscriptions/...",
"metricAggregation" : [
{ "scheduledTransferPeriod" : "PT1H" },
{ "scheduledTransferPeriod" : "PT5M" }
]
}
Elemento | Valore |
---|---|
resourceId | ID risorsa di Azure Resource Manager della macchina virtuale o del set di scalabilità di macchine virtuali a cui appartiene la macchina virtuale. Specificare anche questa impostazione se la configurazione usa un JsonBlob sink. |
scheduledTransferPeriod | Frequenza con cui vengono calcolate e trasferite le metriche di aggregazione alle metriche di Monitoraggio di Azure. La frequenza viene espressa come intervallo di tempo IS 8601. Il periodo di trasferimento più piccolo è 60 secondi, ovvero PT1M. Specificare almeno un scheduledTransferPeriod oggetto . |
I campioni delle metriche specificate nella performanceCounters
sezione vengono raccolti ogni 15 secondi o alla frequenza di campionamento definita in modo esplicito per il contatore. Se vengono visualizzate più scheduledTransferPeriod
frequenze, come nell'esempio, ogni aggregazione viene calcolata in modo indipendente.
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"
}
]
}
]
}
La performanceCounters
sezione facoltativa controlla la raccolta di metriche. Gli esempi non elaborati vengono aggregati per ogni scheduledTransferPeriod al fine di produrre questi valori:
- Media
- Minimo
- Massimo
- Ultimo valore raccolto
- Numero di campioni non elaborati usati per calcolare l'aggregazione
Elemento | Valore |
---|---|
sinks | (Facoltativo) Elenco delimitato da virgole di nomi di sink a cui LAD invia i risultati aggregati delle metriche. Tutte le metriche aggregate vengono pubblicate in ogni sink elencato. Ad esempio: "MyEventHubSink, MyJsonSink, MyAzMonSink" . Per altre informazioni, vedere sinksConfig (impostazioni protette) e sinksConfig (impostazioni pubbliche). |
type | Identifica il provider effettivo della metrica. |
class | Insieme a "counter" , identifica la metrica specifica all'interno dello spazio dei nomi del provider. |
counter | Insieme a "class" , identifica la metrica specifica all'interno dello spazio dei nomi del provider. Vedere un elenco dei contatori disponibili. |
counterSpecifier | Identifica la metrica all'interno dello spazio dei nomi metriche di Monitoraggio di Azure. |
condizione | (Facoltativo) Seleziona un'istanza dell'oggetto a cui si applica la metrica. In alternativa, seleziona l'aggregazione in tutte le istanze di tale oggetto. |
sampleRate | Intervallo IS 8601 che imposta la frequenza di raccolta dei campioni non elaborati per questa metrica. Se il valore non è impostato, il valore di imposta l'intervallo di sampleRateInSeconds raccolta. La frequenza di esempio più piccola supportata è 15 secondi (PT15S). |
unitàà | Definisce l'unità per la metrica. Deve essere una delle stringhe seguenti: "Count" , "Bytes" , "Seconds" , "Percent" "CountPerSecond" , "BytesPerSecond" "Millisecond" . Gli utenti dei dati raccolti prevedono che i valori dei dati raccolti corrispondano a questa unità. LAD ignora questo campo. |
displayName | Etichetta da associare ai dati nelle metriche di Monitoraggio di Azure durante la visualizzazione nello spazio dei Guest (classic) nomi delle metriche. Questa etichetta si trova nella lingua specificata dall'impostazione delle impostazioni locali associata. LAD ignora questo campo. Nota: se si visualizza la stessa metrica nello spazio dei azure.vm.linux.guestmetrics nomi delle metriche, disponibile se AzMonSink è configurato, il nome visualizzato dipende interamente dal contatore. Per trovare il mapping tra contatori e nomi, vedere Metriche supportate dal provider builtin. |
counterSpecifier
è un identificatore arbitrario. I consumer di metriche, ad esempio la funzionalità di creazione di grafici e avvisi portale di Azure, usano counterSpecifier
come chiave che identifica una metrica o un'istanza di una metrica.
Per builtin
le metriche, è consigliabile counterSpecifier
usare i valori che iniziano con /builtin/
. Per raccogliere un'istanza specifica di una metrica, allegare l'identificatore dell'istanza al counterSpecifier
valore . Di seguito sono riportati alcuni esempi.
/builtin/Processor/PercentIdleTime
. Tempo di inattività medio tra tutte le vCPU/builtin/Disk/FreeSpace(/mnt)
. Spazio disponibile per il/mnt
file system/builtin/Disk/FreeSpace
. Spazio disponibile medio in tutti i file system montati
LAD e il portale di Azure non prevedono che il counterSpecifier
valore corrisponda ad alcun modello. Essere coerenti nel modo in cui si creano counterSpecifier
valori.
Quando si specifica performanceCounters
, LAD scrive sempre i dati in una tabella in Archiviazione di Azure. Gli stessi dati possono essere scritti in BLOB JSON o in Hub eventi o in entrambi. Non è possibile disabilitare l'archiviazione dei dati in una tabella.
Tutte le istanze di LAD che usano lo stesso nome e endpoint dell'account di archiviazione aggiungono le metriche e i log alla stessa tabella. Se troppe macchine virtuali scrivono nella stessa partizione di tabella, Azure può limitare le scritture in tale partizione.
L'impostazione eventVolume
fa sì che le voci vengano distribuite tra 1 (piccolo), 10 (medio) o 100 (grandi) partizioni. In genere, le partizioni medie sono sufficienti per evitare la limitazione del traffico.
La funzionalità Metriche di Monitoraggio di Azure del portale di Azure usa i dati in questa tabella per produrre grafici o attivare avvisi. Il nome della tabella è la concatenazione delle stringhe seguenti:
WADMetrics
- Oggetto
"scheduledTransferPeriod"
per i valori aggregati archiviati nella tabella P10DV2S
- Una data, nel formato AAAAMMGG, che cambia ogni 10 giorni
Gli esempi includono WADMetricsPT1HP10DV2S20170410
e WADMetricsPT1MP10DV2S20170609
.
syslogEvents
"syslogEvents": {
"sinks": "",
"syslogEventConfiguration": {
"facilityName1": "minSeverity",
"facilityName2": "minSeverity",
...
}
}
La syslogEvents
sezione facoltativa controlla la raccolta di eventi di log da syslog. Se la sezione viene omessa, gli eventi syslog non vengono acquisiti affatto.
La syslogEventConfiguration
raccolta include una voce per ogni struttura syslog di interesse. Se minSeverity
si tratta "NONE"
di una particolare struttura o se tale struttura non viene visualizzata nell'elemento, non viene acquisito alcun evento da tale struttura.
Elemento | Valore |
---|---|
sinks | Un elenco delimitato da virgole di nomi di sink in cui vengono pubblicati i singoli eventi del registro. Tutti gli eventi di log che corrispondono alle restrizioni in vengono pubblicati in syslogEventConfiguration ogni sink elencato. Esempio: "EHforsyslog" |
facilityName | Nome della struttura syslog, ad esempio "LOG_USER" o "LOG_LOCAL0" . Per altre informazioni, vedere Valori per la funzionalità nella pagina manuale di syslog. |
minSeverity | Livello di gravità syslog, ad esempio "LOG_ERR" o "LOG_INFO" . Per altre informazioni, vedere Valori per il livello nella pagina manuale di syslog. L'estensione acquisisce gli eventi inviati all'impianto con livello superiore o uguale a quello specificato. |
Quando si specifica syslogEvents
, LAD scrive sempre i dati in una tabella in Archiviazione di Azure. Gli stessi dati possono essere scritti in BLOB JSON o in Hub eventi o in entrambi. Non è possibile disabilitare l'archiviazione dei dati in una tabella.
Il comportamento del partizionamento per questa tabella è identico a quello descritto per performanceCounters
. Il nome della tabella è la concatenazione delle stringhe seguenti:
LinuxSyslog
- Una data, nel formato AAAAMMGG, che cambia ogni 10 giorni
Gli esempi includono LinuxSyslog20170410
e LinuxSyslog20170609
.
sinksConfig
La sezione pubblica sinksConfig
facoltativa consente di inviare metriche al sink di Monitoraggio di Azure oltre all'account Archiviazione e alla visualizzazione metriche guest predefinita.
Nota
Le impostazioni pubbliche e protette hanno una sezione facoltativa sinksConfig
. La sinksConfig
sezione nelle impostazioni pubbliche contiene solo la configurazione del AzMonSink
sink. EventHub
Le configurazioni di sink e JsonBlob
sink non possono essere incluse nelle impostazioni pubbliche.
Nota
La sinksConfig
sezione richiede l'abilitazione dell'identità assegnata dal sistema nelle macchine virtuali o nel set di scalabilità di macchine virtuali.
È possibile abilitare l'identità assegnata dal sistema tramite il portale di Azure, l'interfaccia della riga di comando, PowerShell o Azure Resource Manager. Seguire le istruzioni dettagliate o vedere gli esempi di installazioni precedenti in questo articolo.
"sinksConfig": {
"sink": [
{
"name": "AzMonSink",
"type": "AzMonSink",
"AzureMonitor": {}
}
]
},
fileLogs
La fileLogs
sezione controlla l'acquisizione dei file di log. LAD acquisisce nuove righe di testo mentre vengono scritte nel file. Le scrive in righe di tabella e in tutti i sink specificati, ad esempio JsonBlob
e EventHub
.
Nota
L'oggetto fileLogs
viene acquisito da un sottocomponente di LAD denominato omsagent
. Per raccogliere fileLogs
, assicurarsi che l'utente omsagent
disponga delle autorizzazioni di lettura per i file specificati. Deve inoltre disporre delle autorizzazioni di esecuzione per tutte le directory nel percorso del file. Dopo aver installato LAD, per controllare le autorizzazioni, eseguire sudo su omsagent -c 'cat /path/to/file'
.
"fileLogs": [
{
"file": "/var/log/mydaemonlog",
"table": "MyDaemonEvents",
"sinks": ""
}
]
Elemento | Valore |
---|---|
file | Percorso completo del file di log da controllare e acquisire. Il percorso non può specificare una directory o contenere caratteri jolly. L'account omsagent utente deve avere accesso in lettura al percorso del file. |
table | (Facoltativo) Tabella Archiviazione di Azure in cui vengono scritte nuove righe dalla parte finale del file. La tabella deve trovarsi nell'account di archiviazione designato, come specificato nella configurazione protetta. |
sinks | (Facoltativo) Elenco delimitato da virgole di nomi di più sink a cui vengono inviate le righe di log. |
È "table"
necessario specificare o "sinks"
entrambi.
Metriche supportate dal provider Builtin
Le metriche predefinite supportate da LAD vengono aggregate in tutti i file system, i dischi o i nomi. Per le metriche non aggregate, vedere il supporto delle metriche sink di Monitoraggio di Azure più recente.
Nota
I nomi visualizzati per ogni metrica variano a seconda dello spazio dei nomi delle metriche a cui appartiene:
Guest (classic)
popolato dall'account di archiviazione: specificatodisplayName
nellaperformanceCounters
sezione o il nome visualizzato predefinito, come illustrato nel portale di Azure. Per la macchina virtuale, in Monitoraggio>delle impostazioni di diagnostica selezionare la scheda Metriche.azure.vm.linux.guestmetrics
popolato daAzMonSink
, se configurato: il "azure.vm.linux.guestmetrics
Nome visualizzato" specificato nelle tabelle seguenti.
I valori delle metriche tra Guest (classic)
e azure.vm.linux.guestmetrics
versioni differiscono. Mentre le metriche classiche avevano determinate aggregazioni applicate nell'agente, le nuove metriche non sono contatori aggregati, offrendo ai clienti la flessibilità di aggregarsi in base alle esigenze in fase di visualizzazione/avviso.
Il builtin
provider di metriche è una fonte di metriche che sono le più interessanti per un ampio set di utenti. Queste metriche sono suddivise in cinque grandi categorie:
- Processore
- Memoria
- Network
- File system
- Disco
Metriche Builtin per la classe Processore
La classe di metriche Processore offre informazioni sull'uso del processore nella macchina virtuale. Quando le percentuali vengono aggregate, il risultato è la media tra tutte le CPU.
In una macchina virtuale a due vCPU, se una vCPU è 100% occupata e l'altra è 100% inattiva, il segnalato PercentIdleTime
è 50. Se ogni vCPU è occupato per il 50% per lo stesso periodo, anche il risultato segnalato è 50. In una macchina virtuale a quattro vCPU, quando una vCPU è 100% occupata e le altre sono inattive, il segnalato PercentIdleTime
è 75.
Contatore | nome visualizzato azure.vm.linux.guestmetrics | Significato |
---|---|---|
PercentIdleTime | cpu idle time |
Percentuale di tempo durante la finestra di aggregazione in cui i processori hanno eseguito il ciclo di inattività del kernel |
PercentProcessorTime | cpu percentage guest os |
Percentuale di tempo durante l'esecuzione di un thread non inattiva |
PercentIOWaitTime | cpu io wait time |
Percentuale di tempo in attesa del completamento delle operazioni di I/O |
PercentInterruptTime | cpu interrupt time |
Percentuale di interruzioni hardware o software in esecuzione e chiamate di procedure posticipate |
PercentUserTime | cpu user time |
Di tempo di inattività durante la finestra di aggregazione, percentuale di tempo trascorso in modalità utente con priorità normale |
PercentNiceTime | cpu nice time |
Di tempo di inattività, la percentuale trascorsa a bassa priorità (bello) |
PercentPrivilegedTime | cpu privileged time |
Tempo di inattività, percentuale impiegato in modalità con privilegi (kernel) |
I primi quattro contatori devono sommare al 100%. Gli ultimi tre contatori sommano anche al 100%. Questi tre contatori suddividono la somma di PercentProcessorTime
, PercentIOWaitTime
e PercentInterruptTime
.
Metriche Builtin per la classe Memoria
La classe Memory delle metriche fornisce informazioni sull'uso della memoria, il paging e lo scambio.
Contatore | nome visualizzato azure.vm.linux.guestmetrics | Significato |
---|---|---|
AvailableMemory | memory available |
Memoria fisica disponibile in MiB |
PercentAvailableMemory | mem. percent available |
Memoria fisica disponibile come percentuale della memoria totale |
UsedMemory | memory used |
Memoria fisica in uso (MiB) |
PercentUsedMemory | memory percentage |
Memoria fisica in uso come percentuale della memoria totale |
PagesPerSec | pages |
Paging totale (lettura/scrittura) |
PagesReadPerSec | page reads |
Pagine lette dall'archivio di backup, ad esempio file di scambio, file di programma e file mappato |
PagesWrittenPerSec | page writes |
Pagine scritte nell'archivio di backup, ad esempio il file di scambio e il file mappato |
AvailableSwap | swap available |
Spazio di swapping inutilizzato (MiB) |
PercentAvailableSwap | swap percent available |
Spazio di scambio inutilizzato come percentuale dello scambio totale |
UsedSwap | swap used |
Spazio di swapping in uso (MiB) |
PercentUsedSwap | swap percent used |
Spazio di scambio in uso come percentuale dello scambio totale |
Questa classe di metriche ha una sola istanza. L'attributo "condition"
non ha impostazioni utili e deve essere omesso.
Metriche Builtin per la classe Rete
La classe Network di metriche fornisce informazioni sull'attività di rete in una singola interfaccia di rete dall'avvio.
LAD non espone le metriche della larghezza di banda. È possibile ottenere queste metriche dalle metriche host.
Contatore | nome visualizzato azure.vm.linux.guestmetrics | Significato |
---|---|---|
BytesTransmitted | network out guest os |
Totale byte inviati dall'avvio |
BytesReceived | network in guest os |
Totale byte ricevuti dall'avvio |
BytesTotal | network total bytes |
Totale byte inviati o ricevuti dall'avvio |
PacketsTransmitted | packets sent |
Totale pacchetti inviati dall'avvio |
PacketsReceived | packets received |
Totale pacchetti ricevuti dall'avvio |
TotalRxErrors | packets received errors |
Numero di errori di ricezione dall'avvio |
TotalTxErrors | packets sent errors |
Numero di errori di trasmissione dall'avvio |
TotalCollisions | network collisions |
Numero di collisioni segnalate dalle porte di rete dall'avvio |
Metriche predefinite per la classe File system
La classe File system di metriche fornisce informazioni sull'utilizzo del file system. I valori assoluti e percentuali vengono segnalati come verrebbero visualizzati a un utente ordinario, non alla radice.
Contatore | nome visualizzato azure.vm.linux.guestmetrics | Significato |
---|---|---|
FreeSpace | filesystem free space |
Spazio disponibile su disco in byte |
UsedSpace | filesystem used space |
Spazio su disco usato in byte |
PercentFreeSpace | filesystem % free space |
Percentuale di spazio disponibile |
PercentUsedSpace | filesystem % used space |
Percentuale di spazio usato |
PercentFreeInodes | filesystem % free inodes |
Percentuale di nodi di indice inutilizzati (inodes) |
PercentUsedInodes | filesystem % used inodes |
Percentuale di inodi allocati (in uso) sommati in tutti i file system |
BytesReadPerSecond | filesystem read bytes/sec |
Byte letti per secondo |
BytesWrittenPerSecond | filesystem write bytes/sec |
Byte scritti per secondo |
Byte al secondo | filesystem bytes/sec |
Byte letti o scritti per secondo |
ReadsPerSecond | filesystem reads/sec |
Operazioni di lettura per secondo |
WritesPerSecond | filesystem writes/sec |
Operazioni di scrittura per secondo |
TransfersPerSecond | filesystem transfers/sec |
Operazioni di lettura o scrittura per secondo |
Metriche Builtin per la classe Disco
La classe di metriche Disco contiene informazioni sull'uso del dispositivo del disco. Queste statistiche si applicano all'intera unità.
Quando un dispositivo ha più file system, i contatori per tale dispositivo sono aggregati in modo efficace in tutti i file system.
Contatore | nome visualizzato azure.vm.linux.guestmetrics | Significato |
---|---|---|
ReadsPerSecond | disk reads |
Operazioni di lettura per secondo |
WritesPerSecond | disk writes |
Operazioni di scrittura per secondo |
TransfersPerSecond | disk transfers |
Operazioni totali per secondo |
AverageReadTime | disk read time |
Media di secondi per operazione di lettura |
AverageWriteTime | disk write time |
Media di secondi per operazione di scrittura |
AverageTransferTime | disk transfer time |
Media di secondi per operazione |
AverageDiskQueueLength | disk queue length |
Media delle operazioni del disco in coda |
ReadBytesPerSecond | disk read guest os |
Numero di byte letti al secondo |
WriteBytesPerSecond | disk write guest os |
Numero di byte scritti al secondo |
Byte al secondo | disk total bytes |
Numero di byte letti o scritti al secondo |
Configurazione LAD 4.0 di esempio
In base alle definizioni precedenti, questa sezione fornisce una configurazione dell'estensione LAD 4.0 di esempio e una spiegazione. Per applicare questo esempio, usare il proprio nome dell'account di archiviazione, il token di firma di accesso condiviso dell'account e i token di firma di accesso condiviso di Hub eventi.
Nota
A seconda che si usi l'interfaccia della riga di comando di Azure o Azure PowerShell per installare LAD, il metodo per fornire impostazioni pubbliche e protette differisce:
- Se si usa l'interfaccia della riga di comando di Azure, salvare le impostazioni seguenti in Protected Impostazioni.json e Public Impostazioni.json per usare il comando di esempio precedente.
- Se si usa PowerShell, eseguire
$protectedSettings = '{ ... }'
e$publicSettings = '{ ... }'
salvare le impostazioni seguenti in$protectedSettings
e$publicSettings
.
Configurazione delle impostazioni protette
Le impostazioni protette configurano:
- Un account di archiviazione.
- Token di firma di accesso condiviso dell'account corrispondente.
- Diversi sink:
JsonBlob
oEventHub
con token di firma di accesso condiviso.
{
"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"
}
]
}
}
Configurazione delle impostazioni pubbliche
Le impostazioni pubbliche causano la lad:
- Caricare le metriche in percentuale del tempo del processore e le metriche dello spazio su disco usato nella
WADMetrics*
tabella. - Caricare messaggi dalla struttura
"user"
syslog e dalla gravità"info"
nellaLinuxSyslog*
tabella. - Caricare righe accodate nel file
/var/log/myladtestlog
nellaMyLadTestLog
tabella.
In ogni caso, i dati vengono anche caricati:
- Archiviazione BLOB di Azure. Il nome del
JsonBlob
contenitore è definito nel sink. - Endpoint di Hub eventi, come specificato nel
EventHub
sink.
{
"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"
}
]
}
La resourceId
classe nella configurazione deve corrispondere a quella della macchina virtuale o del set di scalabilità di macchine virtuali.
- I grafici e gli avvisi della piattaforma Azure conoscono la
resourceId
macchina virtuale su cui si sta lavorando. Si prevede di trovare i dati per la macchina virtuale usando comeresourceId
chiave di ricerca. - Se si usa la scalabilità automatica di Azure,
resourceId
nella configurazione di scalabilità automatica deve corrispondere a quellaresourceId
usata da LAD. resourceId
è integrato nei nomi dei BLOB JSON scritti da LAD.
Visualizzare i dati
Usare il portale di Azure per visualizzare i dati sulle prestazioni o impostare gli avvisi:
I performanceCounters
dati vengono sempre archiviati in una tabella Archiviazione di Azure. Le API di Archiviazione di Azure sono disponibili per più linguaggi e piattaforme.
I dati inviati ai JsonBlob
sink vengono archiviati in BLOB nell'account di archiviazione denominato nelle impostazioni protette. È possibile usare i dati BLOB in qualsiasi API Archiviazione BLOB di Azure.
È anche possibile usare questi strumenti dell'interfaccia utente per accedere ai dati in Archiviazione di Azure:
- Esplora server di Visual Studio.
- Azure Storage Explorer
Lo screenshot seguente di una sessione di Archiviazione di Azure Explorer mostra le tabelle e i contenitori Archiviazione di Azure generati da un'estensione LAD 4.0 configurata correttamente in una macchina virtuale di test. L'immagine non corrisponde esattamente alla configurazione di LAD 4.0 di esempio.
Per altre informazioni su come usare i messaggi pubblicati in un endpoint di Hub eventi, vedere la documentazione di Hub eventi pertinente.
Passaggi successivi
- In Monitoraggio di Azure creare avvisi per le metriche raccolte.
- Creare grafici di monitoraggio per le metriche.
- Creare un set di scalabilità di macchine virtuali usando le metriche per controllare la scalabilità automatica.