Metrikák és naplók monitorozása a Linux diagnosztikai bővítmény 3.0-s használatával

Figyelemfelhívás

Ez a cikk a CentOS-ra, egy olyan Linux-disztribúcióra hivatkozik, amely közel áll az élettartam (EOL) állapotához. Fontolja meg a használatát, és ennek megfelelően tervezze meg. További információ: CentOS End Of Life útmutató.

Ez a dokumentum a Linux diagnosztikai bővítmény (LAD) 3.0-s és újabb verzióját ismerteti.

Fontos

A 2.3-es és korábbi verzióval kapcsolatos információkért lásd : Linux rendszerű virtuális gépek teljesítményének és diagnosztikai adatainak monitorozása.

Bevezetés

A Linux diagnosztikai bővítmény segít a felhasználónak monitorozni a Microsoft Azure-on futó Linux rendszerű virtuális gépek állapotát. A következő képességekkel rendelkezik:

  • Rendszerteljesítmény-metrikákat gyűjt a virtuális gépről, és egy adott táblában tárolja őket egy kijelölt tárfiókban.
  • Lekéri a naplóeseményeket a syslogból, és egy adott táblában tárolja őket a kijelölt tárfiókban.
  • Lehetővé teszi a felhasználók számára az összegyűjtött és feltöltött adatmetrikák testreszabását.
  • Lehetővé teszi a felhasználók számára, hogy testre szabják a gyűjtött és feltöltött syslog-létesítményeket és súlyossági szinteket.
  • Lehetővé teszi a felhasználók számára, hogy meghatározott naplófájlokat töltsenek fel egy kijelölt tárolótáblába.
  • Támogatja a metrikák és naplóesemények küldését tetszőleges Azure Event Hubs-végpontokra és JSON-formátumú blobokra a kijelölt tárfiókban.

Ez a bővítmény mindkét Azure-beli üzemi modellel működik.

A bővítmény telepítése virtuális gépre

A bővítményt az Azure PowerShell-parancsmagok, az Azure CLI-szkriptek, az Azure Resource Monitor-sablonok (ARM-sablonok) vagy az Azure Portal használatával engedélyezheti. További információkért lásd a Bővítmények funkcióit.

Feljegyzés

A LAD virtuálisgép-bővítmény egyes összetevőit a Log Analytics virtuálisgép-bővítményben is szállítjuk. Az architektúra miatt ütközések léphetnek fel, ha mindkét bővítményt ugyanabban az ARM-sablonban példányosítjuk.

A telepítési idő ütközéseinek elkerülése érdekében az dependsOn irányelv használatával győződjön meg arról, hogy a bővítmények egymás után vannak telepítve. A bővítmények bármelyik sorrendben telepíthetők.

Ezek a telepítési utasítások és egy letölthető mintakonfiguráció a LAD 3.0 konfigurálásához a következőkre:

  • Rögzítse és tárolja ugyanazokat a metrikákat, mint a LAD 2.3-ban.
  • Rögzítse a fájlrendszer metrikáinak hasznos készletét. Ez a funkció új a LAD 3.0-ban.
  • Rögzítse az alapértelmezett syslog-gyűjteményt, amelyet az LAD 2.3 engedélyezett.
  • Engedélyezze az Azure Portal használatát a virtuálisgép-metrikák diagramkészítéséhez és riasztásához.

A letölthető konfiguráció csak egy példa. Módosítsa az igényeinek megfelelően.

Előfeltételek

  • Az Azure Linux Agent 2.2.0-s vagy újabb verziója. Az Azure-beli virtuális gépek linuxos katalógusának legtöbb képe tartalmazza a 2.2.7-es vagy újabb verziót. Futtassa /usr/sbin/waagent -version a virtuális gépre telepített verzió megerősítéséhez. Ha a virtuális gép régebbi verziót futtat, frissítse a vendégügynököt.
  • Az Azure CLI. Szükség esetén állítsa be az Azure CLI-környezetet a gépen.
  • A wget parancs. Ha még nem rendelkezik vele, telepítse a megfelelő csomagkezelővel.
  • Egy meglévő Azure-előfizetés.
  • Egy meglévő általános célú tárfiók az adatok tárolásához. Az általános célú tárfiókok támogatják a táblatárolást. A Blob Storage-fiók nem működik.
  • Python 2.

Python-követelmény

A Linux diagnosztikai bővítményhez Python 2 szükséges. Ha a virtuális gép olyan disztribúciót használ, amely alapértelmezés szerint nem tartalmazza a Python 2-t, telepítenie kell. Az alábbi mintaparancsok különböző disztribúciókra telepítik a Python 2-t:

  • Red Hat, CentOS, Oracle: yum install -y python2
  • Ubuntu, Debian: apt-get install -y python2
  • SU Standard kiadás:zypper install -y python2

A python2 végrehajtható fájlt Python-aliasként kell megadni. Az alias beállításához az alábbi egy metódust kell megadnia:

  1. Futtassa a következő parancsot a meglévő aliasok eltávolításához.

    sudo update-alternatives --remove-all python
    
  2. Futtassa a következő parancsot az alias létrehozásához.

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

