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:
Futtassa a következő parancsot a meglévő aliasok eltávolításához.
sudo update-alternatives --remove-all python
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.
- Klasszikus üzemi modell virtuális gépeken adja meg a verziót
- 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 sztringjeibuiltin
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:
- Válassza ki azt az általános célú tárfiókot, amelyhez a bővítményt írni szeretné.
- 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.
- A korábban ismertetett módon végezze el a kijelöléseket.
- Válassza az SAS létrehozása lehetőséget.
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ű
contosohub
né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 StorageAccount
azt 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
performanceCounters
syslogEvents
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 sampleRateInSeconds a 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 performanceCounters
ismertetett 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 omsagent
nevű alösszetevő rögzíti. Az adatgyűjtéshez fileLogs
győ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 PercentInterruptTime
a 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
vagyEventHub
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"
aLinuxSyslog*
táblába. - Töltsön fel nyers OMI-lekérdezési eredményeket (
PercentProcessorTime
ésPercentIdleTime
) a nevesítettLinuxCPU
táblába. - Töltse fel a fájl
/var/log/myladtestlog
hozzáfűzött sorait aMyLadTestLog
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épresourceId
adatait. - Ha Az Azure Automatikus skálázást használja, az
resourceId
automatikus skálázási konfigurációnak meg kell egyeznie aresourceId
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:
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:
- Visual Studio Server Explorer
- Azure Storage Explorer
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.
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
- Az Azure Monitorban hozzon létre riasztásokat a gyűjtött metrikákhoz.
- Monitorozási diagramok létrehozása a metrikákhoz.
- Hozzon létre egy virtuálisgép-méretezési csoportot a metrikákkal az automatikus skálázás szabályozásához.