Menggunakan Linux diagnostic extension 3.0 untuk memantau metrik dan log

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang mendekati status End Of Life (EOL). Harap pertimbangkan penggunaan dan rencanakan yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.

Dokumen ini menjelaskan versi 3.0 dan yang lebih baru dari Linux diagnostic extension (LAD).

Penting

Untuk informasi tentang versi 2.3 dan yang lebih lama, lihat Memantau performa dan data diagnostik komputer virtual Linux.

Pengantar

Linux diagnostic extension membantu pengguna memantau kesehatan komputer virtual Linux yang berjalan di Microsoft Azure. Linux diagnostic extension memiliki kemampuan berikut:

  • Mengumpulkan metrik performa sistem dari komputer virtual dan menyimpannya dalam tabel tertentu di akun penyimpanan yang ditunjuk.
  • Mengambil peristiwa log dari syslog dan menyimpannya dalam tabel tertentu di akun penyimpanan yang ditunjuk.
  • Memungkinkan pengguna untuk mengkustomisasi metrik data yang dikumpulkan dan diunggah.
  • Memungkinkan pengguna untuk menyesuaikan fasilitas syslog dan tingkat keparahan peristiwa yang dikumpulkan dan diunggah.
  • Memungkinkan pengguna untuk mengunggah file log tertentu ke tabel penyimpanan yang ditentukan.
  • Mendukung pengiriman metrik dan peristiwa log ke titik akhir Azure Event Hubs arbitrer dan blob berformat JSON di akun penyimpanan yang ditentukan.

Ekstensi ini berfungsi dengan kedua model penyebaran Azure.

Pasang ekstensi ini pada komputer virtual

Anda dapat mengaktifkan ekstensi dengan menggunakan cmdlet Azure PowerShell, skrip Azure CLI, templat Azure Resource Monitor (templat ARM), atau portal Microsoft Azure. Untuk informasi selengkapnya, lihat Fitur-fitur Ekstensi.

Catatan

Beberapa komponen ekstensi komputer virtual LAD juga dikirim dalam ekstensi komputer virtual Analitik Log. Karena arsitektur ini, konflik dapat muncul jika kedua ekstensi dibuat dalam templat ARM yang sama.

Untuk menghindari konflik waktu pemasangan, gunakan dependsOn direktif untuk memastikan ekstensi dipasang secara berurutan. Ekstensi dapat menginstal dalam urutan apa pun.

Instruksi instalasi ini dan konfigurasi sampel yang dapat diunduh untuk mengonfigurasi LAD 3.0 untuk:

  • Mengambil dan menyimpan metrik yang sama seperti di LAD 2.3.
  • Mengambil sekumpulan metrik sistem file yang berguna. Fungsionalitas ini baru dalam LAD 3.0.
  • Mengambil koleksi syslog default yang diaktifkan LAD 2.3.
  • Aktifkan pengalaman portal Azure untuk pembuatan bagan dan pemberitahuan tentang metrik VM.

Konfigurasi yang dapat diunduh hanyalah sebuah contoh. Ubah sesuai dengan kebutuhan Anda.

Prasyarat

  • Azure Linux Agent versi 2.2.0 atau yang lebih baru. Sebagian besar gambar galeri Azure VM Linux menyertakan versi 2.2.7 atau lebih baru. Jalankan /usr/sbin/waagent -version untuk mengonfirmasi versi yang dipasang pada komputer virtual. Jika komputer virtual menjalankan versi yang lebih lama, Perbarui agen tamu.
  • Azure CLI. Jika perlu, siapkan lingkungan Azure CLI di komputer Anda.
  • Perintah wget. Jika Anda belum memilikinya, instal menggunakan manajer paket yang sesuai.
  • Langganan Azure yang sudah ada.
  • Akun penyimpanan serbaguna yang sudah ada untuk menyimpan data. Akun penyimpanan serbaguna harus mendukung penyimpanan tabel. Akun penyimpanan blob tidak akan berfungsi.
  • Python 2.

Persyaratan Python

Ekstensi diagnostik Linux membutuhkan Python 2. Jika komputer virtual Anda menggunakan distribusi yang tidak menyertakan Python 2 secara default, Anda harus memasangnya. Sampel perintah berikut memasang Python 2 pada berbagai distribusi:

  • Red Hat, CentOS, Oracle: yum install -y python2
  • Ubuntu, Debian: apt-get install -y python2
  • SUSE: zypper install -y python2

File python2 yang dapat dieksekusi harus dialiaskan ke python. Berikut adalah salah satu metode untuk mengatur alias ini:

  1. Jalankan perintah berikut untuk menghapus alias yang sudah ada.

    sudo update-alternatives --remove-all python
    
  2. Jalankan perintah berikut untuk membuat alias.

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

Penginstalan sampel