Mintatelepítés

Az alábbi példákban letöltött mintakonfiguráció összegyűjti a szabványos adatokat, és elküldi azokat a táblatárolóba. A mintakonfiguráció URL-címe és tartalma változhat.

A legtöbb esetben le kell töltenie a portálbeállítások JSON-fájljának egy példányát, és testre kell szabnia az igényeinek megfelelően. Ezután sablonokkal vagy saját automatizálással használhatja a konfigurációs fájl testreszabott verzióját ahelyett, hogy minden alkalommal letöltenél az URL-címről.

Feljegyzés

Az alábbi mintáknál a kód futtatása előtt adja meg a megfelelő értékeket a változókhoz az első szakaszban.

Azure CLI-minta

# 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-minta a LAD 3.0 telepítéséhez a virtuálisgép-méretezési csoport példányán

#Set your Azure Virtual Machine Scale Sets diagnostic variables.
$my_resource_group=<your_azure_resource_group_name_containing_your_azure_linux_vm>
$my_linux_vmss=<your_azure_linux_vmss_name>
$my_diagnostic_storage_account=<your_azure_storage_account_for_storing_vm_diagnostic_data>

# Login to Azure before you do anything else.
az login

# Select the subscription that contains the storage account.
az account set --subscription <your_azure_subscription_id>

# Download the sample public settings. (You could also use curl or any web browser.)
wget https://raw.githubusercontent.com/Azure/azure-linux-extensions/master/Diagnostic/tests/lad_2_3_compatible_portal_pub_settings.json -O portal_public_settings.json

# Build the virtual machine scale set resource ID. Replace the storage account name and resource ID in the public settings.
$my_vmss_resource_id=$(az vmss show -g $my_resource_group -n $my_linux_vmss --query "id" -o tsv)
sed -i "s#__DIAGNOSTIC_STORAGE_ACCOUNT__#$my_diagnostic_storage_account#g" portal_public_settings.json
sed -i "s#__VM_RESOURCE_ID__#$my_vmss_resource_id#g" portal_public_settings.json

# Build the protected settings (storage account SAS token).
$my_diagnostic_storage_account_sastoken=$(az storage account generate-sas --account-name $my_diagnostic_storage_account --expiry 2037-12-31T23:59:00Z --permissions wlacu --resource-types co --services bt -o tsv)
$my_lad_protected_settings="{'storageAccountName': '$my_diagnostic_storage_account', 'storageAccountSasToken': '$my_diagnostic_storage_account_sastoken'}"

# Finally, tell Azure to install and enable the extension.
az vmss extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic --version 3.0 --resource-group $my_resource_group --vmss-name $my_linux_vmss --protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json

PowerShell-minta

$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

A bővítmény beállításainak frissítése

Miután módosította a védett vagy nyilvános beállításokat, telepítse őket a virtuális gépen ugyanazzal a paranccsal. Ha a beállítások megváltoztak, a rendszer elküldi a frissítéseket a bővítménynek. A LAD újra betölti a konfigurációt, és újraindítja magát.

Migrálás a bővítmény korábbi verzióiból

A bővítmény legújabb verziója a 4.0.

Fontos

Ez a bővítmény kompatibilitástörő módosításokat vezet be a konfigurációban. Az egyik ilyen módosítás javította a bővítmény biztonságát, így a 2.x-zel való visszamenőleges kompatibilitás nem tartható fenn. Emellett a bővítmény bővítmény-közzétevője eltér a 2.x-verziók közzétevőitől.

A 2.x verzióról az új verzióra való migráláshoz először távolítsa el a régi bővítményt (a régi közzétevő neve alatt). Ezután telepítse a 3. verziót.

Ajánlások:

  • Telepítse a bővítményt úgy, hogy engedélyezve van az alverzió automatikus frissítése.
    • Klasszikus üzemi modell virtuális gépeken adja meg a verziót 3.* , ha a bővítményt az Azure XPLAT CLI-n vagy a PowerShellen keresztül telepíti.
    • Azure Resource Manager-alapú üzemi modell virtuális gépeken vegye fel "autoUpgradeMinorVersion": true a virtuálisgép-üzembehelyezési sablont.
  • Használjon egy új vagy eltérő tárfiókot a LAD 3.0-hoz. A LAD 2.3 és a LAD 3.0 számos kisebb inkompatibilitással rendelkezik, amelyek megnehezítik a fiókok megosztását:
    • A LAD 3.0 egy másik nevű táblában tárolja a syslog-eseményeket.
    • A counterSpecifier metrikák sztringjei builtin a LAD 3.0-ban különböznek.

Védett beállítások

Ez a konfigurációs információkészlet bizalmas információkat tartalmaz, amelyeket védeni kell a nyilvános nézettől. Például tárolási hitelesítő adatokat tartalmaz. Ezeket a beállításokat a bővítmény titkosított formában továbbítja és tárolja.

