Share via


Diagnostische Linux-extensie 3.0 gebruiken om metrische gegevens en logboeken te bewaken

Let op

In dit artikel wordt verwezen naar CentOS, een Linux-distributie die de status End Of Life (EOL) nadert. Houd rekening met uw gebruik en plan dienovereenkomstig. Zie de Richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.

In dit document wordt versie 3.0 en hoger van de diagnostische Linux-extensie (LAD) beschreven.

Belangrijk

Zie De prestaties en diagnostische gegevens van een Linux-VM bewaken voor meer informatie over versie 2.3 en eerdere versies.

Inleiding

De diagnostische Linux-extensie helpt een gebruiker bij het bewaken van de status van een Virtuele Linux-machine die wordt uitgevoerd in Microsoft Azure. Het heeft de volgende mogelijkheden:

  • Verzamelt metrische gegevens over systeemprestaties van de virtuele machine en slaat deze op in een specifieke tabel in een aangewezen opslagaccount.
  • Hiermee worden logboek gebeurtenissen opgehaald uit syslog en opgeslagen in een specifieke tabel in het aangewezen opslagaccount.
  • Hiermee kunnen gebruikers de metrische gegevens aanpassen die worden verzameld en geüpload.
  • Hiermee kunnen gebruikers de syslog-faciliteiten en ernstniveaus aanpassen van gebeurtenissen die worden verzameld en geüpload.
  • Hiermee kunnen gebruikers opgegeven logboekbestanden uploaden naar een aangewezen opslagtabel.
  • Ondersteunt het verzenden van metrische gegevens en logboekgebeurtenissen naar willekeurige Azure Event Hubs-eindpunten en JSON-blobs in het aangewezen opslagaccount.

Deze extensie werkt met beide Azure-implementatiemodellen.

De extensie installeren op een virtuele machine

U kunt de extensie inschakelen met behulp van Azure PowerShell-cmdlets, Azure CLI-scripts, Azure Resource Monitor-sjablonen (ARM-sjablonen) of Azure Portal. Zie Extensies-functies voor meer informatie.

Notitie

Sommige onderdelen van de LAD VM-extensie worden ook geleverd in de Log Analytics VM-extensie. Vanwege deze architectuur kunnen er conflicten optreden als beide extensies worden geïnstantieerd in dezelfde ARM-sjabloon.

Gebruik de dependsOn instructie om te voorkomen dat de installatietijdconflicten opeenvolgend worden geïnstalleerd. De extensies kunnen in beide volgorde worden geïnstalleerd.

Deze installatie-instructies en een downloadbare voorbeeldconfiguratie voor het configureren van LAD 3.0 voor:

  • Leg dezelfde metrische gegevens vast en sla ze op als in LAD 2.3.
  • Leg een handige set metrische gegevens van het bestandssysteem vast. Deze functionaliteit is nieuw in LAD 3.0.
  • Leg de standaard syslog-verzameling vast waarvoor LAD 2.3 is ingeschakeld.
  • Schakel de Azure-portal-ervaring in voor grafieken en waarschuwingen voor metrische gegevens van vm's.

De downloadbare configuratie is slechts een voorbeeld. Pas het aan uw behoeften aan.

Vereisten

  • Azure Linux Agent versie 2.2.0 of hoger. De meeste installatiekopieën van de Linux-galerie voor Azure VM's bevatten versie 2.2.7 of hoger. Voer deze opdracht uit /usr/sbin/waagent -version om te bevestigen dat de versie die op de VIRTUELE machine is geïnstalleerd. Als op de VM een oudere versie wordt uitgevoerd, werkt u de gastagent bij.
  • De Azure CLI. Stel indien nodig de Azure CLI-omgeving op uw computer in.
  • De opdracht wget. Als u deze nog niet hebt, installeert u deze met behulp van het bijbehorende pakketbeheer.
  • Een bestaand Azure-abonnement.
  • Een bestaand opslagaccount voor algemeen gebruik om de gegevens op te slaan. Opslagaccounts voor algemeen gebruik moeten tabelopslag ondersteunen. Een Blob Storage-account werkt niet.
  • Python 2.

Python-vereiste

Voor de diagnostische Linux-extensie is Python 2 vereist. Als uw virtuele machine gebruikmaakt van een distributie die niet standaard Python 2 bevat, moet u deze installeren. Met de volgende voorbeeldopdrachten installeert u Python 2 op verschillende distributies:

  • Red Hat, CentOS, Oracle: yum install -y python2
  • Ubuntu, Debian: apt-get install -y python2
  • SUSE: zypper install -y python2

Het python2 uitvoerbare bestand moet een alias hebben naar Python. Hier volgt één methode om deze alias in te stellen:

  1. Voer de volgende opdracht uit om bestaande aliassen te verwijderen.

    sudo update-alternatives --remove-all python
    
  2. Voer de volgende opdracht uit om de alias te maken.

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
    

Voorbeeldinstallatie