Konfigurasi sampel yang diunduh dalam contoh berikut mengumpulkan sekumpulan data standar dan mengirimkannya ke penyimpanan tabel. URL untuk konfigurasi sampel dan kontennya dapat berubah.

Dalam kebanyakan kasus, Anda harus mengunduh salinan file JSON pengaturan portal dan menyesuaikannya untuk kebutuhan Anda. Kemudian gunakan templat atau otomatisasi Anda sendiri untuk menggunakan versi file konfigurasi yang dikustomisasi daripada mengunduh dari URL setiap waktu.

Catatan

Untuk sampel berikut, isi nilai yang benar untuk variabel di bagian pertama sebelum Anda menjalankan kode.

Sampel 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

Sampel Azure CLI untuk menginstal LAD 3.0 pada instans set skala komputer virtual

#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

Sampel PowerShell

$storageAccountName = "yourStorageAccountName"
$storageAccountResourceGroup = "yourStorageAccountResourceGroupName"
$vmName = "yourVMName"
$VMresourceGroup = "yourVMResourceGroupName"

# Get the VM object
$vm = Get-AzVM -Name $vmName -ResourceGroupName $VMresourceGroup

# Get the public settings template from GitHub and update the templated values for storage account and resource ID
$publicSettings = (Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/azure-linux-extensions/master/Diagnostic/tests/lad_2_3_compatible_portal_pub_settings.json).Content
$publicSettings = $publicSettings.Replace('__DIAGNOSTIC_STORAGE_ACCOUNT__', $storageAccountName)
$publicSettings = $publicSettings.Replace('__VM_RESOURCE_ID__', $vm.Id)

# If you have customized public settings, you can inline those rather than using the preceding template: $publicSettings = '{"ladCfg":  { ... },}'

# Generate a SAS token for the agent to use to authenticate with the storage account
$sasToken = New-AzStorageAccountSASToken -Service Blob,Table -ResourceType Service,Container,Object -Permission "racwdlup" -Context (Get-AzStorageAccount -ResourceGroupName $storageAccountResourceGroup -AccountName $storageAccountName).Context -ExpiryTime $([System.DateTime]::Now.AddYears(10))

# Build the protected settings (storage account SAS token)
$protectedSettings="{'storageAccountName': '$storageAccountName', 'storageAccountSasToken': '$sasToken'}"

# Finally, install the extension with the settings you built
Set-AzVMExtension -ResourceGroupName $VMresourceGroup -VMName $vmName -Location $vm.Location -ExtensionType LinuxDiagnostic -Publisher Microsoft.Azure.Diagnostics -Name LinuxDiagnostic -SettingString $publicSettings -ProtectedSettingString $protectedSettings -TypeHandlerVersion 3.0

Perbarui pengaturan ekstensi

Setelah Anda mengubah pengaturan terproteksi atau publik, sebarkan pengaturan tersebut ke VM dengan menjalankan perintah yang sama. Jika pengaturan berubah, pembaruan dikirim ke ekstensi. LAD memuat ulang konfigurasi dan menghidupkan ulang sendiri.

Bermigrasi dari versi ekstensi sebelumnya

Versi terbaru dari ekstensi ini adalah 4.0.

Penting

Ekstensi ini memperkenalkan perubahan yang memutus pada konfigurasi. Salah satu perubahan tersebut meningkatkan keamanan ekstensi, sehingga kompatibilitas mundur dengan 2.x tidak dapat dipertahankan. Selain itu, penerbit ekstensi untuk ekstensi ini berbeda dari penerbit untuk versi 2.x.

Untuk melakukan migrasi dari 2.x ke versi baru, terlebih dahulu hapus instalasi ekstensi lama (di bawah nama penerbit lama). Kemudian pasang versi 3.

Rekomendasi:

  • Pasang ekstensi dengan peningkatan versi minor otomatis diaktifkan.
    • Pada komputer virtual model penyebaran klasik, tentukan versi 3.* jika Anda memasang ekstensi melalui Azure XPLAT CLI atau PowerShell.
    • Pada komputer virtual model penyebaran Azure Resource Manager, sertakan "autoUpgradeMinorVersion": true dalam templat penyebaran komputer virtual.
  • Gunakan akun penyimpanan baru atau berbeda untuk LAD 3.0. LAD 2.3 dan LAD 3.0 memiliki beberapa ketidaksesuaian kecil yang membuat berbagi akun merepotkan:
    • LAD 3.0 menyimpan peristiwa syslog dalam tabel yang memiliki nama yang berbeda.
    • Untai (karakter) counterSpecifier untuk metrik builtin berbeda di LAD 3.0.

Pengaturan terproteksi

Kumpulan informasi konfigurasi ini berisi informasi sensitif yang harus dilindungi dari tampilan publik. Ini berisi, misalnya, informasi masuk penyimpanan. Pengaturan ini ditransmisikan ke dan disimpan oleh ekstensi dalam bentuk terenkripsi.

