Sdílet prostřednictvím


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:

  1. Spuštěním následujícího příkazu odeberte všechny existující aliasy.

    sudo update-alternatives --remove-all python
    
  2. 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.
  • 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 pro builtin 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": { ... }
}
Jméno Hodnota
storageAccountName Název účtu úložiště, ve kterém jsou data zapsaná rozšířením.
storageAccountEndPoint (Volitelné) Koncový bod, který identifikuje cloud, ve kterém existuje účet úložiště. Pokud toto nastavení chybí, výchozí hodnota LAD je veřejný cloud https://core.windows.netAzure. Pokud chcete použít účet úložiště v Azure Germany, Azure Government nebo Microsoft Azure provozovaném společností 21Vianet, nastavte tuto hodnotu podle potřeby.
storageAccountSasToken Token SAS účtu pro služby blob a table services (ss='bt'). Platí pro kontejnery a objekty (srt='co'). Uděluje oprávnění k přidávání, vytváření, vytváření, aktualizaci a zápisu (sp='acluw'). Nezahrnujte úvodní otazník (?).
mdsdHttpProxy (Volitelné) Informace o proxy serveru HTTP, které rozšíření potřebuje pro připojení k zadanému účtu úložiště a koncovému bodu.
sinksConfig (Volitelné) Podrobnosti o alternativních cílech, ke kterým se dají doručovat metriky a události Následující části obsahují podrobnosti o jednotlivých datových jímkách podporovaných rozšířením.

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:

  1. Vyberte účet úložiště pro obecné účely, do kterého chcete rozšíření zapisovat.
  2. V nabídce vlevo v části Nastavení vyberte Sdílený přístupový podpis.
  3. Proveďte výběry podle předchozího popisu.
  4. Vyberte Vygenerovat SAS.

Snímek obrazovky se stránkou sdíleného přístupového podpisu s tlačítkem Vygenerovat S A S

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 nebo syslogEvents 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í performanceCountersfunkce 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, PercentIOWaitTimea 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 nebo EventHub 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žnosti LinuxSyslog* "info" do tabulky.
  • Nahrajte nezpracované výsledky dotazu OMI (PercentProcessorTime a PercentIdleTime) 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ího resourceId 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ému resourceId 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í:

Snímek obrazovky s webem Azure Portal Je vybráno využité místo na disku v metrice. Zobrazí se výsledný graf.

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í:

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.

Snímek obrazovky znázorňující Průzkumník služby Azure Storage

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