De voorbeeldconfiguratie die in de volgende voorbeelden is gedownload, verzamelt een set standaardgegevens en verzendt deze naar table storage. De URL voor de voorbeeldconfiguratie en de inhoud ervan kunnen worden gewijzigd.

In de meeste gevallen moet u een kopie van het JSON-bestand met portalinstellingen downloaden en aanpassen aan uw behoeften. Gebruik vervolgens sjablonen of uw eigen automatisering om telkens een aangepaste versie van het configuratiebestand te gebruiken in plaats van elke keer van de URL te downloaden.

Notitie

Vul voor de volgende voorbeelden de juiste waarden in voor de variabelen in de eerste sectie voordat u de code uitvoert.

Azure CLI-voorbeeld

# 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-voorbeeld voor het installeren van LAD 3.0 op het exemplaar van de virtuele-machineschaalset

#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

Voorbeeld van PowerShell

$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

De extensie-instellingen bijwerken

Nadat u uw beveiligde of openbare instellingen hebt gewijzigd, implementeert u deze op de virtuele machine door dezelfde opdracht uit te voeren. Als de instellingen zijn gewijzigd, worden de updates naar de extensie verzonden. LAD laadt de configuratie opnieuw en start zichzelf opnieuw op.

Migreren vanuit eerdere versies van de extensie

De nieuwste versie van de extensie is 4.0.

Belangrijk

Deze extensie introduceert belangrijke wijzigingen in de configuratie. Een dergelijke wijziging verbeterde de beveiliging van de extensie, dus achterwaartse compatibiliteit met 2.x kon niet worden gehandhaafd. De uitbreidingsuitgever voor deze extensie verschilt ook van de uitgever voor de 2.x-versies.

Als u wilt migreren van 2.x naar de nieuwe versie, verwijdert u eerst de oude extensie (onder de oude naam van de uitgever). Installeer vervolgens versie 3.

Aanbevelingen:

  • Installeer de extensie met automatische upgrade van secundaire versie ingeschakeld.
    • Geef op vm's van het klassieke implementatiemodel versie 3.* op als u de extensie installeert via de Azure XPLAT CLI of PowerShell.
    • Neem op vm's "autoUpgradeMinorVersion": true van het Azure Resource Manager-implementatiemodel de VM-implementatiesjabloon op.
  • Gebruik een nieuw of ander opslagaccount voor LAD 3.0. LAD 2.3 en LAD 3.0 hebben verschillende kleine incompatibiliteit die het delen van een account lastig maken:
    • IN LAD 3.0 worden syslog-gebeurtenissen opgeslagen in een tabel met een andere naam.
    • De counterSpecifier tekenreeksen voor builtin metrische gegevens verschillen in LAD 3.0.

Beveiligde instellingen

Deze set configuratiegegevens bevat gevoelige informatie die moet worden beveiligd tegen openbare weergave. Het bevat bijvoorbeeld opslagreferenties. Deze instellingen worden verzonden naar en opgeslagen door de extensie in versleutelde vorm.

{
    "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": { ... }
}
Naam Weergegeven als
storageAccountName De naam van het opslagaccount waarin gegevens worden geschreven door de extensie.
storageAccountEndPoint (Optioneel) Het eindpunt dat de cloud identificeert waarin het opslagaccount bestaat. Als deze instelling afwezig is, is de STANDAARD LAD de openbare Azure-cloud. https://core.windows.net Als u een opslagaccount in Azure Duitsland, Azure Government of Microsoft Azure wilt gebruiken dat wordt beheerd door 21Vianet, stelt u deze waarde in zoals vereist.
storageAccountSasToken Een ACCOUNT-SAS-token voor blob- en tabelservices (ss='bt'). Deze is van toepassing op containers en objecten (srt='co'). Het verleent machtigingen voor toevoegen, maken, weergeven, bijwerken en schrijven (sp='acluw'). Neem het voorloopvraagteken (?) niet op.
mdsdHttpProxy (Optioneel) HTTP-proxygegevens die de extensie nodig heeft om verbinding te maken met het opgegeven opslagaccount en eindpunt.
sinksConfig (Optioneel) Details van alternatieve bestemmingen waarop metrische gegevens en gebeurtenissen kunnen worden geleverd. In de volgende secties vindt u informatie over elke gegevenssink die wordt ondersteund door de extensie.

Gebruik de listAccountSas functie om een SAS-token op te halen in een ARM-sjabloon. Zie lijstfunctievoorbeeld voor een voorbeeldsjabloon.

U kunt het vereiste SAS-token maken via Azure Portal:

  1. Selecteer het opslagaccount voor algemeen gebruik waarnaar u de extensie wilt schrijven.
  2. Selecteer in het menu aan de linkerkant, onder Instellingen, de handtekening voor gedeelde toegang.
  3. Maak de selecties zoals eerder beschreven.
  4. Selecteer SAS genereren.

Schermopname van de pagina Shared Access Signature met de knop Generate S A S.

