Diagnostische Linux-extensie 3.0 gebruiken om metrische gegevens en logboeken te bewaken
Let op
Dit artikel verwijst naar CentOS, een Linux-distributie met de EOL-status (End Of Life). 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:
Voer de volgende opdracht uit om bestaande aliassen te verwijderen.
sudo update-alternatives --remove-all python
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.
- Geef op vm's van het klassieke implementatiemodel versie
- 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 voorbuiltin
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:
- Selecteer het opslagaccount voor algemeen gebruik waarnaar u de extensie wilt schrijven.
- Selecteer in het menu aan de linkerkant onder Instellingen de handtekening voor gedeelde toegang.
- Maak de selecties zoals eerder beschreven.
- Selecteer SAS genereren.
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
writer
een 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
OfperformanceCounters
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 scheduledTransferPeriod op. |
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 WADMetricsPT1HP10DV2S20170410
WADMetricsPT1MP10DV2S20170609
.
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 met de naam LinuxSyslogVer2v0 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.
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.
teller | 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
, PercentIOWaitTime
en 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.
teller | 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.
teller | 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).
teller | 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.
teller | 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 ProtectedSettings.json bevinden en uw openbare configuratiegegevens zich in PublicSettings.json bevinden, 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 ProtectedSettings.json en PublicSettings.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
ofEventHub
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 deLinuxSyslog*
tabel. - Upload onbewerkte OMI-queryresultaten (
PercentProcessorTime
enPercentIdleTime
) naar de benoemdeLinuxCPU
tabel. - Toegevoegde regels in het bestand
/var/log/myladtestlog
uploaden naar deMyLadTestLog
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 deresourceId
opzoeksleutel. - Als u Automatische schaalaanpassing van Azure gebruikt, moet de
resourceId
in de configuratie voor automatische schaalaanpassing overeenkomen met deresourceId
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:
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:
- Visual Studio Server Explorer
- Azure-opslagverkenner
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.
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
- Maak in Azure Monitor waarschuwingen voor de metrische gegevens die u verzamelt.
- Bewakingsgrafieken maken voor uw metrische gegevens.
- Maak een virtuele-machineschaalset met behulp van uw metrische gegevens om automatisch schalen te beheren.