{
    "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": { ... }
}
Név szerint Érték
storageAccountName Annak a tárfióknak a neve, amelyben az adatokat a bővítmény írja.
storageAccountEndPoint (Nem kötelező) Az a végpont, amely azonosítja azt a felhőt, amelyben a tárfiók létezik. Ha ez a beállítás hiányzik, a LAD alapértelmezett értéke az Azure nyilvános felhője. https://core.windows.net A 21Vianet által üzemeltetett Azure Germany, Azure Government vagy Microsoft Azure tárfiók használatához szükség szerint állítsa be ezt az értéket.
storageAccountSasToken Fiók SAS-jogkivonata blob- és táblaszolgáltatásokhoz (ss='bt'). Tárolókra és objektumokra (srt='co') vonatkozik. Megadja a hozzáadási, létrehozási, listázási, frissítési és írási engedélyeket (sp='acluw'). Ne tartalmazza a vezető kérdőjelet (?).
mdsdHttpProxy (Nem kötelező) HTTP-proxyinformációk, amelyeket a bővítménynek csatlakoznia kell a megadott tárfiókhoz és végponthoz.
sinksConfig (Nem kötelező) Az alternatív célhelyek részletei, amelyekbe a metrikák és események kézbesíthetők. Az alábbi szakaszok a bővítmény által támogatott adatgyűjtők adatait ismertetik.

Ha SAS-jogkivonatot szeretne lekérni egy ARM-sablonban, használja a függvényt listAccountSas . Példasablonért lásd a Lista függvény példáját.

A szükséges SAS-jogkivonatot az Azure Portalon hozhatja létre:

  1. Válassza ki azt az általános célú tárfiókot, amelyhez a bővítményt írni szeretné.
  2. A bal oldali menüben a Gépház alatt válassza a Közös hozzáférésű jogosultságkód lehetőséget.
  3. A korábban ismertetett módon végezze el a kijelöléseket.
  4. Válassza az SAS létrehozása lehetőséget.

Képernyőkép a Közös hozzáférésű jogosultságkód lapról az S A S létrehozása gombbal.

Másolja a létrehozott SAS-t a storageAccountSasToken mezőbe. Távolítsa el a vezető kérdőjelet (?).

sinksConfig

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

Az sinksConfig opcionális szakasz több célhelyet határoz meg, amelyekbe a bővítmény elküldi az összegyűjtött információkat. A sink tömb minden további adatgyűjtőhöz tartalmaz egy objektumot. Az type attribútum határozza meg az objektum többi attribútumát.

Elem Érték
név Egy sztring, amely a bővítménykonfiguráció más részein hivatkozik erre a fogadóra.
típus A definiált fogadó típusa. Meghatározza az ilyen típusú példányok egyéb értékeit (ha vannak ilyenek).

A LAD 3.0-s verziója két fogadótípust támogat: EventHub és JsonBlob.

EventHub-fogadó

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

A "sasURL" bejegyzés tartalmazza annak az eseményközpontnak a teljes URL-címét, beleértve az SAS-jogkivonatot is, amelyhez az adatokat közzé kell tenni. A LAD megköveteli, hogy egy SAS olyan szabályzatot adjon meg, amely lehetővé teszi a küldési jogcímet.

Példa:

  • Hozzon létre egy Azure Event Hubs nevű contosohubnévteret.
  • Hozzon létre egy eseményközpontot a névtérben.syslogmsgs
  • Hozzon létre egy megosztott hozzáférési szabályzatot az eseményközpontban, amely engedélyezi a küldési jogcímet. Nevezze el a szabályzatot writer.

Ha az SAS értéke 2018. január 1-jén éjfélig (UTC) jó, a sasURL értéke a következő példához hasonló lehet:

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

Az Event Hubs SAS-jogkivonatainak létrehozásával és lekérésével kapcsolatos további információkért lásd : SAS-jogkivonat létrehozása.

JsonBlob fogadó

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

A fogadónak JsonBlob irányított adatok blobokban tárolódnak az Azure Storage-ban. A LAD minden példánya óránként létrehoz egy blobot minden fogadónévhez. Minden blob mindig tartalmaz egy szintaktikailag érvényes JSON-objektumtömböt. Az új bejegyzések atomilag hozzáadódnak a tömbhöz.

A blobok olyan tárolóban vannak tárolva, amelynek neve megegyezik a fogadó nevével. A blobtárolók nevére vonatkozó Azure Storage-szabályok a fogadók nevére JsonBlob vonatkoznak. A névnek 3 és 63 közötti kisbetűs alfanumerikus ASCII-karakterekkel vagy kötőjelekkel kell rendelkeznie.

Nyilvános beállítások

A nyilvános beállítások struktúrája különböző beállításblokkokat tartalmaz, amelyek szabályozzák a bővítmény által gyűjtött információkat. Az egyes beállítások megadása nem kötelező. Ha megadja ladCfg, meg kell adnia StorageAccountazt is.