{
    "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": { ... }
}
Nama Nilai
storageAccountName Nama akun penyimpanan di mana data ditulis oleh ekstensi.
storageAccountEndPoint (Opsional) Titik akhir yang mengidentifikasi cloud tempat akun penyimpanan berada. Jika pengaturan ini tidak ada, default LAD adalah cloud publik Azure, https://core.windows.net. Untuk menggunakan akun penyimpanan di Azure Jerman, Azure Government, atau Microsoft Azure yang dioperasikan oleh 21Vianet, tetapkan nilai ini sesuai kebutuhan.
storageAccountSasToken Token SAS Akun untuk layanan tabel dan blob (ss='bt'). Ini berlaku untuk kontainer dan objek (srt='co'). Ini memberikan izin tambah, buat, daftar, perbarui, dan tulis (sp='acluw'). Jangan sertakan tanda tanya utama (?).
mdsdHttpProxy (Opsional) Informasi proksi HTTP yang perlu disambungkan ekstensi ke akun penyimpanan dan titik akhir yang ditentukan.
sinksConfig (Opsional) Rincian tujuan alternatif tempat metrik dan peristiwa dapat dikirimkan. Bagian berikut ini membahas secara rinci tentang setiap sink data yang didukung oleh ekstensi.

Untuk mendapatkan token SAS dalam templat ARM, gunakan fungsi listAccountSas tersebut. Untuk templat contoh, lihat Contoh fungsi daftar.

Anda dapat membuat token SAS yang diperlukan melalui portal Azure:

  1. Pilih akun penyimpanan tujuan umum yang Anda inginkan untuk menulis ekstensi.
  2. Di menu di sebelah kiri, di Pengaturan, pilih Tanda tangan akses bersama.
  3. Buat pilihan seperti yang dijelaskan sebelumnya.
  4. Pilih Hasilkan SAS.

Cuplikan layar menampilkan halaman Tanda tangan akses bersama dengan tombol Hasilkan S A S.

Salin SAS yang dihasilkan ke dalam bidang storageAccountSasToken. Hapus tanda tanya utama (?).

sinksConfig

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

Bagian opsional sinksConfig menentukan lebih banyak tujuan tempat ekstensi mengirimkan informasi yang dikumpulkannya. Array sink berisi objek untuk setiap sink data tambahan. Atribut type menentukan atribut lain dalam objek.

Elemen Nilai
nama Untai (karakter) yang mengacu pada sink ini di tempat lain dalam konfigurasi ekstensi.
jenis Jenis sink yang ditentukan. Menentukan nilai lain (jika ada) dalam instans jenis ini.

LAD versi 3.0 mendukung dua jenis sink: EventHub dan JsonBlob.

Sink EventHub

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

Entri "sasURL" berisi URL lengkap, termasuk token SAS, untuk pusat aktivitas tempat data harus diterbitkan. LAD memerlukan SAS untuk memberi nama kebijakan yang memungkinkan klaim pengiriman.

Contohnya:

  • Buat namespace layanan Azure Event Hubs yang disebut contosohub.
  • Buat pusat aktivitas di namespace yang disebut syslogmsgs.
  • Buat kebijakan akses bersama di hub peristiwa yang memungkinkan klaim kirim. Beri nama kebijakan writer.

Jika SAS Anda baik hingga tengah malam UTC pada 1 Januari 2018, nilai sasURL mungkin seperti contoh ini:

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

Untuk informasi lebih lanjut tentang membuat dan mengambil informasi tentang token SAS untuk Event Hubs, lihat Membuat token SAS.

Sink JsonBlob

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

Data yang diarahkan ke sink JsonBlob disimpan dalam blob di Azure Storage. Setiap instans LAD membuat blob setiap jam untuk setiap nama sink. Setiap blob selalu berisi array objek JSON yang valid secara sintaksis. Entri baru ditambahkan ke array secara atomik.

Blob disimpan dalam kontainer yang memiliki nama yang sama dengan sink. Aturan Microsoft Azure Storage untuk nama kontainer blob berlaku untuk nama JsonBlobsink. Nama harus memiliki antara 3 dan 63 karakter ASCII alfanumerik huruf kecil atau tanda hubung.

Pengaturan publik

Struktur pengaturan publik berisi berbagai blok pengaturan yang mengontrol informasi yang dikumpulkan ekstensi. Setiap pengaturan bersifat opsional. Jika Anda menentukan ladCfg, Anda juga harus menentukan StorageAccount.

{
    "ladCfg":  { ... },
    "perfCfg": { ... },
    "fileLogs": { ... },
    "StorageAccount": "the storage account to receive data",
    "mdsdHttpProxy" : ""
}
Elemen Nilai
StorageAccount Nama akun penyimpanan di mana data ditulis oleh ekstensi. Ini harus berupa nama yang ditentukan dalam pengaturan terproteksi.
mdsdHttpProxy (Opsional) Sama seperti dalam pengaturan terproteksi. Nilai publik ditimpa oleh nilai privat, jika telah ditetapkan. Tempatkan pengaturan proksi yang berisi rahasia, seperti kata sandi, di pengaturan terproteksi.

