Monitorování metrik a protokolů pomocí diagnostického rozšíření Linuxu 3.0
Upozornění
Tento článek odkazuje na CentOS, což je linuxová distribuce se stavem Konec životnosti (EOL). Zvažte své použití a odpovídajícím způsobem naplánujte. Další informace najdete v doprovodných materiálech CentOS End Of Life.
Tento dokument popisuje verzi 3.0 a novější rozšíření diagnostiky Linuxu (LAD).
Důležité
Informace o verzi 2.3 a starších najdete v tématu Monitorování výkonu a diagnostických dat virtuálního počítače s Linuxem.
Úvod
Diagnostické rozšíření Linuxu pomáhá uživateli monitorovat stav virtuálního počítače s Linuxem, který běží v Microsoft Azure. Má následující možnosti:
- Shromažďuje metriky výkonu systému z virtuálního počítače a ukládá je do konkrétní tabulky v určeném účtu úložiště.
- Načte události protokolu z syslogu a uloží je do konkrétní tabulky v určeném účtu úložiště.
- Umožňuje uživatelům přizpůsobit metriky dat, které se shromažďují a nahrávají.
- Umožňuje uživatelům přizpůsobit zařízení syslogu a úrovně závažnosti událostí, které se shromažďují a nahrávají.
- Umožňuje uživatelům nahrát zadané soubory protokolů do určené tabulky úložiště.
- Podporuje odesílání metrik a událostí protokolu do libovolných koncových bodů služby Azure Event Hubs a objektů blob ve formátu JSON v určeném účtu úložiště.
Toto rozšíření funguje s oběma modely nasazení Azure.
Instalace rozšíření na virtuální počítač
Rozšíření můžete povolit pomocí rutin Azure PowerShellu, skriptů Azure CLI, šablon Azure Resource Monitoru (šablon ARM) nebo webu Azure Portal. Další informace najdete v tématu Funkce rozšíření.
Poznámka:
Některé komponenty rozšíření virtuálního počítače LAD se také dodávají v rozšíření log Analytics pro virtuální počítače. Kvůli této architektuře můžou nastat konflikty, pokud se obě rozšíření vytvoří instance ve stejné šabloně ARM.
Abyste se vyhnuli konfliktům v době instalace, použijte direktivu dependsOn
k zajištění postupné instalace rozšíření. Rozšíření je možné nainstalovat v libovolném pořadí.
Tyto pokyny k instalaci a ukázkovou konfiguraci ke stažení pro konfiguraci LAD 3.0 pro:
- Zachyťte a uložte stejné metriky jako v LAD 2.3.
- Zachyťte užitečnou sadu metrik systému souborů. Tato funkce je v LAD 3.0 nová.
- Zachyťte výchozí kolekci syslog, kterou povolila LAD 2.3.
- Povolte prostředí webu Azure Portal pro grafy a upozorňování na metriky virtuálních počítačů.
Konfigurace ke stažení je jen příkladem. Upravte ho tak, aby vyhovoval vašim potřebám.
Požadavky
- Agent Azure Linux verze 2.2.0 nebo novější. Většina imagí galerie virtuálních počítačů Azure s Linuxem zahrnuje verzi 2.2.7 nebo novější. Spuštěním potvrďte
/usr/sbin/waagent -version
verzi nainstalovanou na virtuálním počítači. Pokud je na virtuálním počítači starší verze, aktualizujte agenta hosta. - Rozhraní příkazového řádku Azure. V případě potřeby nastavte prostředí Azure CLI na vašem počítači.
- Příkaz wget. Pokud ho ještě nemáte, nainstalujte ho pomocí odpovídajícího správce balíčků.
- Existující předplatné Azure.
- Existující účet úložiště pro obecné účely pro ukládání dat. Účty úložiště pro obecné účely musí podporovat úložiště tabulek. Účet úložiště objektů blob nebude fungovat.
- Python 2.
Požadavek Pythonu
Rozšíření linuxové diagnostiky vyžaduje Python 2. Pokud váš virtuální počítač používá distribuci, která ve výchozím nastavení neobsahuje Python 2, musíte ho nainstalovat. Následující ukázkové příkazy nainstalují Python 2 do různých distribucí:
- Red Hat, CentOS, Oracle:
yum install -y python2
- Ubuntu, Debian:
apt-get install -y python2
- SUSE:
zypper install -y python2
python2
Spustitelný soubor musí být aliasován pythonu. Tady je jedna metoda nastavení tohoto aliasu:
Spuštěním následujícího příkazu odeberte všechny existující aliasy.
sudo update-alternatives --remove-all python
Spuštěním následujícího příkazu vytvořte alias.
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
Instalace ukázky
Ukázková konfigurace stažená v následujících příkladech shromažďuje sadu standardních dat a odesílá je do úložiště tabulek. Adresa URL ukázkové konfigurace a jejího obsahu se může změnit.
Ve většině případů byste si měli stáhnout kopii souboru JSON nastavení portálu a přizpůsobit ho podle svých potřeb. Potom použijte šablony nebo vlastní automatizaci, abyste pokaždé použili přizpůsobenou verzi konfiguračního souboru a nestahovali ji z adresy URL.
Poznámka:
Pro následující ukázky před spuštěním kódu vyplňte správné hodnoty proměnných v první části.
Ukázka Azure CLI
# 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
Ukázka Azure CLI pro instalaci LAD 3.0 do instance škálovací sady virtuálních počítačů
#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
Ukázka PowerShellu
$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
Aktualizace nastavení rozšíření
Po změně chráněného nebo veřejného nastavení je nasaďte na virtuální počítač spuštěním stejného příkazu. Pokud se nastavení změnilo, aktualizace se odešlou do rozšíření. LaD znovu načte konfiguraci a restartuje se.
Migrace z předchozích verzí rozšíření
Nejnovější verze rozšíření je 4.0.
Důležité
Toto rozšíření zavádí zásadní změny konfigurace. Jedna taková změna zlepšila zabezpečení rozšíření, takže zpětnou kompatibilitu s 2.x nebylo možné zachovat. Vydavatel rozšíření pro toto rozšíření se také liší od vydavatele pro verze 2.x.
Pokud chcete migrovat z verze 2.x na novou verzi, nejprve odinstalujte staré rozšíření (pod názvem starého vydavatele). Pak nainstalujte verzi 3.
Doporučení:
- Nainstalujte rozšíření s povoleným automatickým upgradem podverze.
- Na virtuálních počítačích modelu nasazení Classic zadejte verzi
3.*
, pokud rozšíření instalujete prostřednictvím Azure XPLAT CLI nebo PowerShellu. - Na virtuálních počítačích modelu nasazení Azure Resource Manageru je součástí
"autoUpgradeMinorVersion": true
šablony nasazení virtuálního počítače.
- Na virtuálních počítačích modelu nasazení Classic zadejte verzi
- Pro LAD 3.0 použijte nový nebo jiný účet úložiště. LAD 2.3 a LAD 3.0 mají několik malých nekompatibility, které usnadňují sdílení účtu:
- LAD 3.0 ukládá události syslogu do tabulky, která má jiný název.
- Řetězce
counterSpecifier
probuiltin
metriky se liší v LAD 3.0.
Chráněná nastavení
Tato sada informací o konfiguraci obsahuje citlivé informace, které by měly být chráněny před veřejným zobrazením. Obsahuje například přihlašovací údaje k úložišti. Tato nastavení jsou přenášena a uložena rozšířením v šifrované podobě.
{
"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": { ... }
}
Pokud chcete získat token SAS v rámci šablony ARM, použijte listAccountSas
funkci. Příklad šablony najdete v příkladu funkce List.
Požadovaný token SAS můžete vytvořit prostřednictvím webu Azure Portal:
- Vyberte účet úložiště pro obecné účely, do kterého chcete rozšíření zapisovat.
- V nabídce vlevo v části Nastavení vyberte Sdílený přístupový podpis.
- Proveďte výběry podle předchozího popisu.
- Vyberte Vygenerovat SAS.
Zkopírujte vygenerovaný SAS do storageAccountSasToken
pole. Odeberte úvodní otazník (?).
sinksConfig
"sinksConfig": {
"sink": [
{
"name": "sinkname",
"type": "sinktype",
...
},
...
]
},
Volitelný sinksConfig
oddíl definuje další cíle, do kterých rozšíření odesílá informace, které shromažďuje. Pole sink
obsahuje objekt pro každou další datovou jímku. Atribut type
určuje ostatní atributy v objektu.
Element (Prvek) | Hodnota |
---|---|
name | Řetězec, který odkazuje na tuto jímku jinde v konfiguraci rozšíření. |
type | Typ definované jímky. Určuje ostatní hodnoty (pokud existuje) v instancích tohoto typu. |
LAD verze 3.0 podporuje dva typy jímky: EventHub
a JsonBlob
.
Jímka EventHubu
"sink": [
{
"name": "sinkname",
"type": "EventHub",
"sasURL": "https SAS URL"
},
...
]
Položka "sasURL"
obsahuje úplnou adresu URL, včetně tokenu SAS, pro centrum událostí, do kterého se mají data publikovat. LaD vyžaduje SAS, aby pojmenoval zásadu, která umožňuje odeslat deklaraci identity.
Příklad:
- Vytvořte obor názvů služby Azure Event Hubs s názvem
contosohub
. - Vytvořte centrum událostí v oboru názvů s názvem
syslogmsgs
. - Vytvořte zásadu sdíleného přístupu v centru událostí, která umožňuje odeslat deklaraci identity. Pojmenujte zásadu
writer
.
Pokud je sas dobrý až do půlnoci UTC 1. ledna 2018, může být hodnota sasURL podobná tomuto příkladu:
https://contosohub.servicebus.windows.net/syslogmsgs?sr=contosohub.servicebus.windows.net%2fsyslogmsgs&sig=xxxxxxxxxxxxxxxxxxxxxxxxx&se=1514764800&skn=writer
Další informace o generování a načítání informací o tokenech SAS pro službu Event Hubs najdete v tématu Generování tokenu SAS.
Jímka JsonBlob
"sink": [
{
"name": "sinkname",
"type": "JsonBlob"
},
...
]
Data směrovaná do JsonBlob
jímky se ukládají v objektech blob ve službě Azure Storage. Každá instance LAD vytvoří objekt blob každou hodinu pro každý název jímky. Každý objekt blob vždy obsahuje syntakticky platné pole objektů JSON. Do pole se atomicky přidají nové položky.
Objekty blob se ukládají do kontejneru, který má stejný název jako jímka. Pravidla služby Azure Storage pro názvy kontejnerů objektů blob platí pro názvy JsonBlob
jímek. Název musí obsahovat 3 až 63 malých alfanumerických znaků ASCII nebo pomlček.
Veřejná nastavení
Struktura veřejných nastavení obsahuje různé bloky nastavení, které řídí informace, které rozšíření shromažďuje. Každé nastavení je volitelné. Pokud zadáte ladCfg
, musíte také zadat StorageAccount
.
{
"ladCfg": { ... },
"perfCfg": { ... },
"fileLogs": { ... },
"StorageAccount": "the storage account to receive data",
"mdsdHttpProxy" : ""
}
Element (Prvek) | Hodnota |
---|---|
StorageAccount | Název účtu úložiště, ve kterém jsou data zapsaná rozšířením. Musí to být název zadaný v chráněných nastaveních. |
mdsdHttpProxy | (Volitelné) Stejné jako v chráněných nastaveních. Veřejná hodnota se přepíše privátní hodnotou, pokud je nastavená. V chráněných nastaveních umístěte nastavení proxy serveru, která obsahují tajný klíč, například heslo. |
Následující části obsahují podrobnosti o zbývajících prvcích.
ladCfg
"ladCfg": {
"diagnosticMonitorConfiguration": {
"eventVolume": "Medium",
"metrics": { ... },
"performanceCounters": { ... },
"syslogEvents": { ... }
},
"sampleRateInSeconds": 15
}
Struktura ladCfg
je volitelná. Řídí shromažďování metrik a protokolů, které se doručují do služby Metriky služby Azure Monitor a do jiných jímek dat. Musíte zadat:
- Buď
performanceCounters
nebosyslogEvents
obojí. - Struktura
metrics
.
Element (Prvek) | Hodnota |
---|---|
eventVolume | (Volitelné) Určuje počet oddílů vytvořených v tabulce úložiště. Musí to být "Large" , "Medium" nebo "Small" . Pokud není zadaná hodnota, výchozí hodnota je "Medium" . |
sampleRateInSeconds | (Volitelné) Výchozí interval mezi kolekcí nezpracovaných (neagregovaných) metrik. Nejmenší podporovaná vzorkovací frekvence je 15 sekund. Pokud není zadaná hodnota, výchozí hodnota je 15 . |
metriky
"metrics": {
"resourceId": "/subscriptions/...",
"metricAggregation" : [
{ "scheduledTransferPeriod" : "PT1H" },
{ "scheduledTransferPeriod" : "PT5M" }
]
}
Element (Prvek) | Hodnota |
---|---|
resourceId | ID prostředku Azure Resource Manageru virtuálního počítače nebo škálovací sady, do které virtuální počítač patří. Toto nastavení musí být také zadáno, pokud se v konfiguraci používá nějaká JsonBlob jímka. |
scheduledTransferPeriod | Frekvence, s jakou se agregované metriky počítají a přenesou do metrik služby Azure Monitor. Frekvence se vyjadřuje jako časový interval IS 8601. Nejmenší doba přenosu je 60 sekund, tj. PT1M. Zadejte alespoň jeden scheduledTransferPeriod . |
Vzorky metrik zadaných v performanceCounters
této části se shromažďují každých 15 sekund nebo při vzorkovací frekvenci explicitně definované pro čítač. Pokud se zobrazí více scheduledTransferPeriod
frekvencí, jako v příkladu, každá agregace se vypočítá nezávisle.
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"
}
]
}
]
}
Volitelný performanceCounters
oddíl řídí kolekci metrik. Nezpracované vzorky se agregují pro každou z nich scheduledTransferPeriod
, aby vznikly tyto hodnoty:
- Střední hodnota
- Minimum
- Maximum
- Hodnota naposledy shromážděná
- Počet nezpracovaných vzorků použitých k výpočtu agregace
Element (Prvek) | Hodnota |
---|---|
potápí | (Volitelné) Čárkami oddělený seznam názvů jímek, do kterých LAD odesílá agregované výsledky metrik. Všechny agregované metriky se publikují do každé uvedené jímky. Příklad: "EHsink1, myjsonsink" . Další informace najdete na webu sinksConfig . |
type | Identifikuje skutečného poskytovatele metriky. |
class | Společně s "counter" tím identifikuje konkrétní metriku v oboru názvů poskytovatele. |
counter | Společně s "class" tím identifikuje konkrétní metriku v oboru názvů poskytovatele. |
counterSpecifier | Identifikuje konkrétní metriku v rámci oboru názvů metrik služby Azure Monitor. |
condition | (Volitelné) Vybere konkrétní instanci objektu, na který se metrika vztahuje. Nebo vybere agregaci napříč všemi instancemi daného objektu. |
sampleRate | Interval IS 8601, který nastavuje rychlost shromažďování nezpracovaných vzorků pro tuto metriku. Pokud hodnota není nastavená, nastaví se interval kolekce hodnotou sampleRateInSeconds . Nejkratší podporovaná vzorkovací frekvence je 15 sekund (PT15S). |
unit | Definuje jednotku pro metriku. Měl by být jedním z těchto řetězců: "Count" , "Bytes" , "Seconds" , "Percent" , "CountPerSecond" , "BytesPerSecond" . "Millisecond" Spotřebitelé shromážděných dat očekávají, že shromážděné hodnoty dat budou odpovídat této lekci. LaD toto pole ignoruje. |
displayName | Popisek, který se má připojit k datům v metrikách služby Azure Monitor. Tento popisek je v jazyce určeném přidruženým nastavením národního prostředí. LaD toto pole ignoruje. |
Jedná se counterSpecifier
o libovolný identifikátor. Uživatelé metrik, jako je například funkce grafů na webu Azure Portal a upozorňování, používají counterSpecifier
jako "klíč", který identifikuje metriku nebo instanci metriky.
Pro builtin
metriky doporučujeme counterSpecifier
hodnoty, které začínají /builtin/
. Pokud shromažďujete konkrétní instanci metriky, doporučujeme k hodnotě counterSpecifier
připojit identifikátor instance.
Několik příkladů:
/builtin/Processor/PercentIdleTime
– Průměrná doba nečinnosti napříč všemi virtuálními procesory/builtin/Disk/FreeSpace(/mnt)
- Volné místo pro/mnt
systém souborů/builtin/Disk/FreeSpace
- Volné místo v průměru napříč všemi připojenými systémy souborů
LaD a Azure Portal neočekávají, že hodnota bude odpovídat žádnému counterSpecifier
vzoru. Buďte konzistentní v tom, jak vytváříte counterSpecifier
hodnoty.
Při zadávání performanceCounters
funkce LAD vždy zapisuje data do tabulky ve službě Azure Storage. Stejná data je možné zapsat do objektů blob JSON nebo do služby Event Hubs nebo do obou. Ukládání dat do tabulky ale nejde zakázat.
Všechny instance LAD, které používají stejný název účtu úložiště a koncový bod, přidávají metriky a protokoly do stejné tabulky. Pokud do stejného oddílu tabulky zapisuje příliš mnoho virtuálních počítačů, Azure může omezovat zápisy do daného oddílu.
Nastavení eventVolume
způsobí rozložení položek mezi 1 (malé), 10 (střední) nebo 100 (velké) oddíly. Střední oddíly jsou obvykle dostatečné, aby se zabránilo omezování provozu.
Funkce Metriky služby Azure Monitor na webu Azure Portal používá data v této tabulce k vytváření grafů nebo k aktivaci upozornění. Název tabulky je zřetězení těchto řetězců:
WADMetrics
- Agregované
"scheduledTransferPeriod"
hodnoty uložené v tabulce P10DV2S
- Datum ve tvaru "YYYYMMDD", které se mění každých 10 dnů
Příklady zahrnují WADMetricsPT1HP10DV2S20170410
a WADMetricsPT1MP10DV2S20170609
.
SyslogEvents
"syslogEvents": {
"sinks": "",
"syslogEventConfiguration": {
"facilityName1": "minSeverity",
"facilityName2": "minSeverity",
...
}
}
Volitelný syslogEvents
oddíl řídí shromažďování událostí protokolu z syslogu. Pokud oddíl vynecháte, události syslogu se vůbec nezachytí.
Kolekce syslogEventConfiguration
má jednu položku pro každou zařízení syslog, která je zajímavá. Pokud minSeverity
se jedná "NONE"
o konkrétní zařízení nebo pokud se toto zařízení vůbec nezobrazuje v prvku, nebudou zachyceny žádné události z tohoto zařízení.
Element (Prvek) | Hodnota |
---|---|
potápí | Čárkami oddělený seznam názvů jímek, do kterých se publikují jednotlivé události protokolu. Všechny události protokolu, které odpovídají omezením, syslogEventConfiguration se publikují do každé uvedené jímky. Příklad: "EHforsyslog" |
facilityName | Název zařízení syslogu, například "LOG_USER" "LOG\LOCAL0" . Další informace naleznete v části "Zařízení" na stránce správce syslogu. |
minSeverity | Úroveň závažnosti syslogu, například "LOG_ERR" "LOG_INFO" nebo . Další informace naleznete v části "Úroveň" na stránce správce syslogu. Rozšíření zaznamenává události odeslané do zařízení na nebo nad zadanou úrovní. |
Když zadáte syslogEvents
, LAD vždy zapisuje data do tabulky s názvem LinuxSyslogVer2v0 v Azure Storage. Stejná data je možné zapsat do objektů blob JSON nebo do služby Event Hubs nebo do obou. Ukládání dat do tabulky ale nejde zakázat.
perfCfg
Oddíl perfCfg
je nepovinný. Řídí spouštění libovolných dotazů OMI (Open Management Infrastructure).
"perfCfg": [
{
"namespace": "root/scx",
"query": "SELECT PercentAvailableMemory, PercentUsedSwap FROM SCX_MemoryStatisticalInformation",
"table": "LinuxOldMemory",
"frequency": 300,
"sinks": ""
}
]
Element (Prvek) | Hodnota |
---|---|
namespace | (Volitelné) Obor názvů OMI, ve kterém má být dotaz spuštěn. Pokud není zadáno, výchozí hodnota je "root/scx" . Implementují ho poskytovatelé multiplatformních služeb system Center. |
query | Dotaz OMI, který se má spustit. |
table | (Volitelné) Tabulka Azure Storage v určeném účtu úložiště. Další informace naleznete v tématu Chráněná nastavení. |
frequency | (Volitelné) Počet sekund mezi spuštěním dotazu. Výchozí hodnota je 300 (5 minut). Minimální hodnota je 15 sekund. |
potápí | (Volitelné) Čárkami oddělený seznam názvů více jímek, do kterých by se měly publikovat nezpracované výsledky metriky vzorku. Rozšíření ani metriky služby Azure Monitor nevypočítá žádnou agregaci těchto nezpracovaných vzorků. |
Musí "table"
být zadána buď nebo "sinks"
obě.
fileLogs
Oddíl fileLogs
řídí zachytávání souborů protokolu. LaD zachycuje nové textové řádky při jejich zápisu do souboru. Zapisuje je do řádků tabulky a/nebo do jakýchkoli zadaných jímek (JsonBlob
nebo EventHub
).
Poznámka:
Jsou fileLogs
zachyceny podkomponentem LAD volaného omsagent
. Chcete-li shromažďovat fileLogs
, ujistěte se, že omsagent
uživatel má oprávnění ke čtení souborů, které zadáte. Uživatel musí mít také oprávnění ke spuštění všech adresářů v cestě k danému souboru. Po instalaci LAD můžete zkontrolovat oprávnění spuštěním sudo su omsagent -c 'cat /path/to/file'
.
"fileLogs": [
{
"file": "/var/log/mydaemonlog",
"table": "MyDaemonEvents",
"sinks": ""
}
]
Element (Prvek) | Hodnota |
---|---|
soubor | Úplný název cesty k souboru protokolu, který se má sledovat a zachytit. Název cesty musí pojmenovat jeden soubor. Adresář nemůže pojmenovat ani obsahovat zástupné znaky. Uživatelský omsagent účet musí mít přístup ke čtení cesty k souboru. |
table | (Volitelné) Tabulka Azure Storage, do které se zapisují nové řádky z "chvostu" souboru. Tabulka musí být v určeném účtu úložiště, jak je uvedeno v chráněné konfiguraci. |
potápí | (Volitelné) Čárkami oddělený seznam názvů více jímek, do kterých se odesílají řádky protokolu. |
Je třeba zadat buď "table"
nebo "sinks"
, nebo obojí.
Metriky podporované integrovaným poskytovatelem
Poskytovatel builtin
metrik je zdrojem metrik, které jsou pro širokou škálu uživatelů nejzajímavější. Tyto metriky spadají do pěti širokých tříd:
- Procesor
- Memory (Paměť)
- Síť
- Systém souborů
- Disk
builtin metrics for the Processor class
Třída procesoru metrik poskytuje informace o využití procesoru na virtuálním počítači. Při agregaci procent je výsledkem průměr ve všech procesorech.
Pokud je na virtuálním počítači se dvěma virtuálními procesory 100 % zaneprázdněný a druhý je 100 % nečinný, hlášeno PercentIdleTime
je 50. Pokud je každý virtuální procesor ve stejném období zaneprázdněný 50 %, bude hlášený výsledek také 50. Když je jeden virtuální procesor 100 % zaneprázdněný a ostatní jsou nečinní, hlášeno PercentIdleTime
je 75 v případě čtyř virtuálních procesorů.
Čítač | Význam |
---|---|
PercentIdleTime | Procento času během agregačního okna, ve které procesory spustily nečinnou smyčku jádra |
PercentProcessorTime | Procento času spuštění nečinného vlákna |
PercentIOWaitTime | Procento času čekání na dokončení vstupně-výstupních operací |
PercentInterruptTime | Procento času přerušení hardwaru nebo softwaru a dpcs (odložená volání procedur) |
PercentUserTime | Nečinný čas během agregačního okna, procento času stráveného v uživatelském režimu v normální prioritě |
PercentNiceTime | Nečinný čas, procento strávené nižší (pěknou) prioritou |
PercentPrivilegedTime | Nečinný čas, procento strávené v režimu privilegovaného (jádra) |
První čtyři čítače by se měly sčítat na 100 procent. Poslední tři čítače se také sčítají na 100 procent. Tyto tři čítače rozdělují součet PercentProcessorTime
, PercentIOWaitTime
a PercentInterruptTime
.
Pokud chcete agregovat jednu metriku napříč všemi procesory, nastavte "condition": "IsAggregate=TRUE"
. Pokud chcete získat metriku pro konkrétní procesor, například druhý logický procesor virtuálního počítače se čtyřmi virtuálními procesory, nastavte "condition": "Name=\\"1\\""
. Čísla logických procesorů jsou v rozsahu [0..n-1]
.
předdefinované metriky pro třídu Memory
Třída Paměti metrik poskytuje informace o využití paměti, stránkování a prohození.
Čítač | Význam |
---|---|
AvailableMemory | Dostupná fyzická paměť v MiB |
PercentAvailableMemory | Dostupná fyzická paměť jako procento celkové paměti |
UsedMemory | Fyzická paměť v použití (MiB) |
PercentUsedMemory | Fyzická paměť použitá jako procento celkové paměti |
PagesPerSec | Celkový počet stránkování (čtení/zápis) |
PagesReadPerSec | Stránky se čtou z záložního úložiště, jako jsou prohození souborů, programový soubor a mapovaný soubor. |
PagesWrittenPerSec | Stránky zapsané do záložního úložiště, například prohození souboru a mapovaného souboru |
AvailableSwap | Nevyužitý prohození (MiB) |
PercentAvailableSwap | Nevyužitý prohození jako procento celkového prohození |
UsedSwap | Prostor pro prohození v použití (MiB) |
PercentUsedSwap | Místo prohození v rámci použití jako procento celkového prohození |
Tato třída metrik má pouze jednu instanci. Atribut "condition"
nemá žádné užitečné nastavení a neměl by být vynechán.
předdefinované metriky pro třídu Network
Třída network metrik poskytuje informace o síťové aktivitě v jednotlivých síťových rozhraních od spuštění.
LaD nezpřístupňuje metriky šířky pásma. Tyto metriky můžete získat z metrik hostitele.
Čítač | Význam |
---|---|
BytesTransmitted | Celkový počet bajtů od spuštění |
BytesReceived | Celkový počet bajtů přijatých od spuštění |
BajtyTotal | Celkový počet odeslaných nebo přijatých bajtů od spuštění |
Přenos paketů | Celkový počet odeslaných paketů od spuštění |
PacketsReceived | Celkový počet přijatých paketů od spuštění |
TotalRxErrors | Počet chyb při spuštění |
TotalTxErrors | Počet chyb přenosu od spuštění |
TotalCollisions | Počet kolizí hlášených síťovými porty od spuštění |
I když je třída Network instanced, LAD nepodporuje zachytávání síťových metrik agregovaných napříč všemi síťovými zařízeními. Chcete-li získat metriky pro konkrétní rozhraní, například eth0, set "condition": "InstanceID=\\"eth0\\""
.
předdefinované metriky pro třídu systému souborů
Třída systému souborů metrik poskytuje informace o využití systému souborů. Absolutní a procentuální hodnoty jsou hlášeny tak, jak by se zobrazovaly běžnému uživateli (nikoli kořenovému adresáři).
Čítač | Význam |
---|---|
Volné místo | Dostupné místo na disku v bajtech |
UsedSpace | Využité místo na disku v bajtech |
PercentFreeSpace | Procento volného místa |
PercentUsedSpace | Procento využité mezery |
PercentFreeInodes | Procento nepoužívaných uzlů indexu (uzlů) |
PercentUsedInodes | Procento přidělených uzlů (při použití) sečtených ve všech systémech souborů |
BytesReadPerSecond | Bajty přečtené za sekundu |
BytesWrittenPerSecond | Bajty zapsané za sekundu |
BytesPerSecond | Bajty přečtené nebo zapsané za sekundu |
ReadsPerSecond | Operace čtení za sekundu |
WritesPerSecond | Operace zápisu za sekundu |
TransfersPerSecond | Operace čtení nebo zápisu za sekundu |
Agregované hodnoty můžete získat ve všech systémech souborů nastavením "condition": "IsAggregate=True"
. Získejte hodnoty pro konkrétní připojený systém souborů, například "/mnt"
nastavením "condition": 'Name="/mnt"'
.
Poznámka:
Pokud pracujete na webu Azure Portal místo JSON, formulář pole podmínky je Name='/mnt'
.
builtin metrics for the Disk class
Třída diskových metrik poskytuje informace o využití diskových zařízení. Tyto statistiky platí pro celou jednotku.
Pokud má zařízení více systémů souborů, čítače pro toto zařízení se efektivně agregují napříč všemi systémy souborů.
Čítač | Význam |
---|---|
ReadsPerSecond | Operace čtení za sekundu |
WritesPerSecond | Operace zápisu za sekundu |
TransfersPerSecond | Celkový počet operací za sekundu |
AverageReadTime | Average seconds per read operation |
AverageWriteTime | Average seconds per write operation |
AverageTransferTime | Average seconds per operation |
AverageDiskQueueLength | Průměrný počet diskových operací zařazených do fronty |
ReadBytesPerSecond | Počet přečtených bajtů za sekundu |
WriteBytesPerSecond | Počet bajtů za sekundu |
BytesPerSecond | Počet bajtů přečtených nebo zapsaných za sekundu |
Agregované hodnoty na všech discích můžete získat nastavením "condition": "IsAggregate=True"
. Chcete-li získat informace pro konkrétní zařízení (například /dev/sdf1
), nastavte "condition": "Name=\\"/dev/sdf1\\""
.
Instalace a konfigurace LAD 3.0
Azure CLI
Pokud jsou vaše chráněná nastavení v souboru ProtectedSettings.json a vaše veřejné konfigurační informace jsou v PublicSettings.json, spusťte následující příkaz.
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
Tento příkaz předpokládá, že používáte režim Azure Resource Manageru v Azure CLI. Pokud chcete nakonfigurovat LAD pro virtuální počítače modelu nasazení Classic, přepněte do režimu "asm" (azure config mode asm
) a v příkazu vynechejte název skupiny prostředků.
Další informace najdete v dokumentaci k rozhraní příkazového řádku pro různé platformy.
PowerShell
Pokud jsou vaše chráněná nastavení v $protectedSettings
proměnné a informace o veřejné konfiguraci jsou v $publicSettings
proměnné, spusťte tento příkaz:
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
Příklad konfigurace LAD 3.0
Na základě předchozích definic poskytuje tato část ukázkovou konfiguraci rozšíření LAD 3.0 a vysvětlení. Pokud chcete tuto ukázku použít pro váš případ, použijte vlastní název účtu úložiště, token SAS účtu a tokeny SAS služby Event Hubs.
Poznámka:
V závislosti na tom, jestli k instalaci LAD používáte Azure CLI nebo PowerShell, se metoda poskytování veřejných a chráněných nastavení liší:
- Pokud používáte Azure CLI, uložte následující nastavení pro ProtectedSettings.json a PublicSettings.json použít předchozí ukázkový příkaz.
- Pokud používáte PowerShell, uložte následující nastavení do
$protectedSettings
a$publicSettings
spuštěním$protectedSettings = '{ ... }'
příkazu .
Chráněná nastavení
Nastavení ochrany konfiguruje:
- Účet úložiště.
- Odpovídající token SAS účtu.
- Několik jímek (
JsonBlob
neboEventHub
s tokeny SAS).
{
"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"
}
]
}
}
Veřejná nastavení
Veřejné nastavení způsobí, že LAD:
- Nahrajte do tabulky metriky percent-processor-time a využité místo na
WADMetrics*
disku. - Nahrajte zprávy ze zařízení
"user"
syslog a závažnostiLinuxSyslog*
"info"
do tabulky. - Nahrajte nezpracované výsledky dotazu OMI (
PercentProcessorTime
aPercentIdleTime
) do pojmenovanéLinuxCPU
tabulky. - Nahrajte do tabulky připojené řádky v
MyLadTestLog
souboru/var/log/myladtestlog
.
V každém případě se data nahrají také do:
- Azure Blob Storage. Název kontejneru je definovaný v jímce
JsonBlob
. - Koncový bod služby Event Hubs, jak je uvedeno v jímce
EventHub
.
{
"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"
}
]
}
V resourceId
konfiguraci se musí shodovat s virtuálním počítačem nebo škálovací sadou virtuálních počítačů.
- Grafy metrik platformy Azure a upozorňování ví, na
resourceId
kterém virtuálním počítači pracujete. Očekává, že pomocí vyhledávacíhoresourceId
klíče vyhledá data pro váš virtuální počítač. - Pokud používáte automatické škálování Azure,
resourceId
musí konfigurace automatického škálování odpovídat používanémuresourceId
laD. - Je
resourceId
integrovaný do názvů objektů blob JSON, které napsal LAD.
Zobrazení dat
Pomocí webu Azure Portal můžete zobrazit data o výkonu nebo nastavit upozornění:
Data performanceCounters
se vždy ukládají v tabulce Azure Storage. Rozhraní API služby Azure Storage jsou k dispozici pro mnoho jazyků a platforem.
Data odesílaná do JsonBlob
jímek se ukládají v objektech blob v účtu úložiště pojmenovaném v chráněném nastavení. Data objektu blob můžete využívat pomocí libovolného rozhraní API služby Azure Blob Storage.
K přístupu k datům ve službě Azure Storage můžete použít také tyto nástroje uživatelského rozhraní:
- Visual Studio Server Explorer
- Azure Storage Explorer
Následující snímek obrazovky relace Průzkumník služby Azure Storage ukazuje vygenerované tabulky a kontejnery Azure Storage z správně nakonfigurovaného rozšíření LAD 3.0 na testovacím virtuálním počítači. Image přesně neodpovídá ukázkové konfiguraci LAD 3.0.
Další informace o tom, jak využívat zprávy publikované do koncového bodu služby Event Hubs, najdete v příslušné dokumentaci ke službě Event Hubs.
Další kroky
- Ve službě Azure Monitor vytvořte upozornění na metriky, které shromažďujete.
- Vytvářejte pro metriky grafy monitorování.
- Vytvořte škálovací sadu virtuálních počítačů pomocí metrik k řízení automatického škálování.