Kopieer de gegenereerde SAS naar het storageAccountSasToken veld. Verwijder het voorloopvraagteken (?).

sinksConfig

"sinksConfig": {
    "sink": [
        {
            "name": "sinkname",
            "type": "sinktype",
            ...
        },
        ...
    ]
},

In sinksConfig de optionele sectie worden meer bestemmingen gedefinieerd waarnaar de extensie de verzamelde informatie verzendt. De sink matrix bevat een object voor elke extra gegevenssink. Het type kenmerk bepaalt de andere kenmerken in het object.

Element Weergegeven als
naam Een tekenreeks die ergens anders in de extensieconfiguratie naar deze sink verwijst.
type Het type sink dat wordt gedefinieerd. Bepaalt de andere waarden (indien aanwezig) in exemplaren van dit type.

LAD-versie 3.0 ondersteunt twee sinktypen: EventHub en JsonBlob.

EventHub-sink

"sink": [
    {
        "name": "sinkname",
        "type": "EventHub",
        "sasURL": "https SAS URL"
    },
    ...
]

De "sasURL" vermelding bevat de volledige URL, inclusief het SAS-token, voor de Event Hub waarnaar gegevens moeten worden gepubliceerd. VOOR LAD is een SAS vereist om een beleid te benoemen waarmee de verzendclaim wordt ingeschakeld.

Voorbeeld:

  • Maak een Azure Event Hubs-naamruimte met de naam contosohub.
  • Maak een Event Hub in de naamruimte met de naam syslogmsgs.
  • Maak een beleid voor gedeelde toegang op de Event Hub waarmee de claim voor verzenden wordt ingeschakeld. Geef het beleid writereen naam.

Als uw SAS goed is tot middernacht UTC op 1 januari 2018, kan de sasURL-waarde er als volgt uitzien:

https://contosohub.servicebus.windows.net/syslogmsgs?sr=contosohub.servicebus.windows.net%2fsyslogmsgs&sig=xxxxxxxxxxxxxxxxxxxxxxxxx&se=1514764800&skn=writer

Zie Een SAS-token genereren en ophalen voor meer informatie over het genereren en ophalen van informatie over SAS-tokens voor Event Hubs.

JsonBlob-sink

"sink": [
    {
        "name": "sinkname",
        "type": "JsonBlob"
    },
    ...
]

Gegevens die naar een JsonBlob sink worden geleid, worden opgeslagen in blobs in Azure Storage. Elk exemplaar van LAD maakt elk uur een blob voor elke sinknaam. Elke blob bevat altijd een syntactisch geldige JSON-matrix met objecten. Nieuwe vermeldingen worden atomisch toegevoegd aan de matrix.

Blobs worden opgeslagen in een container met dezelfde naam als de sink. De Azure Storage-regels voor blobcontainernamen zijn van toepassing op de namen van JsonBlob sinks. De naam moet tussen 3 en 63 kleine letters alfanumerieke ASCII-tekens of streepjes bevatten.

Openbare instellingen

De structuur van de openbare instellingen bevat verschillende blokken instellingen die bepalen welke informatie de extensie verzamelt. Elke instelling is optioneel. Als u opgeeft ladCfg, moet u ook opgeven StorageAccount.

{
    "ladCfg":  { ... },
    "perfCfg": { ... },
    "fileLogs": { ... },
    "StorageAccount": "the storage account to receive data",
    "mdsdHttpProxy" : ""
}
Element Weergegeven als
StorageAccount De naam van het opslagaccount waarin gegevens worden geschreven door de extensie. Dit moet de naam zijn die is opgegeven in de beveiligde instellingen.
mdsdHttpProxy (Optioneel) Hetzelfde als in de beveiligde instellingen. De openbare waarde wordt overschreven door de privéwaarde, als deze is ingesteld. Plaats proxy-instellingen die een geheim, zoals een wachtwoord, bevatten in de beveiligde instellingen.

De volgende secties bevatten details voor de resterende elementen.

ladCfg

"ladCfg": {
    "diagnosticMonitorConfiguration": {
        "eventVolume": "Medium",
        "metrics": { ... },
        "performanceCounters": { ... },
        "syslogEvents": { ... }
    },
    "sampleRateInSeconds": 15
}

De ladCfg structuur is optioneel. Het beheert het verzamelen van metrische gegevens en logboeken die worden geleverd aan de Azure Monitor Metrics-service en aan andere gegevenssinks. U moet het volgende opgeven:

  • syslogEvents Of performanceCounters beide.
  • De metrics structuur.
Element Weergegeven als
eventVolume (Optioneel) Hiermee bepaalt u het aantal partities dat in de opslagtabel is gemaakt. Het moet zijn "Large", "Medium"of "Small". Als er geen waarde is opgegeven, is de standaardwaarde "Medium".
sampleRateInSeconds (Optioneel) Het standaardinterval tussen de verzameling onbewerkte (niet-geaggregeerde) metrische gegevens. De kleinste ondersteunde steekproeffrequentie is 15 seconden. Als de waarde niet is opgegeven, is de standaardwaarde 15.