Bagian berikut ini menyediakan rincian untuk elemen yang tersisa.

ladCfg

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

Struktur ladCfg bersifat opsional. Ini mengontrol pengumpulan metrik dan log yang dikirimkan ke layanan Azure Monitor Metrics dan ke sink data lainnya. Anda harus menentukan:

  • Baik performanceCounters atau syslogEvents atau keduanya.
  • Struktur metrics.
Elemen Nilai
eventVolume (Opsional) Mengontrol jumlah partisi yang dibuat dalam tabel penyimpanan. Pasti "Large", "Medium", atau "Small". Jika nilai tidak ditentukan, defaultnya adalah "Medium".
sampleRateInSeconds (Opsional) Interval default antara kumpulan metrik mentah (tidak teragregasi). Laju sampel terkecil yang didukung adalah 15 detik. Jika nilainya tidak ditentukan, defaultnya adalah 15.

Metrik

"metrics": {
    "resourceId": "/subscriptions/...",
    "metricAggregation" : [
        { "scheduledTransferPeriod" : "PT1H" },
        { "scheduledTransferPeriod" : "PT5M" }
    ]
}
Elemen Nilai
resourceId ID sumber daya Azure Resource Manager komputer virtual atau skala yang ditetapkan untuk komputer virtual tersebut. Pengaturan ini juga harus ditentukan jika ada sink JsonBlob yang digunakan dalam konfigurasi.
scheduledTransferPeriod Frekuensi di mana metrik agregat dihitung dan ditransfer ke Azure Monitor Metrics. Frekuensi dinyatakan sebagai interval waktu IS 8601. Periode transfer terkecil adalah 60 detik, yaitu PT1M. Tentukan setidaknya satu scheduledTransferPeriod.

Sampel metrik yang ditentukan di bagian performanceCounters dikumpulkan setiap 15 detik atau pada laju sampel yang ditentukan secara eksplisit untuk penghitung. Jika beberapa frekuensi scheduledTransferPeriod muncul, seperti pada contoh, setiap agregasi dihitung secara independen.

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

Bagian opsional performanceCounters ​​mengontrol kumpulan metrik. Sampel mentah diagregasi untuk setiap scheduledTransferPeriod untuk menghasilkan nilai berikut:

  • Rata-rata
  • Minimum
  • Maksimum
  • Nilai yang terakhir dikumpulkan
  • Jumlah sampel mentah yang digunakan untuk menghitung agregat
Elemen Nilai
sinks (Opsional) Daftar nama sink yang dipisahkan koma tempat LAD mengirimkan hasil metrik gabungan. Semua metrik gabungan diterbitkan ke setiap sink yang terdaftar. Contoh: "EHsink1, myjsonsink". Untuk informasi selengkapnya, lihat sinksConfig .
jenis Mengidentifikasi penyedia metrik yang sebenarnya.
kelas Bersama dengan "counter", mengidentifikasi metrik tertentu dalam namespace layanan penyedia.
penghitung Bersama dengan "class", mengidentifikasi metrik tertentu dalam namespace layanan penyedia.
counterSpecifier Mengidentifikasi metrik tertentu dalam namespace Azure Monitor Metrics.
kondisi (Opsional) Memilih instans tertentu dari objek tempat diterapkannya metrik. Atau memilih agregasi di semua instans objek tersebut.
sampleRate Interval IS 8601 yang menetapkan laju tempat sampel mentah untuk metrik ini dikumpulkan. Jika nilai tidak disetel, interval pengumpulan disetel oleh nilai sampleRateInSeconds. Laju sampel terpendek yang didukung adalah 15 detik (PT15S).
unit Menentukan unit untuk metrik. Harus salah satu dari string berikut: "Count", "Bytes", "Seconds", "Percent", "CountPerSecond", "BytesPerSecond", "Millisecond". Konsumen dari data yang dikumpulkan mengharapkan nilai data yang dikumpulkan cocok dengan unit ini. LAD mengabaikan bidang ini.
displayName Label yang akan dilampirkan ke data di Metrik Azure Monitor. Label ini dalam bahasa yang ditentukan oleh pengaturan lokal terkait. LAD mengabaikan bidang ini.

counterSpecifier adalah pengidentifikasi arbitrer. Konsumen metrik, seperti fitur bagan dan peringatan portal Azure, gunakan counterSpecifier sebagai "kunci" yang mengidentifikasi metrik atau turunan metrik.

Untuk metrik builtin, sebaiknya nilai counterSpecifier yang dimulai dengan /builtin/. Jika Anda mengumpulkan instans metrik tertentu, kami sarankan Anda melampirkan pengidentifikasi instans ke nilai counterSpecifier.