{
    "ladCfg":  { ... },
    "perfCfg": { ... },
    "fileLogs": { ... },
    "StorageAccount": "the storage account to receive data",
    "mdsdHttpProxy" : ""
}
Elem Érték
StorageAccount Annak a tárfióknak a neve, amelyben az adatokat a bővítmény írja. A védett beállításokban megadott névnek kell lennie.
mdsdHttpProxy (Nem kötelező) Ugyanaz, mint a védett beállításokban. A nyilvános értéket felül kell bírálni a privát értéken, ha be van állítva. Helyezze el a titkos kódokat (például jelszót) tartalmazó proxybeállításokat a védett beállítások között.

A következő szakaszok a többi elem részleteit ismertetik.

ladCfg

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

A ladCfg struktúra nem kötelező. Ez szabályozza az Azure Monitor Metrics szolgáltatásnak és más adatel fogadóknak kézbesített metrikák és naplók gyűjtését. Adnia:

  • Vagy vagy performanceCounterssyslogEvents mindkettő.
  • A metrics szerkezet.
Elem Érték
eventVolume (Nem kötelező) A tárolótáblában létrehozott partíciók számát szabályozza. Annak kell lennie "Large", "Medium"vagy "Small". Ha nincs megadva érték, az alapértelmezett érték."Medium"
sampleRateInSeconds (Nem kötelező) A nyers (nem összesített) metrikák gyűjtése közötti alapértelmezett intervallum. A legkisebb támogatott mintasebesség 15 másodperc. Ha az érték nincs megadva, az alapértelmezett érték a következő 15.

metrics

"metrics": {
    "resourceId": "/subscriptions/...",
    "metricAggregation" : [
        { "scheduledTransferPeriod" : "PT1H" },
        { "scheduledTransferPeriod" : "PT5M" }
    ]
}
Elem Érték
resourceId A virtuális gép vagy annak a méretezési csoportnak az Azure Resource Manager-erőforrás-azonosítója, amelyhez a virtuális gép tartozik. Ezt a beállítást akkor is meg kell adni, ha bármilyen JsonBlob fogadót használ a konfigurációban.
scheduledTransferPeriod Az összesített metrikák kiszámításának és az Azure Monitor-metrikákba való átvitelének gyakorisága. A gyakoriság értéke IS 8601 időintervallum. A legkisebb átviteli időszak 60 másodperc, azaz PT1M. Adjon meg legalább egyet scheduledTransferPeriod.

A szakaszban megadott performanceCounters metrikák mintáit 15 másodpercenként vagy a számlálóhoz explicit módon meghatározott mintasebességen gyűjtjük össze. Ha több scheduledTransferPeriod frekvencia jelenik meg, mint a példában, az egyes összesítések egymástól függetlenül lesznek kiszámítva.

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

Az performanceCounters opcionális szakasz szabályozza a metrikák gyűjteményét. A nyers minták összesítése mindegyikhez scheduledTransferPeriod az alábbi értékek előállításához szükséges:

  • Középérték
  • Minimum
  • Maximum
  • Legutóbb gyűjtött érték
  • Az aggregátum kiszámításához használt nyers minták száma
Elem Érték
Mosogató (Nem kötelező) Azoknak a fogadóknak a vesszővel tagolt listája, amelyekbe a LAD összesített metrikaeredményeket küld. Az összes összesített metrika minden felsorolt fogadóban közzé lesz téve. Példa: "EHsink1, myjsonsink" További információ: sinksConfig.
típus A metrika tényleges szolgáltatóját azonosítja.
osztály Ezzel "counter"együtt azonosítja az adott metrikát a szolgáltató névterében.
számláló Ezzel "class"együtt azonosítja az adott metrikát a szolgáltató névterében.
counterSpecifier Azonosítja az adott metrikát az Azure Monitor Metrics névterében.
feltétel (Nem kötelező) Kiválasztja annak az objektumnak a egy adott példányát, amelyre a metrika vonatkozik. Vagy kiválasztja az összesítést az objektum összes példányában.
sampleRate Az IS 8601 intervallum, amely meghatározza a metrika nyers mintáinak gyűjtésének sebességét. Ha az érték nincs beállítva, a gyűjtemény időközét sampleRateInSecondsa következő érték határozza meg: . A legrövidebb támogatott mintasebesség 15 másodperc (PT15S).
egység Meghatározza a metrika mértékegységét. A következő sztringek egyikének kell lennie: "Count", "Bytes", "Seconds", "Percent", "CountPerSecond", "BytesPerSecond". "Millisecond" Az összegyűjtött adatok felhasználói elvárják, hogy az összegyűjtött adatértékek megfeleljenek ennek az egységnek. A LAD figyelmen kívül hagyja ezt a mezőt.
displayName Az Adatokhoz csatolandó címke az Azure Monitor-metrikákban. Ez a címke a társított területi beállítás által megadott nyelven található. A LAD figyelmen kívül hagyja ezt a mezőt.

Ez counterSpecifier egy tetszőleges azonosító. A metrikák felhasználói, például az Azure Portal diagramkészítési és riasztási funkciója, "kulcsként" használják counterSpecifier , amely egy metrikát vagy egy metrikapéldányt azonosít.