metrics

"metrics": {
    "resourceId": "/subscriptions/...",
    "metricAggregation" : [
        { "scheduledTransferPeriod" : "PT1H" },
        { "scheduledTransferPeriod" : "PT5M" }
    ]
}
Element Weergegeven als
resourceId De Resource-id van Azure Resource Manager van de VIRTUELE machine of van de schaalset waartoe de VM behoort. Deze instelling moet ook worden opgegeven als er JsonBlob een sink wordt gebruikt in de configuratie.
scheduledTransferPeriod De frequentie waarmee statistische metrische gegevens worden berekend en overgebracht naar metrische gegevens van Azure Monitor. De frequentie wordt uitgedrukt als een IS 8601-tijdsinterval. De kleinste overdrachtsperiode is 60 seconden, dat wil gezegd PT1M. Geef ten minste één scheduledTransferPeriodop.

Voorbeelden van de metrische gegevens die in de performanceCounters sectie zijn opgegeven, worden elke 15 seconden verzameld of met de steekproeffrequentie die expliciet is gedefinieerd voor de teller. Als er meerdere scheduledTransferPeriod frequenties worden weergegeven, zoals in het voorbeeld, wordt elke aggregatie onafhankelijk berekend.

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"
                }
            ]
        }
    ]
}

De performanceCounters optionele sectie bepaalt de verzameling metrische gegevens. Onbewerkte monsters worden samengevoegd voor elk scheduledTransferPeriod om deze waarden te produceren:

  • Gemiddelde
  • Minimum
  • Maximum
  • Laatst verzamelde waarde
  • Het aantal onbewerkte steekproeven dat wordt gebruikt voor het berekenen van de aggregaties
Element Weergegeven als
Putten (Optioneel) Een door komma's gescheiden lijst met namen van sinks waarnaar LAD geaggregeerde metrische resultaten verzendt. Alle geaggregeerde metrische gegevens worden gepubliceerd naar elke vermelde sink. Voorbeeld: "EHsink1, myjsonsink". Zie sinksConfig voor meer informatie.
type Identificeert de werkelijke provider van de metrische waarde.
class Identificeert samen met "counter"de specifieke metrische waarde binnen de naamruimte van de provider.
counter Identificeert samen met "class"de specifieke metrische waarde binnen de naamruimte van de provider.
telleraanduiding Identificeert de specifieke metrische gegevens in de naamruimte van Azure Monitor Metrics.
voorwaarde (Optioneel) Hiermee selecteert u een specifiek exemplaar van het object waarop de metrische waarde van toepassing is. Of selecteert de aggregatie voor alle exemplaren van dat object.
Samplerate Het IS 8601-interval waarmee de snelheid wordt ingesteld waarmee onbewerkte steekproeven voor deze metrische gegevens worden verzameld. Als de waarde niet is ingesteld, wordt het verzamelingsinterval ingesteld door de waarde van sampleRateInSeconds. De kortste ondersteunde samplefrequentie is 15 seconden (PT15S).
eenheid Definieert de eenheid voor de metrische waarde. Moet een van deze tekenreeksen zijn: "Count", "Bytes", "Seconds", "Percent", "CountPerSecond", , "BytesPerSecond". "Millisecond" Consumenten van de verzamelde gegevens verwachten dat de verzamelde gegevenswaarden overeenkomen met deze eenheid. LAD negeert dit veld.
displayName Het label dat moet worden gekoppeld aan de gegevens in metrische gegevens van Azure Monitor. Dit label bevindt zich in de taal die is opgegeven door de bijbehorende landinstelling. LAD negeert dit veld.

Het counterSpecifier is een willekeurige id. Consumenten van metrische gegevens, zoals de grafiek- en waarschuwingsfunctie van Azure Portal, gebruiken counterSpecifier ze als de 'sleutel' die een metrische waarde of een exemplaar van een metrische waarde identificeert.

Voor builtin metrische gegevens raden we waarden aan counterSpecifier die beginnen met /builtin/. Als u een specifiek exemplaar van een metrische waarde verzamelt, raden we u aan de id van het exemplaar aan de counterSpecifier waarde toe te voegen.

Hieronder volgen een aantal voorbeelden:

  • /builtin/Processor/PercentIdleTime - Niet-actieve tijd gemiddeld voor alle vCPU's
  • /builtin/Disk/FreeSpace(/mnt) - Vrije ruimte voor het /mnt bestandssysteem
  • /builtin/Disk/FreeSpace - Vrije ruimte gemiddeld voor alle gekoppelde bestandssystemen

LAD en Azure Portal verwachten niet dat de counterSpecifier waarde overeenkomt met een patroon. Wees consistent in de constructie counterSpecifier van waarden.

Wanneer u opgeeft performanceCounters, schrijft LAD altijd gegevens naar een tabel in Azure Storage. Dezelfde gegevens kunnen worden geschreven naar JSON-blobs of Event Hubs of beide. U kunt het opslaan van gegevens echter niet uitschakelen in een tabel.