Berikut adalah beberapa contoh:

  • /builtin/Processor/PercentIdleTime - Waktu idle rata-rata di semua vCPU
  • /builtin/Disk/FreeSpace(/mnt) - Ruang kosong untuk sistem file /mnt
  • /builtin/Disk/FreeSpace - Ruang kosong rata-rata di semua sistem file yang dipasang

LAD dan portal Azure tidak mengharapkan nilai counterSpecifier cocok dengan pola apa pun. Harap konsisten saat membuat nilai counterSpecifier.

Saat Anda menentukan performanceCounters, LAD selalu menulis data ke tabel di Azure Storage. Data yang sama dapat ditulis ke blob JSON atau Event Hubs atau keduanya. Tetapi Anda tidak dapat menonaktifkan penyimpanan data ke tabel.

Semua instans LAD yang menggunakan nama akun penyimpanan dan titik akhir yang sama menambahkan metrik dan lognya ke tabel yang sama. Jika terlalu banyak VM yang menulis ke partisi tabel yang sama, Azure dapat membatasi penulisan ke partisi tersebut.

Pengaturan eventVolume menyebabkan entri tersebar ke partisi 1 (kecil), 10 (sedang), atau 100 (besar). Biasanya, partisi sedang cukup untuk menghindari pembatasan lalu lintas.

Fitur Azure Monitor Metrics dari portal Azure menggunakan data dalam tabel ini untuk menghasilkan grafik atau untuk memicu peringatan. Nama tabel adalah gabungan dari string ini:

  • WADMetrics
  • "scheduledTransferPeriod" untuk nilai agregat yang disimpan dalam tabel
  • P10DV2S
  • Tanggal, dalam bentuk "YYYYMMDD", yang berubah setiap 10 hari

Contohnya meliputi WADMetricsPT1HP10DV2S20170410 dan WADMetricsPT1MP10DV2S20170609.

syslogEvents

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

Bagian opsional syslogEvents ​​mengontrol kumpulan peristiwa log dari syslog. Jika bagian tersebut dihilangkan, peristiwa syslog tidak diambil sama sekali.

Koleksi syslogEventConfiguration ini memiliki satu entri untuk setiap fasilitas syslog yang diminati. Jika minSeverity adalah "NONE" untuk fasilitas tertentu, atau jika fasilitas itu tidak muncul di elemen sama sekali, tidak ada peristiwa dari fasilitas itu yang diambil.

Elemen Nilai
sinks Daftar nama sink yang dipisahkan koma tempat peristiwa log individual diterbitkan. Semua peristiwa log yang cocok dengan pembatasan di syslogEventConfiguration diterbirkan ke setiap sink yang tercantum. Contoh: "EHforsyslog"
facilityName Nama fasilitas syslog, seperti "LOG_USER" atau "LOG\LOCAL0". Untuk informasi lebih lanjut, lihat bagian "Fasilitas" pada halaman syslog man.
minSeverity Tingkat keparahan syslog, seperti "LOG_ERR" atau "LOG_INFO". Untuk informasi lebih lanjut, lihat bagian "Tingkat" pada halaman syslog man. Ekstensi menangkap peristiwa yang dikirim ke fasilitas pada atau di atas tingkat yang ditentukan.

Saat Anda menentukan syslogEvents, LAD selalu menulis data ke tabel di Azure Storage. Data yang sama dapat ditulis ke blob JSON atau Event Hubs atau keduanya. Tetapi Anda tidak dapat menonaktifkan penyimpanan data ke tabel.

Perilaku partisi untuk tabel sama seperti yang dijelaskan untuk performanceCounters. Nama tabel adalah gabungan dari string ini:

  • LinuxSyslog
  • Tanggal, dalam bentuk "YYYYMMDD", yang berubah setiap 10 hari

Contohnya meliputi LinuxSyslog20170410 dan LinuxSyslog20170609.

perfCfg

Bagian perfCfg ini bersifat opsional. Ini mengontrol berjalannya kueri Open Management Infrastructure (OMI) arbitrer.

"perfCfg": [
    {
        "namespace": "root/scx",
        "query": "SELECT PercentAvailableMemory, PercentUsedSwap FROM SCX_MemoryStatisticalInformation",
        "table": "LinuxOldMemory",
        "frequency": 300,
        "sinks": ""
    }
]
Elemen Nilai
namespace (Opsional)Namespace layanan OMI tempat kueri harus dijalankan. Jika tidak ditentukan, nilai defaultnya adalah "root/scx". Ini diimplementasikan oleh penyedia lintas platform Pusat Sistem.
pertanyaan Kueri OMI untuk dijalankan.
tabel (Opsional) Tabel Azure Storage, di akun penyimpanan yang ditetapkan. Untuk informasi selengkapnya, lihat Pengaturan terproteksi.
frekuensi (Opsional) Jumlah detik antara kueri berjalan. Nilai defaultnya adalah 300 (5 menit). Nilai minimumnya adalah 15 detik.
sinks (Opsional) Daftar nama sink yang dipisahkan koma tempat hasil metrik sampel mentah harus dipublikasikan. Tidak ada agregasi sampel mentah ini yang dihitung oleh ekstensi atau oleh Metrik Azure Monitor.

