Använda Linux-diagnostiktillägg 3.0 för att övervaka mått och loggar
Varning
Den här artikeln refererar till CentOS, en Linux-distribution som har statusen End Of Life (EOL). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledningen.
Det här dokumentet beskriver version 3.0 och senare av Linux-diagnostiktillägget (LAD).
Viktigt!
Information om version 2.3 och tidigare finns i Övervaka prestanda och diagnostikdata för en virtuell Linux-dator.
Introduktion
Linux-diagnostiktillägget hjälper en användare att övervaka hälsotillståndet för en virtuell Linux-dator som körs på Microsoft Azure. Den har följande funktioner:
- Samlar in systemprestandamått från den virtuella datorn och lagrar dem i en specifik tabell i ett särskilt lagringskonto.
- Hämtar logghändelser från syslog och lagrar dem i en specifik tabell i det avsedda lagringskontot.
- Gör det möjligt för användare att anpassa de datamått som samlas in och laddas upp.
- Gör det möjligt för användare att anpassa syslog-anläggningarna och allvarlighetsgraderna för händelser som samlas in och laddas upp.
- Gör det möjligt för användare att ladda upp angivna loggfiler till en angiven lagringstabell.
- Stöder sändning av mått och logghändelser till godtyckliga Azure Event Hubs-slutpunkter och JSON-formaterade blobar i det avsedda lagringskontot.
Det här tillägget fungerar med båda Azure-distributionsmodellerna.
Installera tillägget på en virtuell dator
Du kan aktivera tillägget med hjälp av Azure PowerShell-cmdletar, Azure CLI-skript, Azure Resource Monitor-mallar (ARM-mallar) eller Azure-portalen. Mer information finns i Tilläggsfunktioner.
Kommentar
Vissa komponenter i LAD VM-tillägget levereras också i Log Analytics VM-tillägget. På grund av den här arkitekturen kan konflikter uppstå om båda tilläggen instansieras i samma ARM-mall.
För att undvika konflikter vid installationstid använder dependsOn
du direktivet för att säkerställa att tilläggen installeras sekventiellt. Tilläggen kan installeras i båda ordningarna.
Dessa installationsanvisningar och en nedladdningsbar exempelkonfiguration för att konfigurera LAD 3.0 för att:
- Samla in och lagra samma mått som i LAD 2.3.
- Samla in en användbar uppsättning filsystemmått. Den här funktionen är ny i LAD 3.0.
- Samla in standardsamlingen för syslog som LAD 2.3 har aktiverat.
- Aktivera Azure Portal-upplevelsen för diagram och aviseringar för VM-mått.
Den nedladdningsbara konfigurationen är bara ett exempel. Ändra den så att den passar dina behov.
Förutsättningar
- Azure Linux Agent version 2.2.0 eller senare. De flesta Azure VM Linux-galleriavbildningar innehåller version 2.2.7 eller senare. Kör
/usr/sbin/waagent -version
för att bekräfta den version som är installerad på den virtuella datorn. Om den virtuella datorn kör en äldre version uppdaterar du gästagenten. - Azure CLI. Om det behövs konfigurerar du Azure CLI-miljön på datorn.
- Kommandot wget. Om du inte redan har den installerar du den med hjälp av motsvarande pakethanterare.
- En befintlig Azure-prenumeration.
- Ett befintligt lagringskonto för generell användning för att lagra data. Allmänna lagringskonton måste ha stöd för tabelllagring. Ett bloblagringskonto fungerar inte.
- Python 2.
Python-krav
Linux-diagnostiktillägget kräver Python 2. Om den virtuella datorn använder en distribution som inte innehåller Python 2 som standard måste du installera den. Följande exempelkommandon installerar Python 2 på olika distributioner:
- Red Hat, CentOS, Oracle:
yum install -y python2
- Ubuntu, Debian:
apt-get install -y python2
- SUSE:
zypper install -y python2
Den python2
körbara filen måste vara alias för Python. Här är en metod för att ange det här aliaset:
Kör följande kommando för att ta bort eventuella befintliga alias.
sudo update-alternatives --remove-all python
Kör följande kommando för att skapa aliaset.
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
Exempelinstallation
Exempelkonfigurationen som laddas ned i följande exempel samlar in en uppsättning standarddata och skickar dem till tabelllagring. URL:en för exempelkonfigurationen och dess innehåll kan ändras.
I de flesta fall bör du ladda ned en kopia av JSON-filen för portalinställningar och anpassa den efter dina behov. Använd sedan mallar eller din egen automatisering för att använda en anpassad version av konfigurationsfilen i stället för att ladda ned från URL:en varje gång.
Kommentar
För följande exempel fyller du i rätt värden för variablerna i det första avsnittet innan du kör koden.
Azure CLI-exempel
# Set your Azure VM diagnostic variables.
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 <your_azure_subscription_id>
# 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 VM resource ID. Replace the storage account name and resource ID in the public settings.
my_vm_resource_id=$(az vm show -g $my_resource_group -n $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 3.0 --resource-group $my_resource_group --vm-name $my_linux_vm --protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json
Azure CLI-exempel för att installera LAD 3.0 på vm-skalningsuppsättningsinstansen
#Set your Azure Virtual Machine Scale Sets diagnostic variables.
$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 <your_azure_subscription_id>
# 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 -g $my_resource_group -n $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 3.0 --resource-group $my_resource_group --vmss-name $my_linux_vmss --protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json
PowerShell-exempel
$storageAccountName = "yourStorageAccountName"
$storageAccountResourceGroup = "yourStorageAccountResourceGroupName"
$vmName = "yourVMName"
$VMresourceGroup = "yourVMResourceGroupName"
# Get the VM object
$vm = Get-AzVM -Name $vmName -ResourceGroupName $VMresourceGroup
# Get the public settings template from GitHub and update the templated values for storage account and resource ID
$publicSettings = (Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/azure-linux-extensions/master/Diagnostic/tests/lad_2_3_compatible_portal_pub_settings.json).Content
$publicSettings = $publicSettings.Replace('__DIAGNOSTIC_STORAGE_ACCOUNT__', $storageAccountName)
$publicSettings = $publicSettings.Replace('__VM_RESOURCE_ID__', $vm.Id)
# If you have customized public settings, you can inline those rather than using the preceding template: $publicSettings = '{"ladCfg": { ... },}'
# Generate a SAS token for the agent to use to authenticate with the storage account
$sasToken = New-AzStorageAccountSASToken -Service Blob,Table -ResourceType Service,Container,Object -Permission "racwdlup" -Context (Get-AzStorageAccount -ResourceGroupName $storageAccountResourceGroup -AccountName $storageAccountName).Context -ExpiryTime $([System.DateTime]::Now.AddYears(10))
# Build the protected settings (storage account SAS token)
$protectedSettings="{'storageAccountName': '$storageAccountName', 'storageAccountSasToken': '$sasToken'}"
# Finally, install the extension with the settings you built
Set-AzVMExtension -ResourceGroupName $VMresourceGroup -VMName $vmName -Location $vm.Location -ExtensionType LinuxDiagnostic -Publisher Microsoft.Azure.Diagnostics -Name LinuxDiagnostic -SettingString $publicSettings -ProtectedSettingString $protectedSettings -TypeHandlerVersion 3.0
Uppdatera tilläggsinställningarna
När du har ändrat dina skyddade eller offentliga inställningar distribuerar du dem till den virtuella datorn genom att köra samma kommando. Om inställningarna ändras skickas uppdateringarna till tillägget. LAD läser in konfigurationen igen och startar om sig själv.
Migrera från tidigare versioner av tillägget
Den senaste versionen av tillägget är 4.0.
Viktigt!
Det här tillägget introducerar icke-bakåtkompatibla ändringar i konfigurationen. En sådan ändring förbättrade säkerheten för tillägget, så bakåtkompatibilitet med 2.x kunde inte upprätthållas. Dessutom skiljer sig tilläggsutgivaren för det här tillägget från utgivaren för 2.x-versionerna.
Om du vill migrera från 2.x till den nya versionen avinstallerar du först det gamla tillägget (under det gamla utgivarnamnet). Installera sedan version 3.
Rekommendationer:
- Installera tillägget med automatisk delversionsuppgradering aktiverad.
- På klassiska virtuella distributionsmodelldatorer anger du version
3.*
om du installerar tillägget via Azure XPLAT CLI eller PowerShell. - På virtuella Datorer med Azure Resource Manager-distributionsmodellen tar du med
"autoUpgradeMinorVersion": true
i mallen för VM-distribution.
- På klassiska virtuella distributionsmodelldatorer anger du version
- Använd ett nytt eller annat lagringskonto för LAD 3.0. LAD 2.3 och LAD 3.0 har flera små inkompatibiliteter som gör det besvärligt att dela ett konto:
- LAD 3.0 lagrar syslog-händelser i en tabell som har ett annat namn.
- Strängarna
counterSpecifier
förbuiltin
mått skiljer sig åt i LAD 3.0.
Skyddade inställningar
Den här uppsättningen konfigurationsinformation innehåller känslig information som ska skyddas från offentlig vy. Den innehåller till exempel autentiseringsuppgifter för lagring. De här inställningarna överförs till och lagras av tillägget i krypterat format.
{
"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": { ... }
}
Name | Värde |
---|---|
storageAccountName | Namnet på lagringskontot där data skrivs av tillägget. |
storageAccountEndPoint | (Valfritt) Slutpunkten som identifierar molnet där lagringskontot finns. Om den här inställningen saknas är LAD-standardvärdet det offentliga Azure-molnet, https://core.windows.net . Om du vill använda ett lagringskonto i Azure Tyskland, Azure Government eller Microsoft Azure som drivs av 21Vianet anger du det här värdet efter behov. |
storageAccountSasToken | En SAS-kontotoken för blob- och tabelltjänster (ss='bt' ). Det gäller containrar och objekt (srt='co' ). Det ger behörighet att lägga till, skapa, lista, uppdatera och skriva (sp='acluw' ). Ta inte med det inledande frågetecknet (?). |
mdsdHttpProxy | (Valfritt) HTTP-proxyinformation som tillägget behöver för att ansluta till det angivna lagringskontot och slutpunkten. |
sinksConfig | (Valfritt) Information om alternativa mål som mått och händelser kan levereras till. I följande avsnitt beskrivs information om varje datamottagare som stöds av tillägget. |
Om du vill hämta en SAS-token i en ARM-mall använder du listAccountSas
funktionen. En exempelmall finns i Exempel på listfunktion.
Du kan skapa den NÖDVÄNDIGA SAS-token via Azure-portalen:
- Välj det allmänna lagringskonto som du vill att tillägget ska skriva till.
- I menyn till vänster går du till Inställningar och väljer Signatur för delad åtkomst.
- Gör valen enligt beskrivningen ovan.
- Välj Generera SAS.
Kopiera den genererade SAS:en till fältet storageAccountSasToken
. Ta bort det inledande frågetecknet (?).
sinksConfig
"sinksConfig": {
"sink": [
{
"name": "sinkname",
"type": "sinktype",
...
},
...
]
},
Det sinksConfig
valfria avsnittet definierar fler mål som tillägget skickar den information som samlas in till. Matrisen sink
innehåller ett objekt för varje ytterligare datamottagare. Attributet type
bestämmer de andra attributen i objektet.
Element | Värde |
---|---|
name | En sträng som refererar till den här mottagaren någon annanstans i tilläggskonfigurationen. |
type | Vilken typ av mottagare som definieras. Avgör de andra värdena (om några) i instanser av den här typen. |
LAD version 3.0 har stöd för två mottagartyper: EventHub
och JsonBlob
.
EventHub-mottagare
"sink": [
{
"name": "sinkname",
"type": "EventHub",
"sasURL": "https SAS URL"
},
...
]
Posten "sasURL"
innehåller den fullständiga URL:en, inklusive SAS-token, för den händelsehubb som data ska publiceras till. LAD kräver en SAS för att namnge en princip som aktiverar sändningsanspråket.
Till exempel:
- Skapa ett Azure Event Hubs-namnområde med namnet
contosohub
. - Skapa en händelsehubb i namnområdet med namnet
syslogmsgs
. - Skapa en princip för delad åtkomst på händelsehubben som aktiverar sändningsanspråket. Ge principen
writer
namnet .
Om din SAS är bra fram till midnatt UTC den 1 januari 2018 kan sasURL-värdet vara som i det här exemplet:
https://contosohub.servicebus.windows.net/syslogmsgs?sr=contosohub.servicebus.windows.net%2fsyslogmsgs&sig=xxxxxxxxxxxxxxxxxxxxxxxxx&se=1514764800&skn=writer
Mer information om hur du genererar och hämtar information om SAS-token för Event Hubs finns i Generera en SAS-token.
JsonBlob-mottagare
"sink": [
{
"name": "sinkname",
"type": "JsonBlob"
},
...
]
Data som dirigeras till en JsonBlob
mottagare lagras i blobar i Azure Storage. Varje instans av LAD skapar en blob varje timme för varje mottagarnamn. Varje blob innehåller alltid en syntaktiskt giltig JSON-matris med objekt. Nya poster läggs till atomiskt i matrisen.
Blobar lagras i en container som har samma namn som mottagaren. Azure Storage-reglerna för blobcontainernamn gäller för namnen JsonBlob
på mottagare. Namnet måste innehålla mellan 3 och 63 alfanumeriska alfanumeriska ASCII-tecken eller bindestreck.
Offentliga inställningar
Strukturen för offentliga inställningar innehåller olika block med inställningar som styr den information som tillägget samlar in. Varje inställning är valfri. Om du anger ladCfg
måste du också ange StorageAccount
.
{
"ladCfg": { ... },
"perfCfg": { ... },
"fileLogs": { ... },
"StorageAccount": "the storage account to receive data",
"mdsdHttpProxy" : ""
}
Element | Värde |
---|---|
StorageAccount | Namnet på lagringskontot där data skrivs av tillägget. Det måste vara det namn som anges i de skyddade inställningarna. |
mdsdHttpProxy | (Valfritt) Samma som i de skyddade inställningarna. Det offentliga värdet åsidosättas av det privata värdet, om det har angetts. Placera proxyinställningar som innehåller en hemlighet, till exempel ett lösenord, i de skyddade inställningarna. |
Följande avsnitt innehåller information om de återstående elementen.
ladCfg
"ladCfg": {
"diagnosticMonitorConfiguration": {
"eventVolume": "Medium",
"metrics": { ... },
"performanceCounters": { ... },
"syslogEvents": { ... }
},
"sampleRateInSeconds": 15
}
Strukturen ladCfg
är valfri. Den styr insamlingen av mått och loggar som levereras till Azure Monitor Metrics-tjänsten och till andra datamottagare. Du måste ange:
- Antingen
performanceCounters
ellersyslogEvents
båda. - Strukturen
metrics
.
Element | Värde |
---|---|
eventVolume | (Valfritt) Styr antalet partitioner som skapats i lagringstabellen. Det måste vara "Large" , "Medium" eller "Small" . Om ett värde inte anges är "Medium" standardvärdet . |
sampleRateInSeconds | (Valfritt) Standardintervallet mellan samlingen med råa (oaggregerade) mått. Den minsta samplingsfrekvensen som stöds är 15 sekunder. Om värdet inte anges är 15 standardvärdet . |
metrics
"metrics": {
"resourceId": "/subscriptions/...",
"metricAggregation" : [
{ "scheduledTransferPeriod" : "PT1H" },
{ "scheduledTransferPeriod" : "PT5M" }
]
}
Element | Värde |
---|---|
resourceId | Azure Resource Manager-resurs-ID för den virtuella datorn eller skalningsuppsättningen som den virtuella datorn tillhör. Den här inställningen måste också anges om någon JsonBlob mottagare används i konfigurationen. |
scheduledTransferPeriod | Den frekvens med vilken aggregerade mått beräknas och överförs till Azure Monitor Metrics. Frekvensen uttrycks som ett IS 8601-tidsintervall. Den minsta överföringsperioden är 60 sekunder, d.v.s. PT1M. Ange minst en scheduledTransferPeriod . |
Exempel på måtten som anges i performanceCounters
avsnittet samlas in var 15:e sekund eller med den exempelfrekvens som uttryckligen definierats för räknaren. Om flera scheduledTransferPeriod
frekvenser visas, som i exemplet, beräknas varje aggregering oberoende av varandra.
performanceCounters
"performanceCounters": {
"sinks": "",
"performanceCounterConfiguration": [
{
"type": "builtin",
"class": "Processor",
"counter": "PercentIdleTime",
"counterSpecifier": "/builtin/Processor/PercentIdleTime",
"condition": "IsAggregate=TRUE",
"sampleRate": "PT15S",
"unit": "Percent",
"annotation": [
{
"displayName" : "Aggregate CPU %idle time",
"locale" : "en-us"
}
]
}
]
}
Det performanceCounters
valfria avsnittet styr samlingen av mått. Råexempel aggregeras för var och en scheduledTransferPeriod
för att generera dessa värden:
- Medelvärde
- Minimum
- Maximum
- Senast insamlat värde
- Antal råexempel som används för att beräkna aggregering
Element | Värde |
---|---|
Sjunker | (Valfritt) En kommaavgränsad lista med namn på mottagare som LAD skickar aggregerade måttresultat till. Alla aggregerade mått publiceras till varje listad mottagare. Exempel: "EHsink1, myjsonsink" . Mer information finns i sinksConfig . |
type | Identifierar den faktiska providern för måttet. |
klass | Tillsammans med "counter" identifierar det specifika måttet i providerns namnområde. |
räknare | Tillsammans med "class" identifierar det specifika måttet i providerns namnområde. |
counterSpecifier | Identifierar det specifika måttet i Azure Monitor Metrics-namnområdet. |
villkor | (Valfritt) Väljer en specifik instans av objektet som måttet gäller för. Eller så väljer den aggregeringen för alla instanser av objektet. |
sampleRate | IS 8601-intervallet som anger den hastighet med vilken rådata för det här måttet samlas in. Om värdet inte har angetts anges samlingsintervallet med värdet sampleRateInSeconds . Den kortaste exempelfrekvensen som stöds är 15 sekunder (PT15S). |
unit | Definierar enheten för måttet. Bör vara en av dessa strängar: , , , , , , "BytesPerSecond" , "Millisecond" . "Percent" "CountPerSecond" "Seconds" "Bytes" "Count" Konsumenter av insamlade data förväntar sig att de insamlade datavärdena matchar den här enheten. LAD ignorerar det här fältet. |
displayName | Etiketten som ska kopplas till data i Azure Monitor Metrics. Den här etiketten finns på det språk som anges av den associerade språkinställningen. LAD ignorerar det här fältet. |
counterSpecifier
är en godtycklig identifierare. Konsumenter av mått, till exempel azure-portalens diagram och aviseringsfunktion, använder counterSpecifier
som "nyckel" som identifierar ett mått eller en instans av ett mått.
För builtin
mått rekommenderar counterSpecifier
vi värden som börjar med /builtin/
. Om du samlar in en specifik instans av ett mått rekommenderar vi att du kopplar instansens identifierare till counterSpecifier
värdet.
Nedan följer några exempel:
/builtin/Processor/PercentIdleTime
- Inaktiv tid i genomsnitt för alla virtuella processorer/builtin/Disk/FreeSpace(/mnt)
– Ledigt utrymme för/mnt
filsystemet/builtin/Disk/FreeSpace
– Ledigt utrymme i genomsnitt för alla monterade filsystem
LAD och Azure-portalen förväntar sig counterSpecifier
inte att värdet ska matcha något mönster. Var konsekvent i hur du skapar counterSpecifier
värden.
När du anger performanceCounters
skriver LAD alltid data till en tabell i Azure Storage. Samma data kan skrivas till JSON-blobar eller händelsehubbar eller båda. Men du kan inte inaktivera lagring av data till en tabell.
Alla instanser av LAD som använder samma lagringskontonamn och slutpunkt lägger till sina mått och loggar i samma tabell. Om för många virtuella datorer skriver till samma tabellpartition kan Azure begränsa skrivningar till partitionen.
Inställningen eventVolume
gör att poster sprids över 1 (liten), 10 (medel) eller 100 (stora) partitioner. Vanligtvis räcker det med medelstora partitioner för att undvika trafikbegränsning.
Azure Monitor Metrics-funktionen i Azure-portalen använder data i den här tabellen för att skapa grafer eller utlösa aviseringar. Tabellnamnet är sammanlänkningen av dessa strängar:
WADMetrics
"scheduledTransferPeriod"
För de aggregerade värden som lagras i tabellenP10DV2S
- Ett datum i formuläret "YYYYYMMDD", som ändras var tionde dag
Exempel är WADMetricsPT1HP10DV2S20170410
och WADMetricsPT1MP10DV2S20170609
.
syslogEvents
"syslogEvents": {
"sinks": "",
"syslogEventConfiguration": {
"facilityName1": "minSeverity",
"facilityName2": "minSeverity",
...
}
}
Det syslogEvents
valfria avsnittet styr samlingen av logghändelser från syslog. Om avsnittet utelämnas registreras inte syslog-händelser alls.
Samlingen syslogEventConfiguration
har en post för varje syslog-anläggning av intresse. Om minSeverity
är "NONE"
för en viss anläggning, eller om den anläggningen inte visas i elementet alls, fångas inga händelser från den anläggningen.
Element | Värde |
---|---|
Sjunker | En kommaavgränsad lista över namn på mottagare som enskilda logghändelser publiceras till. Alla logghändelser som matchar begränsningarna i syslogEventConfiguration publiceras till varje listad mottagare. Exempel: "EHforsyslog" |
facilityName | Ett namn på en syslog-anläggning, till exempel "LOG_USER" eller "LOG\LOCAL0" . Mer information finns i avsnittet "Anläggning" på sidan syslog man. |
minSeverity | En allvarlighetsgrad för syslog, till exempel "LOG_ERR" eller "LOG_INFO" . Mer information finns i avsnittet "Nivå" på sidan syslog man. Tillägget samlar in händelser som skickas till anläggningen på eller över den angivna nivån. |
När du anger syslogEvents
skriver LAD alltid data till en tabell med namnet LinuxSyslogVer2v0 i Azure Storage. Samma data kan skrivas till JSON-blobar eller händelsehubbar eller båda. Men du kan inte inaktivera lagring av data till en tabell.
perfCfg
Avsnittet perfCfg
är valfritt. Den styr körningen av godtyckliga OMI-frågor (Open Management Infrastructure).
"perfCfg": [
{
"namespace": "root/scx",
"query": "SELECT PercentAvailableMemory, PercentUsedSwap FROM SCX_MemoryStatisticalInformation",
"table": "LinuxOldMemory",
"frequency": 300,
"sinks": ""
}
]
Element | Värde |
---|---|
namnområde | (Valfritt) OMI-namnområdet där frågan ska köras. Om det är ospecificerat är "root/scx" standardvärdet . Den implementeras av System Center-plattformsoberoende leverantörer. |
query | OMI-frågan som ska köras. |
table | (Valfritt) Azure Storage-tabellen i det avsedda lagringskontot. Mer information finns i Skyddade inställningar. |
frequency | (Valfritt) Antalet sekunder mellan frågekörningar. Standardvärdet är 300 (5 minuter). Det minsta värdet är 15 sekunder. |
Sjunker | (Valfritt) En kommaavgränsad lista med namn på fler mottagare som råa exempelmåttresultat ska publiceras till. Ingen aggregering av dessa råexempel beräknas med tillägget eller av Azure Monitor Metrics. |
Antingen "table"
eller "sinks"
båda måste anges.
fileLogs
Avsnittet fileLogs
styr insamlingen av loggfiler. LAD samlar in nya textrader när de skrivs till filen. Den skriver dem till tabellrader och/eller angivna mottagare (JsonBlob
eller EventHub
).
Kommentar
fileLogs
Samlas in av en underkomponent av LAD som heter omsagent
. Om du vill samla in fileLogs
kontrollerar du att omsagent
användaren har läsbehörighet för de filer som du anger. Användaren måste också ha körningsbehörighet för alla kataloger i sökvägen till filen. När LAD har installerats kan du kontrollera behörigheter genom att köra sudo su omsagent -c 'cat /path/to/file'
.
"fileLogs": [
{
"file": "/var/log/mydaemonlog",
"table": "MyDaemonEvents",
"sinks": ""
}
]
Element | Värde |
---|---|
fil | Det fullständiga sökvägsnamnet för loggfilen som ska övervakas och avbildas. Sökvägens namn måste namnge en enda fil. Den kan inte namnge en katalog eller innehålla jokertecken. Användarkontot omsagent måste ha läsbehörighet till filsökvägen. |
table | (Valfritt) Azure Storage-tabellen där nya rader från filens "tail" skrivs. Tabellen måste finnas i det avsedda lagringskontot enligt beskrivningen i den skyddade konfigurationen. |
Sjunker | (Valfritt) En kommaavgränsad lista med namn på fler mottagare som loggrader skickas till. |
Antingen "table"
eller "sinks"
, eller båda, måste anges.
Mått som stöds av den inbyggda providern
Måttprovidern builtin
är en källa till mått som är mest intressant för en bred uppsättning användare. Dessa mått delas in i fem breda klasser:
- Processor
- Minne
- Nätverk
- Filsystem
- Disk
inbyggda mått för processorklassen
Måttklassen Processor innehåller information om processoranvändning på den virtuella datorn. När procentandelar aggregeras blir resultatet medelvärdet för alla processorer.
Om en virtuell vCPU-dator är 100 procent upptagen och den andra är 100 procent inaktiv är den rapporterade PercentIdleTime
50 på en virtuell dator med två virtuella processorer. Om varje vCPU är 50 procent upptagen under samma period är det rapporterade resultatet också 50. I en virtuell dator med fyra vCPU:er, när en vCPU är 100 procent upptagen och de andra är inaktiva, är den rapporterade PercentIdleTime
75.
Räknare | Innebörd |
---|---|
PercentIdleTime | Procentandel av tiden under aggregeringsfönstret som processorer körde kernelns inaktiva loop |
PercentProcessorTime | Procentandel av tiden som kör en tråd som inte är inaktiv |
PercentIOWaitTime | Procentandel av tiden som väntar på att I/O-åtgärder ska slutföras |
PercentInterruptTime | Procentandel tid som kör maskin- eller programvaruavbrott och DPC (uppskjutna proceduranrop) |
PercentUserTime | För icke-inaktiv tid under aggregeringsfönstret är procentandelen tid i användarläge med normal prioritet |
PercentNiceTime | Av icke-inaktiv tid, den procentandel som spenderas på lägre (trevlig) prioritet |
PercentPrivilegedTime | För icke-inaktiv tid används procentandelen i privilegierat läge (kernel) |
De första fyra räknarna ska summeras till 100 procent. De tre sista räknarna summerar också till 100 procent. Dessa tre räknare delar upp summan av PercentProcessorTime
, PercentIOWaitTime
och PercentInterruptTime
.
Om du vill aggregera ett enda mått för alla processorer anger du "condition": "IsAggregate=TRUE"
. Om du vill hämta ett mått för en specifik processor, till exempel den andra logiska processorn för en virtuell dator med fyra virtuella processorer, anger du "condition": "Name=\\"1\\""
. Logiska processornummer finns i intervallet [0..n-1]
.
inbyggda mått för klassen Minne
Måttklassen Minne innehåller information om minnesanvändning, växling och byte.
Räknare | Innebörd |
---|---|
AvailableMemory | Tillgängligt fysiskt minne i MiB |
PercentAvailableMemory | Tillgängligt fysiskt minne som en procentandel av det totala minnet |
UsedMemory | Fysiskt minne som används (MiB) |
PercentUsedMemory | Fysiskt minne som används i procent av det totala minnet |
PagesPerSec | Total växling (läsning/skrivning) |
PagesReadPerSec | Sidor som lästs från lagringsplatsen, till exempel växlingsfil, programfil och mappad fil |
PagesWrittenPerSec | Sidor som skrivits till lagringsplatsen, till exempel växlingsfil och mappad fil |
AvailableSwap | Oanvänt växlingsutrymme (MiB) |
PercentAvailableSwap | Oanvänt växlingsutrymme som en procentandel av det totala bytet |
UsedSwap | Använd växlingsutrymme (MiB) |
PercentUsedSwap | Växlingsutrymme som används i procent av det totala bytet |
Den här måttklassen har bara en instans. Attributet "condition"
har inga användbara inställningar och bör utelämnas.
inbyggda mått för nätverksklassen
Nätverksklassen med mått innehåller information om nätverksaktivitet i ett enskilt nätverksgränssnitt sedan starten.
LAD exponerar inte bandbreddsmått. Du kan hämta dessa mått från värdmått.
Räknare | Innebörd |
---|---|
BytesTransmitted | Totalt antal byte som skickats sedan starten |
BytesReceived | Totalt antal byte som tagits emot sedan starten |
BytesTotal | Totalt antal skickade eller mottagna byte sedan starten |
PaketÖverförda | Totalt antal paket som skickats sedan starten |
PacketsReceived | Totalt antal paket som tagits emot sedan starten |
TotalRxErrors | Antal mottagningsfel sedan starten |
TotalTxErrors | Antal överföringsfel sedan starten |
TotalCollisions | Antal kollisioner som rapporterats av nätverksportarna sedan starten |
Även om nätverksklassen är instans har LAD inte stöd för insamling av nätverksmått aggregerade över alla nätverksenheter. Om du vill hämta måtten för ett specifikt gränssnitt, till exempel eth0, anger du "condition": "InstanceID=\\"eth0\\""
.
inbyggda mått för filsystemklassen
Måttklassen Filsystem innehåller information om filsystemanvändning. Absoluta värden och procentvärden rapporteras eftersom de skulle visas för en vanlig användare (inte rot).
Räknare | Innebörd |
---|---|
Freespace | Tillgängligt diskutrymme i byte |
UsedSpace | Använt diskutrymme i byte |
PercentFreeSpace | Ledigt utrymme i procent |
PercentUsedSpace | Använt utrymme i procent |
PercentFreeInodes | Procentandel oanvända indexnoder (innoder) |
PercentUsedInodes | Procentandel allokerade (används) innoder som summerats i alla filsystem |
BytesReadPerSecond | Byte läse per sekund |
BytesWrittenPerSecond | Byte skrivs per sekund |
BytesPerSecond | Byte läs- eller skrivskyddade per sekund |
ReadsPerSecond | Läsåtgärder per sekund |
WritesPerSecond | Skrivåtgärder per sekund |
TransfersPerSecond | Läs- eller skrivåtgärder per sekund |
Du kan hämta aggregerade värden i alla filsystem genom att ange "condition": "IsAggregate=True"
. Hämta värden för ett specifikt monterat filsystem, till exempel "/mnt"
, genom att ange "condition": 'Name="/mnt"'
.
Kommentar
Om du arbetar i Azure-portalen i stället för JSON är Name='/mnt'
villkorsfältformuläret .
inbyggda mått för diskklassen
Måttklassen Disk innehåller information om diskenhetsanvändning. Den här statistiken gäller för hela enheten.
När en enhet har flera filsystem aggregeras räknarna för den enheten i praktiken över alla filsystem.
Räknare | Innebörd |
---|---|
ReadsPerSecond | Läsåtgärder per sekund |
WritesPerSecond | Skrivåtgärder per sekund |
TransfersPerSecond | Totalt antal åtgärder per sekund |
AverageReadTime | Genomsnittlig sekund per läsåtgärd |
AverageWriteTime | Genomsnittlig sekund per skrivåtgärd |
AverageTransferTime | Genomsnittliga sekunder per åtgärd |
AverageDiskQueueLength | Genomsnittligt antal diskåtgärder i kö |
ReadBytesPerSecond | Antal byte som lästs per sekund |
WriteBytesPerSecond | Antal byte skrivna per sekund |
BytesPerSecond | Antal lästa eller skrivna byte per sekund |
Du kan hämta aggregerade värden på alla diskar genom att ange "condition": "IsAggregate=True"
. Om du vill hämta information för en specifik enhet (till exempel /dev/sdf1
), anger du "condition": "Name=\\"/dev/sdf1\\""
.
Installera och konfigurera LAD 3.0
Azure CLI
Om dina skyddade inställningar finns i filen ProtectedSettings.json och den offentliga konfigurationsinformationen finns i PublicSettings.json kör du följande kommando.
az vm extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic --version 3.0 --resource-group <resource_group_name> --vm-name <vm_name> --protected-settings ProtectedSettings.json --settings PublicSettings.json
Kommandot förutsätter att du använder Azure Resource Manager-läget i Azure CLI. Om du vill konfigurera LAD för klassiska virtuella distributionsmodelldatorer växlar du till "asm"-läge (azure config mode asm
) och utelämnar resursgruppens namn i kommandot.
Mer information finns i cli-dokumentationen för flera plattformar.
PowerShell
Om dina skyddade inställningar finns i variabeln $protectedSettings
och den offentliga konfigurationsinformationen finns i variabeln $publicSettings
kör du det här kommandot:
Set-AzVMExtension -ResourceGroupName <resource_group_name> -VMName <vm_name> -Location <vm_location> -ExtensionType LinuxDiagnostic -Publisher Microsoft.Azure.Diagnostics -Name LinuxDiagnostic -SettingString $publicSettings -ProtectedSettingString $protectedSettings -TypeHandlerVersion 3.0
Exempel på LAD 3.0-konfiguration
Baserat på ovanstående definitioner innehåller det här avsnittet en lad 3.0-exempeltilläggskonfiguration och en förklaring. Om du vill tillämpa det här exemplet på ditt ärende använder du ditt eget lagringskontonamn, konto-SAS-token och Event Hubs SAS-token.
Kommentar
Beroende på om du använder Azure CLI eller PowerShell för att installera LAD skiljer sig metoden för att tillhandahålla offentliga och skyddade inställningar:
- Om du använder Azure CLI sparar du följande inställningar för att ProtectedSettings.json och PublicSettings.json för att använda föregående exempelkommando.
- Om du använder PowerShell sparar du följande inställningar till och
$publicSettings
genom att$protectedSettings
köra$protectedSettings = '{ ... }'
.
Skyddade inställningar
De skyddade inställningarna konfigurerar:
- Ett lagringskonto.
- En matchande SAS-token för kontot.
- Flera mottagare (
JsonBlob
ellerEventHub
med SAS-token).
{
"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"
}
]
}
}
Offentliga inställningar
De offentliga inställningarna gör att LAD gör följande:
- Ladda upp mått för procent processortid och mått för använt diskutrymme till tabellen
WADMetrics*
. - Ladda upp meddelanden från syslog-anläggningen
"user"
och allvarlighetsgraden"info"
tillLinuxSyslog*
tabellen. - Ladda upp råa OMI-frågeresultat (
PercentProcessorTime
ochPercentIdleTime
) till den namngivnaLinuxCPU
tabellen. - Ladda upp bifogade rader i filen
/var/log/myladtestlog
tillMyLadTestLog
tabellen.
I varje fall laddas även data upp till:
- Azure Blob Storage. Containernamnet är som definierat i
JsonBlob
mottagaren. - Event Hubs-slutpunkten enligt vad som anges i
EventHub
mottagaren.
{
"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": "Aggregate CPU %utilization"
}
],
"condition": "IsAggregate=TRUE",
"class": "Processor"
},
{
"unit": "Bytes",
"type": "builtin",
"counter": "UsedSpace",
"counterSpecifier": "/builtin/FileSystem/UsedSpace",
"annotation": [
{
"locale": "en-us",
"displayName": "Used disk space on /"
}
],
"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"
}
}
}
},
"perfCfg": [
{
"query": "SELECT PercentProcessorTime, PercentIdleTime FROM SCX_ProcessorStatisticalInformation WHERE Name='_TOTAL'",
"table": "LinuxCpu",
"frequency": 60,
"sinks": "LinuxCpuJsonBlob,LinuxCpuEventHub"
}
],
"fileLogs": [
{
"file": "/var/log/myladtestlog",
"table": "MyLadTestLog",
"sinks": "FilelogJsonBlob,LoggingEventHub"
}
]
}
I resourceId
konfigurationen måste matcha den virtuella datorns eller den virtuella datorns skalningsuppsättning.
- Diagram och aviseringar för Azure-plattformsmått vet vilken
resourceId
virtuell dator du arbetar med. Den förväntar sig att hitta data för den virtuella datorn med hjälpresourceId
av uppslagsnyckeln. - Om du använder Azure Autoscale måste konfigurationen
resourceId
i autoskalning matcha denresourceId
som LAD använder. resourceId
är inbyggt i namnen på JSON-blobar som skrivits av LAD.
Visa dina data
Använd Azure-portalen för att visa prestandadata eller för att ange aviseringar:
Data performanceCounters
lagras alltid i en Azure Storage-tabell. Azure Storage-API:er är tillgängliga för många språk och plattformar.
Data som skickas till JsonBlob
mottagare lagras i blobar i lagringskontot med namnet i de skyddade inställningarna. Du kan använda blobdata med hjälp av azure bloblagrings-API:er.
Du kan också använda dessa gränssnittsverktyg för att komma åt data i Azure Storage:
- Visual Studio Server Explorer
- Azure Lagringsutforskaren
Följande skärmbild av en Azure Storage Explorer-session visar de genererade Azure Storage-tabellerna och containrarna från ett korrekt konfigurerat LAD 3.0-tillägg på en virtuell testdator. Avbildningen matchar inte exakt lad 3.0-exempelkonfigurationen.
Mer information om hur du använder meddelanden som publicerats till en Event Hubs-slutpunkt finns i relevant dokumentation om Event Hubs.
Nästa steg
- Skapa aviseringar för de mått som du samlar in i Azure Monitor.
- Skapa övervakningsdiagram för dina mått.
- Skapa en VM-skalningsuppsättning med hjälp av dina mått för att styra autoskalning.