Alle exemplaren van LAD die dezelfde naam en hetzelfde eindpunt voor het opslagaccount gebruiken, voegen hun metrische gegevens en logboeken toe aan dezelfde tabel. Als er te veel VIRTUELE machines naar dezelfde tabelpartitie schrijven, kan Azure schrijfbewerkingen naar die partitie beperken.

De eventVolume instelling zorgt ervoor dat vermeldingen worden verdeeld over 1 (klein), 10 (gemiddeld) of 100 (grote) partities. Normaal gesproken zijn middelgrote partities voldoende om verkeersbeperking te voorkomen.

De azure Monitor Metrics-functie van Azure Portal gebruikt de gegevens in deze tabel om grafieken te produceren of waarschuwingen te activeren. De tabelnaam is de samenvoeging van deze tekenreeksen:

  • WADMetrics
  • De "scheduledTransferPeriod" voor de geaggregeerde waarden die zijn opgeslagen in de tabel
  • P10DV2S
  • Een datum, in de vorm 'JJJJMMDD', die elke 10 dagen wordt gewijzigd

Voorbeelden zijn en WADMetricsPT1HP10DV2S20170410WADMetricsPT1MP10DV2S20170609.

syslogEvents

"syslogEvents": {
    "sinks": "",
    "syslogEventConfiguration": {
        "facilityName1": "minSeverity",
        "facilityName2": "minSeverity",
        ...
    }
}

De syslogEvents optionele sectie bepaalt de verzameling logboeken van syslog. Als de sectie wordt weggelaten, worden syslog-gebeurtenissen helemaal niet vastgelegd.

De syslogEventConfiguration verzameling heeft één vermelding voor elke syslog-faciliteit van belang. "NONE" Als minSeverity het om een bepaalde faciliteit gaat of als die faciliteit helemaal niet in het element wordt weergegeven, worden er geen gebeurtenissen van die faciliteit vastgelegd.

Element Weergegeven als
Putten Een door komma's gescheiden lijst met namen van sinks waarnaar afzonderlijke logboekgebeurtenissen worden gepubliceerd. Alle logboek gebeurtenissen die overeenkomen met de beperkingen in syslogEventConfiguration worden gepubliceerd naar elke vermelde sink. Voorbeeld: "EHforsyslog"
facilityName De naam van een syslog-faciliteit, zoals "LOG_USER" of "LOG\LOCAL0". Zie de sectie 'Faciliteit' van de syslog man-pagina voor meer informatie.
minSeverity Een syslog-ernstniveau, zoals "LOG_ERR" of "LOG_INFO". Zie de sectie Niveau van de syslog man-pagina voor meer informatie. De extensie legt gebeurtenissen vast die naar de faciliteit worden verzonden op of boven het opgegeven niveau.

Wanneer u opgeeft syslogEvents, schrijft LAD altijd gegevens naar een tabel in Azure Storage. Dezelfde gegevens kunnen worden geschreven naar JSON-blobs of Event Hubs of beide. U kunt het opslaan van gegevens echter niet uitschakelen in een tabel.

Het partitioneringsgedrag voor de tabel is hetzelfde als beschreven voor performanceCounters. De tabelnaam is de samenvoeging van deze tekenreeksen:

  • LinuxSyslog
  • Een datum, in de vorm 'JJJJMMDD', die elke 10 dagen wordt gewijzigd

Voorbeelden zijn en LinuxSyslog20170410LinuxSyslog20170609.

perfCfg

De perfCfg sectie is optioneel. Het bepaalt de uitvoering van willekeurige OMI-query's (Open Management Infrastructure).

"perfCfg": [
    {
        "namespace": "root/scx",
        "query": "SELECT PercentAvailableMemory, PercentUsedSwap FROM SCX_MemoryStatisticalInformation",
        "table": "LinuxOldMemory",
        "frequency": 300,
        "sinks": ""
    }
]
Element Weergegeven als
naamruimte (Optioneel) De OMI-naamruimte waarin de query moet worden uitgevoerd. Als dit niet is opgegeven, is "root/scx"de standaardwaarde . Het wordt geïmplementeerd door de platformoverschrijdende System Center-providers.
query De OMI-query die moet worden uitgevoerd.
table (Optioneel) De Azure Storage-tabel in het aangewezen opslagaccount. Zie Beveiligde instellingen voor meer informatie.
frequency (Optioneel) Het aantal seconden tussen queryuitvoeringen. De standaardwaarde is 300 (5 minuten). De minimumwaarde is 15 seconden.
Putten (Optioneel) Een door komma's gescheiden lijst met namen van meer sinks waarnaar onbewerkte metrische resultaten van steekproeven moeten worden gepubliceerd. Er wordt geen aggregatie van deze onbewerkte voorbeelden berekend door de extensie of door metrische gegevens van Azure Monitor.

"sinks" Of "table" beide moeten worden opgegeven.

fileLogs