A metrikák esetében builtin a kezdőértékeket /builtin/javasoljukcounterSpecifier. Ha egy metrika egy adott példányát gyűjti össze, javasoljuk, hogy csatolja a példány azonosítóját az counterSpecifier értékhez.

Íme néhány példa:

  • /builtin/Processor/PercentIdleTime - Üresjárati idő átlaga az összes vCPU-ban
  • /builtin/Disk/FreeSpace(/mnt) - Szabad hely a /mnt fájlrendszer számára
  • /builtin/Disk/FreeSpace - Az összes csatlakoztatott fájlrendszerre átlagolt szabad terület

A LAD és az Azure Portal nem számít arra, hogy az counterSpecifier érték egyezik a mintával. Konzisztensnek kell lennie az értékek létrehozásának módjában counterSpecifier .

Amikor megadja performanceCounters, a LAD mindig adatokat ír egy táblába az Azure Storage-ban. Ugyanezek az adatok JSON-blobokba, Event Hubs-ba vagy mindkettőbe írhatók. De nem tilthatja le az adatok táblákba való tárolását.

Az azonos tárfióknevet és végpontot használó LAD összes példánya hozzáadja a metrikáit és naplóit ugyanahhoz a táblához. Ha túl sok virtuális gép ír ugyanarra a táblapartícióra, az Azure szabályozhatja a partícióra történő írást.

A eventVolume beállítás hatására a bejegyzések 1 (kicsi), 10 (közepes) vagy 100 (nagy) partíció között oszlanak el. A közepes partíciók általában elegendőek a forgalom szabályozásának elkerüléséhez.

Az Azure Portal Azure Monitor Metrics szolgáltatása a táblázatban szereplő adatokat gráfok előállítására vagy riasztások aktiválására használja. A tábla neve a következő sztringek összefűzése:

  • WADMetrics
  • A "scheduledTransferPeriod" táblában tárolt összesített értékek
  • P10DV2S
  • "YYYYMMDD" formátumú dátum, amely 10 naponta változik

Ilyenek például a következők: WADMetricsPT1HP10DV2S20170410 és WADMetricsPT1MP10DV2S20170609.

syslogEvents

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

Az syslogEvents opcionális szakasz szabályozza a naplóesemények syslogból való gyűjtését. Ha a szakasz nincs megadva, a rendszer egyáltalán nem rögzíti a syslog-eseményeket.

A syslogEventConfiguration gyűjtemény minden fontos syslog-létesítményhez egy bejegyzéssel rendelkezik. Ha minSeverity egy adott létesítményről van szó "NONE" , vagy ha ez a létesítmény egyáltalán nem jelenik meg az elemben, a rendszer nem rögzíti az adott létesítményből származó eseményeket.

Elem Érték
Mosogató Azoknak a fogadóknak a vesszővel tagolt listája, amelyekbe az egyes naplóeseményeket közzéteszik. Minden olyan naplóesemény, amely megfelel a korlátozásoknak syslogEventConfiguration , minden felsorolt fogadóban közzé lesz téve. Példa: "EHforsyslog"
facilityName A syslog-létesítmény neve, például "LOG_USER" vagy "LOG\LOCAL0". További információt a syslog man oldal "Létesítmény" szakaszában talál.
minSeverity A syslog súlyossági szintje, például "LOG_ERR" vagy "LOG_INFO". További információt a syslog man oldal "Szint" szakaszában talál. A bővítmény rögzíti a létesítménynek a megadott szinten vagy annál magasabb szinten küldött eseményeket.

Amikor megadja syslogEvents, a LAD mindig adatokat ír egy táblába az Azure Storage-ban. Ugyanezek az adatok JSON-blobokba, Event Hubs-ba vagy mindkettőbe írhatók. De nem tilthatja le az adatok táblákba való tárolását.

A tábla particionálási viselkedése megegyezik a következőhöz performanceCountersismertetett módon: . A tábla neve a következő sztringek összefűzése:

  • LinuxSyslog
  • "YYYYMMDD" formátumú dátum, amely 10 naponta változik

Ilyenek például a következők: LinuxSyslog20170410 és LinuxSyslog20170609.

perfCfg

A perfCfg szakasz nem kötelező. Ez szabályozza az tetszőleges Open Management Infrastructure (OMI) lekérdezések futtatását.

"perfCfg": [
    {
        "namespace": "root/scx",
        "query": "SELECT PercentAvailableMemory, PercentUsedSwap FROM SCX_MemoryStatisticalInformation",
        "table": "LinuxOldMemory",
        "frequency": 300,
        "sinks": ""
    }
]
Elem Érték
névtér (Nem kötelező) Az OMI-névtér, amelyen belül a lekérdezést futtatni kell. Ha nincs meghatározva, az alapértelmezett érték a következő "root/scx". A System Center platformfüggetlen szolgáltatói implementálják.
Lekérdezés A futtatni kívánt OMI-lekérdezés.
table (Nem kötelező) Az Azure Storage-tábla a kijelölt tárfiókban. További információ: Védett beállítások.
frequency (Nem kötelező) A lekérdezések közötti másodpercek száma. Az alapértelmezett érték 300 (5 perc). A minimális érték 15 másodperc.
Mosogató (Nem kötelező) Több fogadó nevének vesszővel tagolt listája, amelyhez a nyers mintametrika eredményeit közzé kell tenni. Ezeknek a nyers mintáknak a összesítését a bővítmény vagy az Azure Monitor-metrikák nem számítják ki.

