Share via


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 närmar sig EOL-status (End Of Life). Ö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:

  1. Kör följande kommando för att ta bort eventuella befintliga alias.

    sudo update-alternatives --remove-all python
    
  2. 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.
  • 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ör builtin 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:

  1. Välj det allmänna lagringskonto som du vill att tillägget ska skriva till.
  2. Välj Signatur för delad åtkomst under Inställningar på menyn till vänster.
  3. Gör valen enligt beskrivningen ovan.
  4. Välj Generera SAS.

Skärmbild som visar signatursidan för delad åtkomst med knappen Generera S A S.

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 writernamnet .

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 ladCfgmå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 eller syslogEvents 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 15standardvä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 performanceCountersskriver 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 tabellen
  • P10DV2S
  • 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 syslogEventsskriver 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.

Partitioneringsbeteendet för tabellen är detsamma som beskrivs för performanceCounters. Tabellnamnet är sammanlänkningen av dessa strängar:

  • LinuxSyslog
  • Ett datum i formuläret "YYYYYMMDD", som ändras var tionde dag

Exempel är LinuxSyslog20170410 och LinuxSyslog20170609.

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 fileLogskontrollerar 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, PercentIOWaitTimeoch 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 Skyddad Inställningar.json och den offentliga konfigurationsinformationen finns i Offentlig Inställningar.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 i Skyddat Inställningar.json och Offentligt Inställningar.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 eller EventHub 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" till LinuxSyslog* tabellen.
  • Ladda upp råa OMI-frågeresultat (PercentProcessorTime och PercentIdleTime) till den namngivna LinuxCPU tabellen.
  • Ladda upp bifogade rader i filen /var/log/myladtestlog till MyLadTestLog 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älp resourceId av uppslagsnyckeln.
  • Om du använder Azure Autoscale måste konfigurationen resourceId i autoskalning matcha den resourceId 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:

Skärmbild som visar Azure-portalen. Måttet Använt diskutrymme har valts. Det resulterande diagrammet visas.

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:

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.

Skärmbild som visar Azure Storage Explorer.

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