De fileLogs sectie bepaalt de opname van logboekbestanden. LAD legt nieuwe tekstregels vast terwijl ze naar het bestand worden geschreven. Ze worden naar tabelrijen en/of opgegeven sinks (JsonBlob of EventHub) geschreven.

Notitie

De fileLogs worden vastgelegd door een subcomponent van LAD genaamd omsagent. Als u wilt verzamelen fileLogs, moet u ervoor zorgen dat de omsagent gebruiker leesmachtigingen heeft voor de bestanden die u opgeeft. De gebruiker moet ook machtigingen hebben voor het uitvoeren van alle mappen in het pad naar dat bestand. Nadat LAD is geïnstalleerd, kunt u de machtigingen controleren door deze uit te voeren sudo su omsagent -c 'cat /path/to/file'.

"fileLogs": [
    {
        "file": "/var/log/mydaemonlog",
        "table": "MyDaemonEvents",
        "sinks": ""
    }
]
Element Weergegeven als
bestand De volledige padnaam van het logboekbestand dat moet worden bekeken en vastgelegd. De padnaam moet één bestand een naam hebben. Een map kan geen naam geven of jokertekens bevatten. Het omsagent gebruikersaccount moet leestoegang hebben tot het bestandspad.
table (Optioneel) De Azure Storage-tabel waarin nieuwe regels uit de 'tail' van het bestand worden geschreven. De tabel moet zich in het aangewezen opslagaccount bevinden, zoals is opgegeven in de beveiligde configuratie.
Putten (Optioneel) Een door komma's gescheiden lijst met namen van meer sinks waarnaar logboeklijnen worden verzonden.

"sinks"Of"table", of beide, moet worden opgegeven.

Metrische gegevens die worden ondersteund door de ingebouwde provider

De builtin provider van metrische gegevens is een bron van metrische gegevens die het interessantst zijn voor een brede set gebruikers. Deze metrische gegevens worden onderverdeeld in vijf algemene klassen:

  • Processor
  • Geheugen
  • Netwerk
  • Bestandssysteem
  • Schijf

ingebouwde metrische gegevens voor de processorklasse

De processorklasse met metrische gegevens bevat informatie over het processorgebruik in de VIRTUELE machine. Wanneer percentages worden geaggregeerd, is het resultaat het gemiddelde voor alle CPU's.

Als in een VM met twee vCPU's één vCPU 100 procent bezet is en de andere 100 procent inactief is, is het gerapporteerd PercentIdleTime 50. Als elke vCPU gedurende dezelfde periode 50 procent bezet is, is het gerapporteerde resultaat ook 50. Wanneer in een vm met vier vCPU's één vCPU 100 procent bezet is en de andere niet actief zijn, is de gerapporteerde PercentIdleTime 75.

Prestatiemeteritem Betekenis
PercentIdleTime Percentage tijd tijdens het aggregatievenster waarop processors de kernel-inactiviteitslus hebben uitgevoerd
PercentProcessorTime Percentage tijd dat een niet-actieve thread wordt uitgevoerd
PercentIOWaitTime Percentage tijd dat wacht tot IO-bewerkingen zijn voltooid
PercentInterruptTime Percentage actieve hardware- of softwareonderbreken en DPC's (uitgestelde procedureaanroepen)
PercentUserTime Van niet-actieve tijd tijdens het aggregatievenster, het percentage tijd dat is besteed in de gebruikersmodus met normale prioriteit
PercentNiceTime Van niet-inactieve tijd, het percentage besteed aan verlaagde (mooie) prioriteit
PercentPrivilegedTime Van niet-inactieve tijd, het percentage dat is besteed in de bevoegde modus (kernel)

De eerste vier tellers moeten worden opgeteld tot 100 procent. De laatste drie tellers bedragen ook tot 100 procent. Deze drie tellers verdelen de som van PercentProcessorTime, PercentIOWaitTimeen PercentInterruptTime.

Als u één metrische waarde voor alle processors wilt aggregeren, stelt u deze in "condition": "IsAggregate=TRUE". Als u een metrische waarde wilt verkrijgen voor een specifieke processor, zoals de tweede logische processor van een VM met vier vCPU's, stelt u deze in "condition": "Name=\\"1\\"". Logische processornummers bevinden zich in het bereik [0..n-1].

ingebouwde metrische gegevens voor de geheugenklasse

De geheugenklasse van metrische gegevens bevat informatie over geheugengebruik, paginering en wisselen.

Prestatiemeteritem Betekenis
AvailableMemory Beschikbaar fysiek geheugen in MiB
PercentAvailableMemory Beschikbaar fysiek geheugen als percentage van het totale geheugen
UsedMemory Fysiek geheugen in gebruik (MiB)
PercentUsedMemory Fysiek geheugen gebruiken als percentage van het totale geheugen
PagesPerSec Totaal aantal paging (lezen/schrijven)
PagesReadPerSec Pagina's die worden gelezen uit de back-upopslag, zoals het wisselbestand, het programmabestand en het toegewezen bestand
PagesWrittenPerSec Pagina's die naar het backingarchief zijn geschreven, zoals een wisselbestand en een toegewezen bestand
AvailableSwap Ongebruikte wisselruimte (MiB)
PercentAvailableSwap Ongebruikte wisselruimte als percentage van de totale wisseling
UsedSwap Ingebruik wisselruimte (MiB)
PercentUsedSwap Ingebruik wisselruimte als percentage van de totale swap