Vagy mindkettőt "table""sinks" meg kell adni.

fileLogs

A fileLogs szakasz a naplófájlok rögzítését szabályozza. A LAD a fájlba írott új szövegsorokat rögzíti. A táblázat soraiba és/vagy a megadott fogadókba (JsonBlob vagy EventHub) írja őket.

Feljegyzés

Ezeket fileLogs a LAD omsagentnevű alösszetevő rögzíti. Az adatgyűjtéshez fileLogsgyőződjön meg arról, hogy a omsagent felhasználó olvasási engedélyekkel rendelkezik a megadott fájlokhoz. A felhasználónak a fájl elérési útjának összes könyvtárára vonatkozó végrehajtási engedélyekkel is rendelkeznie kell. A LAD telepítése után a futtatással sudo su omsagent -c 'cat /path/to/file'ellenőrizheti az engedélyeket.

"fileLogs": [
    {
        "file": "/var/log/mydaemonlog",
        "table": "MyDaemonEvents",
        "sinks": ""
    }
]
Elem Érték
fájl A megtekinteni és rögzíteni kívánt naplófájl teljes elérési útja. Az elérési út nevének egyetlen fájlnak kell lennie. Nem nevezhet el könyvtárat, és nem tartalmazhat helyettesítő karaktereket. A omsagent felhasználói fióknak olvasási hozzáféréssel kell rendelkeznie a fájl elérési úthoz.
table (Nem kötelező) Az Azure Storage-tábla, amelybe a fájl "farkából" új sorokat ír. A táblának a védett konfigurációban megadott tárfiókban kell lennie.
Mosogató (Nem kötelező) Vesszővel tagolt lista azoknak a fogadóknak a neveiről, amelyekre a naplósorokat küldi a rendszer.

"sinks"Vagy "table" mindkettőt meg kell adni.

A beépített szolgáltató által támogatott metrikák

A builtin metrikaszolgáltató olyan metrikák forrása, amelyek a felhasználók széles köre számára a legérdekesebbek. Ezek a metrikák öt átfogó osztályba sorolhatók:

  • Adatfeldolgozó
  • Memory (Memória)
  • Network (Hálózat)
  • Fájlrendszer
  • Lemez

beépített metrikák a processzorosztályhoz

A metrika processzorosztálya információt nyújt a virtuális gép processzorhasználatáról. Százalékos értékek összesítése esetén az eredmény az összes PROCESSZOR átlaga.

Ha egy két virtuális rendszerű virtuális gépen az egyik vCPU 100 százalékban foglalt, a másik pedig 100 százalékos tétlenség, akkor a jelentett PercentIdleTime érték 50. Ha az egyes vCPU-k 50%-ban foglaltak ugyanahhoz az időszakhoz, a jelentett eredmény szintén 50. Négy vCPU-s virtuális gépen, amikor az egyik vCPU 100%-ban foglalt, a többi tétlen, a jelentett PercentIdleTime érték 75.

Számláló Értelmezés
PercentIdleTime A processzorok által a kernel tétlen ciklusát futtató összesítési időszak során eltelt idő százalékos aránya
PercentProcessorTime Nem tétlen szál futási idejének százalékos aránya
PercentIOWaitTime Az IO-műveletek befejezésére váró idő százalékos aránya
PercentInterruptTime Hardver- vagy szoftvermegszakítások és DPC-k (késleltetett eljáráshívások) futási idejének százalékos aránya
PercentUserTime Az aggregációs időszak nem tétlen idejéből a felhasználói módban, normál prioritással töltött idő százalékos aránya
PercentNiceTime A nem tétlen időszakban a csökkentett (szép) prioritásnál töltött százalék
PercentPrivilegedTime A nem tétlen időkből a kiemelt (kernel) módban töltött százalék

Az első négy számlálónak 100 százalékot kell összeadnia. Az utolsó három számláló szintén 100 százalékot ad. Ez a három számláló felosztja a , PercentIOWaitTimeés PercentInterruptTimea PercentProcessorTime.

Ha egyetlen metrikát szeretne összesíteni az összes processzorban, állítsa be a ."condition": "IsAggregate=TRUE" Egy adott processzor , például egy négy virtuális gép második logikai processzora metrikájának lekéréséhez állítsa be "condition": "Name=\\"1\\""a metrikát. A logikai processzorok számai a tartományban [0..n-1]vannak.

beépített metrikák a Memória osztályhoz

A metrikák memóriaosztálya információt nyújt a memóriahasználatról, a lapozásról és a felcserélésről.