Antara "table" dan "sinks", atau keduanya harus ditentukan.

fileLogs

Bagian fileLogs mengontrol pengambilan file log. LAD mengambil baris teks baru saat ditulis ke file. LAD menulisnya ke baris tabel dan/atau sink yang ditentukan (JsonBlob atau EventHub).

Catatan

fileLogs diambil oleh subkomponen LAD yang disebut omsagent. Untuk mengumpulkan fileLogs, pastikan bahwa pengguna omsagent telah membaca izin pada file yang Anda tentukan. Pengguna juga harus memiliki izin eksekusi pada semua direktori di jalur ke file tersebut. Setelah LAD dipasang, Anda dapat memeriksa izin dengan menjalankan sudo su omsagent -c 'cat /path/to/file'.

"fileLogs": [
    {
        "file": "/var/log/mydaemonlog",
        "table": "MyDaemonEvents",
        "sinks": ""
    }
]
Elemen Nilai
file Nama jalur lengkap file log yang akan diawasi dan diambil. Nama jalur harus menamai satu file. Nama jalur tidak dapat memberi nama direktori atau berisi karakter kartubebas. Akun pengguna omsagent harus memiliki akses baca ke jalur file.
tabel (Opsional) Tabel Azure Storage tempat baris baru dari "ekor" file ditulis. Tabel harus berada di akun penyimpanan yang ditetapkan, seperti yang ditentukan dalam konfigurasi terproteksi.
sinks (Opsional) Daftar nama sink yang dipisahkan koma tempat tujuan baris log dikirim.

Baik "table" atau "sinks", atau keduanya, harus ditentukan.

Metrik yang didukung oleh penyedia bawaan

Penyedia metrik builtin adalah sumber metrik yang paling menarik bagi banyak pengguna. Metrik ini tercakup dalam lima kelas besar:

  • Pemroses
  • Memori
  • Jaringan
  • Sistem file
  • Disk

metrik bawaan untuk kelas Prosesor

Kelas metrik Prosesor menyediakan informasi tentang penggunaan prosesor di VM. Ketika persentase diagregasi, hasilnya adalah rata-rata di semua CPU.

Dalam VM dua vCPU, jika satu vCPU sibuk 100 persen dan yang lainnya 100 persen tidak aktif, PercentIdleTime yang dilaporkan adalah 50. Jika setiap vCPU 50 persen sibuk untuk periode yang sama, hasil yang dilaporkan juga 50. Dalam VM empat vCPU, ketika satu vCPU 100 persen sibuk dan yang lainnya tidak aktif, PercentIdleTime yang dilaporkan adalah 75.

Penghitung Makna
PercentIdleTime Persentase waktu selama jendela agregasi saat prosesor menjalankan perulangan idle kernel
PercentProcessorTime Persentase waktu menjalankan utas non-idle
PercentIOWaitTime Persentase waktu menunggu operasi IO selesai
PercentInterruptTime Persentase waktu menjalankan interupsi perangkat keras atau perangkat lunak dan DPC (panggilan prosedur yang ditangguhkan)
PercentUserTime Dari waktu non-idle selama jendela agregasi, persentase waktu yang dihabiskan dalam mode pengguna pada prioritas normal
PercentNiceTime Dari waktu non-idle, persentase yang dihabiskan untuk prioritas yang diturunkan (bagus)
PercentPrivilegedTime Dari waktu non-idle, persentase yang dihabiskan dalam mode istimewa (kernel)

Empat penghitung pertama harus berjumlah 100 persen. Tiga penghitung terakhir juga berjumlah 100 persen. Ketiga penghitung ini membagi jumlah PercentProcessorTime, PercentIOWaitTime, dan PercentInterruptTime.

Untuk mengagregasi satu metrik di semua prosesor, atur "condition": "IsAggregate=TRUE". Untuk mendapatkan metrik untuk prosesor tertentu, seperti prosesor logika kedua dari komputer virtual empat vCPU, tetapkan "condition": "Name=\\"1\\"". Nomor prosesor logika berada dalam rentang [0..n-1].

metrik bawaan untuk kelas Memori

Kelas Memori metrik menyediakan informasi tentang penggunaan memori, penomoran, dan pertukaran.