Deze klasse met metrische gegevens heeft slechts één exemplaar. Het "condition" kenmerk heeft geen nuttige instellingen en moet worden weggelaten.

ingebouwde metrische gegevens voor de netwerkklasse

De netwerkklasse metrische gegevens bevat informatie over de netwerkactiviteit op een afzonderlijke netwerkinterface sinds het opstarten.

LAD geeft geen metrische bandbreedtegegevens weer. U kunt deze metrische gegevens ophalen uit metrische gegevens van de host.

Prestatiemeteritem Betekenis
BytesTransmitted Totaal aantal verzonden bytes sinds het opstarten
BytesReceived Totaal aantal ontvangen bytes sinds het opstarten
BytesTotal Totaal aantal verzonden of ontvangen bytes sinds het opstarten
Pakketten verzonden Totaal aantal verzonden pakketten sinds het opstarten
PacketsReceived Totaal aantal pakketten dat is ontvangen sinds het opstarten
TotalRxErrors Aantal ontvangstfouten sinds het opstarten
TotalTxErrors Aantal verzendfouten sinds het opstarten
TotalCollisions Aantal conflicten gemeld door de netwerkpoorten sinds het opstarten

Hoewel de netwerkklasse is geïnexempeerd, biedt LAD geen ondersteuning voor het vastleggen van metrische netwerkgegevens die zijn geaggregeerd op alle netwerkapparaten. Als u de metrische gegevens voor een specifieke interface, zoals eth0, wilt verkrijgen, stelt u in "condition": "InstanceID=\\"eth0\\"".

ingebouwde metrische gegevens voor de bestandssysteemklasse

De bestandssysteemklasse metrische gegevens bevat informatie over het gebruik van het bestandssysteem. Absolute waarden en percentagewaarden worden gerapporteerd omdat ze worden weergegeven aan een gewone gebruiker (geen hoofdmap).

Prestatiemeteritem Betekenis
Freespace Beschikbare schijfruimte in bytes
UsedSpace Gebruikte schijfruimte in bytes
PercentFreeSpace Percentage vrije ruimte
PercentUsedSpace Percentage gebruikte ruimte
PercentFreeInodes Percentage ongebruikte indexknooppunten (inodes)
PercentUsedInodes Percentage toegewezen (in gebruik) inodes opgeteld in alle bestandssystemen
BytesReadPerSecond Bytes gelezen per seconde
BytesWrittenPerSecond Geschreven bytes per seconde
BytesPerSecond Bytes gelezen of geschreven per seconde
ReadsPerSecond Leesbewerkingen per seconde
WritesPerSecond Schrijfbewerkingen per seconde
TransfersPerSecond Lees- of schrijfbewerkingen per seconde

U kunt geaggregeerde waarden ophalen in alle bestandssystemen door deze in te stellen "condition": "IsAggregate=True". Waarden ophalen voor een specifiek gekoppeld bestandssysteem, zoals "/mnt", door deze in te stellen "condition": 'Name="/mnt"'.

Notitie

Als u in Azure Portal werkt in plaats van JSON, is Name='/mnt'het formulier voorwaardeveld.

ingebouwde metrische gegevens voor de schijfklasse

De schijfklasse met metrische gegevens bevat informatie over het gebruik van schijfapparaten. Deze statistieken zijn van toepassing op het hele station.

Wanneer een apparaat meerdere bestandssystemen heeft, worden de tellers voor dat apparaat, effectief, geaggregeerd in alle bestandssystemen.

Prestatiemeteritem Betekenis
ReadsPerSecond Leesbewerkingen per seconde
WritesPerSecond Schrijfbewerkingen per seconde
TransfersPerSecond Totaal aantal bewerkingen per seconde
AverageReadTime Gemiddelde seconden per leesbewerking
AverageWriteTime Gemiddelde seconden per schrijfbewerking
AverageTransferTime Gemiddelde seconden per bewerking
AverageDiskQueueLength Gemiddeld aantal schijfbewerkingen in de wachtrij
ReadBytesPerSecond Aantal bytes gelezen per seconde
WriteBytesPerSecond Aantal geschreven bytes per seconde
BytesPerSecond Aantal bytes gelezen of geschreven per seconde

U kunt geaggregeerde waarden op alle schijven ophalen door de instelling in te stellen "condition": "IsAggregate=True". Als u informatie wilt ophalen voor een specifiek apparaat (bijvoorbeeld /dev/sdf1), stelt u in "condition": "Name=\\"/dev/sdf1\\"".