Számláló Értelmezés
AvailableMemory Rendelkezésre álló fizikai memória a MiB-ben
PercentAvailableMemory Rendelkezésre álló fizikai memória a teljes memória százalékában
UsedMemory Használatban lévő fizikai memória (MiB)
PercentUsedMemory Használatban lévő fizikai memória a teljes memória százalékában
PagesPerSec Teljes lapozás (olvasás/írás)
PagesReadPerSec A háttértárból beolvasott lapok, például a felcserélési fájl, a programfájl és a megfeleltetett fájl
PagesWrittenPerSec A háttértárba írt lapok, például a felcserélési fájl és a leképezett fájl
AvailableSwap Fel nem használt felcserélési terület (MiB)
PercentAvailableSwap Fel nem használt felcserélési terület a teljes felcserélés százalékos arányában
UsedSwap Használatban lévő felcserélési terület (MiB)
PercentUsedSwap Használatban lévő felcserélési terület a teljes felcserélés százalékos arányaként

A metrikák ezen osztályának csak egy példánya van. Az "condition" attribútum nem rendelkezik hasznos beállításokkal, ezért ki kell hagyni.

beépített metrikák a hálózati osztályhoz

A metrikák hálózati osztálya az indítás óta információkat nyújt az egyes hálózati adaptereken végzett hálózati tevékenységről.

A LAD nem teszi elérhetővé a sávszélesség-metrikákat. Ezeket a metrikákat a gazdagépmetrikákból szerezheti be.

Számláló Értelmezés
Bájttranszmitt Indítás óta elküldött összes bájt
BytesReceived Indítás óta fogadott bájtok összesen
BytesTotal Indítás óta elküldött vagy fogadott bájtok teljes száma
PacketsTransmitted Indítás óta elküldött csomagok teljes száma
PacketsReceived Az indítás óta fogadott csomagok teljes száma
TotalRxErrors A fogadási hibák száma az indítás óta
TotalTxErrors Átviteli hibák száma az indítás óta
TotalCollisions A hálózati portok által jelentett ütközések száma az indítás óta

Bár a hálózati osztály példányos, a LAD nem támogatja az összes hálózati eszközön összesített hálózati metrikák rögzítését. Egy adott felület (például eth0) metrikáinak lekéréséhez állítsa be "condition": "InstanceID=\\"eth0\\""a metrikát.

beépített metrikák a fájlrendszerosztályhoz

A fájlrendszer metrikák osztálya információt nyújt a fájlrendszer használatáról. Az abszolút és százalékértékeket a rendszer úgy jelenti, hogy azok egy átlagos felhasználó (nem gyökér) számára jelennek meg.

Számláló Értelmezés
Freespace Rendelkezésre álló lemezterület bájtban
UsedSpace Felhasznált lemezterület bájtban
PercentFreeSpace Szabad terület százalékos aránya
PercentUsedSpace Felhasznált terület százalékos aránya
PercentFreeInodes A nem használt indexcsomópontok százalékos aránya (inódok)
PercentUsedInodes Az összes fájlrendszerben összegzett lefoglalt (használatban lévő) inódok százalékos aránya
BytesReadPerSecond Másodpercenkénti olvasási bájtok
BytesWrittenPerSecond Másodpercenként írt bájtok
BytesPerSecond Másodpercenkénti olvasási vagy írási bájtok
ReadsPerSecond Olvasási műveletek másodpercenként
WritesPerSecond Írási műveletek másodpercenként
TransfersPerSecond Olvasási vagy írási műveletek másodpercenként

Az összes fájlrendszer összesített értékeit a beállítással "condition": "IsAggregate=True"szerezheti be. Értékeket kérhet le egy adott csatlakoztatott fájlrendszerhez, például "/mnt"a beállítással "condition": 'Name="/mnt"'.

Feljegyzés

Ha JSON helyett az Azure Portalon dolgozik, a feltételmező űrlapja.Name='/mnt'

beépített metrikák a Lemez osztályhoz

A lemezes metrikák lemezosztálya információt nyújt a lemezeszköz-használatról. Ezek a statisztikák a teljes meghajtóra vonatkoznak.

Ha egy eszköz több fájlrendszerrel rendelkezik, az eszköz számlálói gyakorlatilag összesítve vannak az összes fájlrendszerben.

Számláló Értelmezés
ReadsPerSecond Olvasási műveletek másodpercenként
WritesPerSecond Írási műveletek másodpercenként
TransfersPerSecond Másodpercenkénti összes művelet
AverageReadTime Olvasási műveletenkénti átlagos másodperc
AverageWriteTime Átlagos másodperc írási műveletenként
AverageTransferTime Műveletenkénti átlagos másodperc
AverageDiskQueueLength Várólistán lévő lemezműveletek átlagos száma
ReadBytesPerSecond Másodpercenként beolvasott bájtok száma
WriteBytesPerSecond Másodpercenként írt bájtok száma
BytesPerSecond Olvasási vagy írási bájtok száma másodpercenként