Penghitung Makna
AvailableMemory Memori fisik yang tersedia dalam MiB
PercentAvailableMemory Memori fisik yang tersedia sebagai persentase dari total memori
UsedMemory Memori fisik yang digunakan (MiB)
PercentUsedMemory Memori fisik yang digunakan sebagai persentase dari total memori
PagesPerSec Total penomoran (baca/tulis)
PagesReadPerSec Halaman yang dibaca dari penyimpan pendukung, seperti file pertukaran, file program, dan file yang dipetakan
PagesWrittenPerSec Halaman yang ditulis ke penyimpan dukungan, seperti file pertukaran dan file yang dipetakan
AvailableSwap Ruang pertukaran yang tidak digunakan (MiB)
PercentAvailableSwap Ruang pertukaran yang tidak digunakan sebagai persentase dari total pertukaran
UsedSwap Ruang pertukaran yang digunakan (MiB)
PersenUsedSwap Ruang pertukaran yang digunakan sebagai persentase dari total pertukaran

Kelas metrik ini hanya memiliki satu instans. Atribut "condition" tidak memiliki pengaturan yang berguna dan harus dihilangkan.

metrik bawaan untuk kelas Jaringan

Kelas Jaringan metrik menyediakan informasi tentang aktivitas jaringan pada antarmuka jaringan individual sejak mulai.

LAD tidak mengekspos metrik bandwidth. Anda bisa mendapatkan metrik ini dari metrik host.

Penghitung Makna
BytesTransmitted Total byte yang dikirim sejak mulai
BytesReceived Total byte yang diterima sejak startup
BytesTotal Total byte yang dikirim atau diterima sejak mulai
PacketsTransmitted Total paket yang dikirim sejak startup
PacketsReceived Total paket yang diterima sejak mulai
TotalRxErrors Jumlah kesalahan yang diterima sejak startup
TotalTxErrors Jumlah kesalahan transmisi sejak mulai
TotalCollisions Jumlah tabrakan yang dilaporkan oleh port jaringan sejak startup

Meskipun kelas Jaringan di-instans, LAD tidak mendukung penangkapan metrik Jaringan yang diagregasi di semua perangkat jaringan. Untuk mendapatkan metrik untuk antarmuka tertentu, seperti eth0, tetapkan "condition": "InstanceID=\\"eth0\\"".

metrik bawaan untuk kelas sistem File

Kelas sistem file metrik menyediakan informasi tentang penggunaan sistem file. Nilai absolut dan persentase dilaporkan karena akan ditampilkan kepada pengguna biasa (bukan root).

Penghitung Makna
FreeSpace Ruang disk yang tersedia dalam byte
UsedSpace Ruang disk yang digunakan dalam byte
PercentFreeSpace Persentase ruang kosong
PercentUsedSpace Persentase ruang yang digunakan
PercentFreeInodes Persentase simpul indeks yang tidak digunakan (inode)
PercentUsedInodes Persentase inode yang dialokasikan (sedang digunakan) yang dijumlahkan dari semua sistem file
BytesReadPerSecond Byte yang dibaca per detik
BytesWrittenPerSecond Byte yang ditulis per detik
BytesPerSecond Byte yang dibaca atau ditulis per detik
ReadsPerSecond Operasi baca per detik
WritesPerSecond Operasi tulis per detik
TransfersPerSecond Operasi baca atau tulis per detik

Anda bisa mendapatkan nilai teragregasi di semua sistem file dengan mengatur "condition": "IsAggregate=True". Dapatkan nilai untuk sistem file yang dipasang tertentu, seperti "/mnt", dengan mengatur "condition": 'Name="/mnt"'.

Catatan

Jika Anda bekerja di portal Microsoft Azure, alih-alih JSON, formulir bidang kondisinya adalah Name='/mnt'.

metrik bawaan untuk kelas Disk

Kelas Disk metrik menyediakan informasi tentang penggunaan perangkat disk. Statistik ini berlaku untuk seluruh drive.

Ketika perangkat memiliki beberapa sistem file, penghitung untuk perangkat tersebut, secara efektif, diagregasi di semua sistem file.

Penghitung Makna
ReadsPerSecond Operasi baca per detik
WritesPerSecond Operasi tulis per detik
TransfersPerSecond Total operasi per detik
AverageReadTime Rata-rata detik per operasi baca
AverageWriteTime Rata-rata detik per operasi tulis
AverageTransferTime Rata-rata detik per operasi
AverageDiskQueueLength Rata-rata jumlah operasi disk yang diantrikan
ReadBytesPerSecond Jumlah byte yang dibaca per detik
WriteBytesPerSecond Jumlah byte yang ditulis per detik
BytesPerSecond Jumlah byte yang dibaca atau ditulis per detik

Anda bisa mendapatkan nilai teragregasi di semua disk dengan mengatur "condition": "IsAggregate=True". Untuk mendapatkan informasi untuk perangkat tertentu (misalnya, /dev/sdf1), tetapkan "condition": "Name=\\"/dev/sdf1\\"".