LAD 3.0 installeren en configureren

Azure-CLI

Als uw beveiligde instellingen zich in het bestand Beveiligd bevinden Instellingen.json en uw openbare configuratiegegevens openbaar zijn Instellingen.json voert u de volgende opdracht uit.

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

Bij de opdracht wordt ervan uitgegaan dat u de Azure Resource Manager-modus van de Azure CLI gebruikt. Als u LAD wilt configureren voor vm's van het klassieke implementatiemodel, schakelt u over naar de asm-modus (azure config mode asm) en laat u de naam van de resourcegroep weg in de opdracht.

Zie de platformoverschrijdende CLI-documentatie voor meer informatie.

Powershell

Als uw beveiligde instellingen zich in de $protectedSettings variabele bevinden en uw openbare configuratiegegevens zich in de $publicSettings variabele bevinden, voert u deze opdracht uit:

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

Voorbeeld van LAD 3.0-configuratie

Op basis van de voorgaande definities biedt deze sectie een voorbeeld-LAD 3.0-extensieconfiguratie en een aantal uitleg. Als u dit voorbeeld wilt toepassen op uw case, gebruikt u de naam van uw eigen opslagaccount, het SAS-token van het account en de SAS-tokens van Event Hubs.

Notitie

Afhankelijk van of u de Azure CLI of PowerShell gebruikt om LAD te installeren, verschilt de methode voor het leveren van openbare en beveiligde instellingen:

  • Als u de Azure CLI gebruikt, slaat u de volgende instellingen op in Protected Instellingen.json en Public Instellingen.json om de voorgaande voorbeeldopdracht te gebruiken.
  • Als u PowerShell gebruikt, slaat u de volgende instellingen op $protectedSettings en $publicSettings voert u deze uit $protectedSettings = '{ ... }'.

Beveiligde instellingen

De beveiligde instellingen configureren:

  • Een opslagaccount.
  • Een overeenkomend SAS-token voor het account.
  • Verschillende sinks (JsonBlob of EventHub met SAS-tokens).
{
  "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"
      }
    ]
  }
}

Openbare instellingen

De openbare instellingen zorgen ervoor dat LAD het volgende doet:

  • Upload metrische gegevens over processortijd en metrische gegevens over gebruikte schijfruimte naar de WADMetrics* tabel.
  • Upload berichten van syslog-faciliteit "user" en ernst "info" naar de LinuxSyslog* tabel.
  • Upload onbewerkte OMI-queryresultaten (PercentProcessorTime en PercentIdleTime) naar de benoemde LinuxCPU tabel.
  • Toegevoegde regels in het bestand /var/log/myladtestlog uploaden naar de MyLadTestLog tabel.

In elk geval worden gegevens ook geüpload naar:

  • Azure Blob Storage. De containernaam is zoals gedefinieerd in de JsonBlob sink.
  • Het Event Hubs-eindpunt, zoals opgegeven in de 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": "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"
    }
  ]
}

De resourceId in de configuratie moet overeenkomen met die van de virtuele machine of de virtuele-machineschaalset.

  • Grafieken en waarschuwingen voor metrische gegevens van het Azure-platform kennen de resourceId VM waaraan u werkt. Er wordt verwacht dat de gegevens voor uw VIRTUELE machine worden gevonden met behulp van de resourceId opzoeksleutel.
  • Als u Automatische schaalaanpassing van Azure gebruikt, moet de resourceId in de configuratie voor automatische schaalaanpassing overeenkomen met de resourceId configuratie die door LAD wordt gebruikt.
  • Het resourceId is ingebouwd in de namen van JSON-blobs die zijn geschreven door LAD.

Uw gegevens weergeven

Gebruik Azure Portal om prestatiegegevens weer te geven of om waarschuwingen in te stellen:

Schermopname van Azure Portal. De gebruikte schijfruimte voor metrische gegevens is geselecteerd. Het resulterende diagram wordt weergegeven.

De performanceCounters gegevens worden altijd opgeslagen in een Azure Storage-tabel. Azure Storage-API's zijn beschikbaar voor veel talen en platforms.

Gegevens die naar JsonBlob sinks worden verzonden, worden opgeslagen in blobs in het opslagaccount met de naam in de beveiligde instellingen. U kunt de blobgegevens gebruiken met behulp van azure Blob Storage-API's.

U kunt ook deze UI-hulpprogramma's gebruiken om toegang te krijgen tot de gegevens in Azure Storage:

In de volgende schermopname van een Azure Storage Explorer-sessie ziet u de gegenereerde Azure Storage-tabellen en -containers van een correct geconfigureerde LAD 3.0-extensie op een test-VM. De installatiekopie komt niet exact overeen met de LAD 3.0-voorbeeldconfiguratie.

Schermopname van Azure Storage Explorer.

Zie de relevante Documentatie voor Event Hubs voor meer informatie over het gebruik van berichten die zijn gepubliceerd naar een Event Hubs-eindpunt.

Volgende stappen