Az összes lemez összesített értékeit a beállítással "condition": "IsAggregate=True"kaphatja meg. Egy adott eszköz (például /dev/sdf1) adatainak lekéréséhez állítsa be a következőt "condition": "Name=\\"/dev/sdf1\\"":

A LAD 3.0 telepítése és konfigurálása

Azure CLI

Ha a védett beállítások a Védett fájlban vannak Gépház.json és a nyilvános konfigurációs adatok nyilvánosak Gépház.json futtassa a következő parancsot.

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

A parancs feltételezi, hogy az Azure CLI Azure Resource Manager-módját használja. A LAD klasszikus üzemi modell virtuális gépekhez való konfigurálásához váltson asm módra (azure config mode asm), és hagyja ki az erőforráscsoport nevét a parancsban.

További információkért tekintse meg a platformfüggetlen parancssori felület dokumentációját.

PowerShell

Ha a védett beállítások a $protectedSettings változóban vannak, és a nyilvános konfigurációs adatok a változóban találhatók, futtassa ezt a $publicSettings parancsot:

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élda LAD 3.0 konfigurációra

Az előző definíciók alapján ez a szakasz egy minta LAD 3.0 bővítménykonfigurációt és néhány magyarázatot tartalmaz. Ha ezt a mintát az esetére szeretné alkalmazni, használja a saját tárfióknevét, a fiók SAS-jogkivonatát és az Event Hubs SAS-jogkivonatait.

Feljegyzés

Attól függően, hogy az Azure CLI-t vagy a PowerShellt használja-e a LAD telepítéséhez, a nyilvános és védett beállítások megadásának módja eltér:

  • Ha az Azure CLI-t használja, mentse a következő beállításokat a Védett Gépház.json és a Nyilvános Gépház.json fájlba az előző mintaparancs használatához.
  • Ha PowerShellt használ, mentse a következő beállításokat a következő $protectedSettings = '{ ... }'parancs futtatásával$protectedSettings.$publicSettings

Védett beállítások

A védett beállítások konfigurálása:

  • Egy tárfiók.
  • Egyező fiók SAS-jogkivonata.
  • Több fogadó (JsonBlob vagy EventHub SAS-jogkivonattal).
{
  "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"
      }
    ]
  }
}

Nyilvános beállítások

A nyilvános beállítások a következő LAD-t okozzák:

  • Töltse fel a százalékos processzoridő-metrikákat és a használt lemezterület-metrikákat a WADMetrics* táblába.
  • Üzenetek feltöltése a syslog-létesítményből "user" és a súlyosságból "info" a LinuxSyslog* táblába.
  • Töltsön fel nyers OMI-lekérdezési eredményeket (PercentProcessorTime és PercentIdleTime) a nevesített LinuxCPU táblába.
  • Töltse fel a fájl /var/log/myladtestlog hozzáfűzött sorait a MyLadTestLog táblába.

Az adatok minden esetben a következőre is fel lesznek töltve:

  • Azure Blob Storage. A tároló neve a fogadóban JsonBlob van definiálva.
  • A fogadóban EventHub megadott Event Hubs-végpont.
{
  "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"
    }
  ]
}

A resourceId konfigurációnak meg kell egyeznie a virtuális gép vagy a virtuálisgép-méretezési csoport beállításaival.

  • Az Azure platform metrikáinak diagramkészítése és riasztásai ismerik a resourceId virtuális gépet, amelyen dolgozik. A keresési kulccsal várhatóan megtalálja a virtuális gép resourceId adatait.
  • Ha Az Azure Automatikus skálázást használja, az resourceId automatikus skálázási konfigurációnak meg kell egyeznie a resourceId LAD által használtval.
  • Ez resourceId a LAD által írt JSON-blobok nevére épül.

Adatok megtekintése

Az Azure Portal használatával megtekintheti a teljesítményadatokat, vagy riasztásokat állíthat be:

Képernyőkép az Azure Portalról. A metrika használt lemezterülete ki van jelölve. Megjelenik az eredményként kapott diagram.

Az performanceCounters adatok mindig egy Azure Storage-táblában lesznek tárolva. Az Azure Storage API-k számos nyelvhez és platformhoz elérhetők.

A fogadóknak JsonBlob küldött adatokat a rendszer blobokban tárolja a védett beállításokban megnevezett tárfiókban. A blobadatokat bármely Azure Blob Storage API használatával felhasználhatja.

Ezeket a felhasználói felületi eszközöket is használhatja az Azure Storage-adatok eléréséhez:

Az Azure Storage Explorer munkamenetének alábbi képernyőképe egy teszt virtuális gépen egy megfelelően konfigurált LAD 3.0-bővítményből származó Azure Storage-táblákat és -tárolókat mutatja be. A kép nem felel meg pontosan a LAD 3.0-s mintakonfigurációnak.

Képernyőkép az Azure Storage Explorerről.

Az Event Hubs-végponton közzétett üzenetek felhasználásával kapcsolatos további információkért tekintse meg a vonatkozó Event Hubs-dokumentációt.

Következő lépések