Pasang dan konfigurasikan LAD 3.0

Azure CLI

Jika pengaturan terproteksi Anda berada dalam file ProtectedSettings.json dan informasi konfigurasi publik Anda di PublicSettings.json, jalankan perintah berikut.

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

Perintah mengasumsikan Anda menggunakan mode Azure Resource Manager dari Azure CLI. Untuk mengonfigurasi LAD untuk komputer virtual model penyebaran klasik, beralihlah ke mode "asm" (azure config mode asm) dan hilangkan nama grup sumber daya dalam perintah.

Untuk informasi selengkapnya, lihat dokumentasi CLI lintas platform.

PowerShell

Jika pengaturan terproteksi Anda berada dalam variabel $protectedSettingsdan informasi konfigurasi publik Anda ada dalam variabel $publicSettings, jalankan perintah ini:

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

Contoh konfigurasi LAD 3.0

Berdasarkan definisi sebelumnya, bagian ini menyediakan konfigurasi ekstensi LAD 3.0 sampel dan beberapa penjelasan. Untuk menerapkan sampel ini ke kasus Anda, gunakan nama akun penyimpanan, token SAS akun, dan token SAS Event Hubs Anda sendiri.

Catatan

Bergantung pada apakah Anda menggunakan Azure CLI atau PowerShell untuk menginstal LAD, metode untuk menyediakan pengaturan publik dan terproteksi berbeda:

  • Jika Anda menggunakan Azure CLI, simpan pengaturan berikut ke ProtectedSettings.json dan PublicSettings.json untuk menggunakan perintah sampel sebelumnya.
  • Jika Anda menggunakan PowerShell, simpan pengaturan berikut ini ke $protectedSettings dan $publicSettings dengan menjalankan $protectedSettings = '{ ... }'.

Pengaturan terproteksi

Pengaturan terproteksi mengonfigurasi:

  • Akun penyimpanan.
  • Token SAS akun yang cocok.
  • Beberapa sink (JsonBlob atau EventHub dengan token 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"
      }
    ]
  }
}

Pengaturan publik

Pengaturan publik menyebabkan LAD:

  • Mengunggah metrik waktu-prosesor-persen dan metrik ruang disk terpakai ke tabel WADMetrics*.
  • Unggah pesan dari fasilitas syslog "user" dan keparahan "info" ke meja LinuxSyslog*.
  • Unggah hasil kueri OMI mentah (PercentProcessorTime dan PercentIdleTime) ke tabel LinuxCPU yang diberi nama.
  • Unggah baris yang ditambahkan dalam file /var/log/myladtestlog ke tabel MyLadTestLog.

Dalam setiap kasus, data juga diunggah ke:

  • Azure Blob Storage. Nama kontainer seperti yang ditetapkan dalam sink JsonBlob.
  • Titik akhir Azure Event Hubs, seperti yang ditentukan di sink 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"
    }
  ]
}

resourceId dalam konfigurasi harus cocok dengan yang ada di VM atau kumpulan skala komputer virtual.

  • Bagan dan peringatan metrik platform Azure mengetahui resourceId komputer virtual yang sedang Anda kerjakan. Fitur ini mengharapkan untuk menemukan data untuk VM Anda dengan menggunakan kunci pencarian resourceId.
  • Jika Anda menggunakan Azure Autoscale, resourceId dalam konfigurasi autoscale harus cocok dengan resourceId yang digunakan LAD.
  • resourceId dibangun untuk nama-nama blob JSON yang ditulis oleh LAD.

Melihat data Anda

Gunakan portal Microsoft Azure untuk menampilkan data performa atau untuk mengatur pemberitahuan:

Cuplikan layar menunjukkan portal Azure. Ruang disk terpakai pada metrik dipilih. Bagan yang dihasilkan ditampilkan.

Data performanceCounters selalu disimpan dalam tabel Azure Storage. API Azure Storage tersedia dalam banyak bahasa dan platform.

Data yang dikirim ke sink JsonBlob disimpan dalam blob di akun penyimpanan yang dinamai dalam pengaturan terproteksi. Anda dapat menggunakan data blob dengan menggunakan API Azure Blob Storage apa pun.

Anda juga dapat menggunakan alat UI ini untuk mengakses data di Azure Storage:

Cuplikan layar sesi Azure Storage Explorer berikut ini memperlihatkan tabel dan kontainer Azure Storage yang dihasilkan dari ekstensi LAD 3.0 yang dikonfigurasi dengan benar pada VM pengujian. Gambar tidak sama persis dengankonfigurasi LAD 3.0 sampel.

Cuplikan layar memperlihatkan Azure Storage Explorer.

Untuk informasi lebih lanjut cara menggunakan pesan yang diterbitkan ke titik akhir Azure Event Hubs, lihatdokumentasi Azure Event Hubs yang relevan.

Langkah berikutnya