Gunakan ekstensi diagnostik Linux 4.0 untuk memantau metrik dan log

Perhatian

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

Artikel ini menjelaskan versi terbaru ekstensi diagnostik Linux (LAD).

Penting

Untuk informasi mengenai versi 3.x, lihat Menggunakan ekstensi diagnostik Linux 3.0 untuk memantau metrik serta log. Untuk informasi tentang versi 2.3 dan yang lebih lama, lihat Memantau performa dan data diagnostik komputer virtual Linux.

Ekstensi diagnostik Linux membantu Anda memantau kesehatan VM Linux di Microsoft Azure. Linux diagnostic extension memiliki kemampuan berikut:

Sumber data Opsi penyesuaian Tujuan yang diperlukan Tujuan opsional
Metrik Penghitung, Agregasi, Rasio Sampel, Penentu Penyimpanan Tabel Azure EventHub, Azure Blob Storage (format JSON), Azure Monitor (baru di LAD 4.0)
Syslog Fasilitas, Tingkat Keparahan Penyimpanan Tabel Azure EventHub, Azure Blob Storage (Format JSON)
File Jalur Log, Tabel Tujuan Penyimpanan Tabel Azure EventHub, Azure Blob Storage (Format JSON)

Ekstensi ini berfungsi dengan model penyebaran Azure: Azure Resource Manager dan klasik.

Prasyarat

  • Agen Azure Linux 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 VM menjalankan versi agen tamu yang lebih lama, perbarui agen Linux.
  • Azure CLI. Siapkan lingkungan Azure CLI di mesin Anda.
  • Perintah wget. Jika Anda belum memilikinya, instal menggunakan manajer paket yang sesuai.
  • Langganan Azure dan akun penyimpanan tujuan umum untuk menyimpan data. Akun penyimpanan tujuan umum mendukung penyimpanan tabel, yang diperlukan. Akun penyimpanan blob tidak berfungsi.
  • Python 2.

Distribusi Linux yang didukung

Lihat Sistem operasi agen yang didukung.

Persyaratan Python

Ekstensi diagnostik Linux membutuhkan Python 2. Jika komputer virtual Anda menggunakan distribusi yang tidak menyertakan Python 2, instal.

Catatan

Saat ini kami berencana untuk menyambungkan semua versi Linux Diagnostic Extensions (LAD) dengan Azure Monitoring Agent baru, yang sudah mendukung Python 3. LAD akan dijadwalkan untuk penghentian yang menunggu pengumuman dan persetujuan.

Untuk menginstal Python 2, jalankan salah satu perintah sampel berikut:

  • 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 diberi alias ke python.

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

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

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

Menginstal ekstensi

Anda dapat mengaktifkan ekstensi ini untuk VM dan Virtual Machine Scale Set dengan menggunakan cmdlet Azure PowerShell, skrip Azure CLI, templat Azure Resource Manager (templat ARM), atau portal Azure. Untuk informasi selengkapnya, lihat Ekstensi dan fitur komputer virtual untuk Linux.

Catatan

Beberapa komponen ekstensi VM Diagnostik Linux juga dikirimkan dalam ekstensi VM Log Analytics. Konflik dapat muncul jika kedua ekstensi dibuat dalam templat ARM yang sama.

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

Gunakan instruksi penginstalan dan konfigurasi sampel yang dapat diunduh untuk mengonfigurasi LAD 4.0 ke:

  • Ambil dan simpan metrik yang sama dengan versi LAD 2.3 dan 3.x.
  • Kirim metrik ke sink Azure Monitor bersama dengan sink biasa ke Azure Storage. Fungsionalitas ini baru di LAD 4.0.
  • Ambil satu set metrik sistem file yang berguna, seperti di LAD 3.0.
  • Ambil koleksi syslog default yang diaktifkan oleh 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.

Penginstalan

Anda dapat menginstal dan mengonfigurasi LAD 4.0 di Azure CLI atau di Azure PowerShell.

Jika pengaturan terproteksi Anda ada di file ProtectedSettings.json dan informasi konfigurasi publik Anda ada di PublicSettings.json, jalankan perintah ini:

az vm extension set --publisher Microsoft.Azure.Diagnostics \
  --name LinuxDiagnostic --version 4.0 --resource-group <resource_group_name> \
  --vm-name <vm_name> --protected-settings ProtectedSettings.json \
  --settings PublicSettings.json

Perintah mengasumsikan bahwa Anda menggunakan mode Azure Resource Management dari Azure CLI. Untuk mengonfigurasi LAD untuk VM model penyebaran klasik, alihkan ke mode Manajemen Layanan (azure config mode asm) dan hilangkan nama grup sumber daya dalam perintah.

Untuk informasi selengkapnya, lihat dokumentasi CLI lintas platform.

Aktifkan pembaruan otomatis

Untuk mengaktifkan pembaruan otomatis agen, kami sarankan Anda mengaktifkan fitur Peningkatan Ekstensi Otomatis:

az vm extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic \
  --version 4.0 --resource-group <resource_group_name> --vm-name <vm_name> \
  --protected-settings ProtectedSettings.json --settings PublicSettings.json \
  --enable-auto-upgrade true

Penginstalan sampel

Dalam contoh ini, konfigurasi sampel mengumpulkan sekumpulan data standar dan mengirimkannya ke penyimpanan tabel. URL untuk konfigurasi sampel dan kontennya dapat berubah.

Catatan

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

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

Saat Anda mengaktifkan sink Azure Monitor baru, VM harus memiliki identitas yang ditetapkan sistem yang diaktifkan untuk menghasilkan token autentikasi Managed Service Identity (MSI). Anda dapat menambahkan pengaturan ini selama atau setelah pembuatan VM. Untuk instruksi tentang portal Azure, Azure CLI, PowerShell, dan Azure Resource Manager, lihat Mengonfigurasi identitas terkelola.

Sampel penginstalan - Azure CLI

# Set your Azure VM diagnostic variables.
my_subscription_id=<your_azure_subscription_id>
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 $my_subscription_id

# Enable system-assigned identity on the existing VM.
az vm identity assign --resource-group $my_resource_group --name $my_linux_vm

# Download the sample public settings. You could instead 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 --resource-group $my_resource_group \
  --name $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 4.0 --resource-group $my_resource_group --vm-name $my_linux_vm \
  --protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json

Sampel penginstalan untuk Virtual Machine Scale Sets - Azure CLI

# Set your Azure virtual machine scale set diagnostic variables.
my_subscription_id=<your_azure_subscription_id>
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 $my_subscription_id

# Enable system-assigned identity on the existing virtual machine scale set.
az vmss identity assign --resource-group $my_resource_group --name $my_linux_vmss

# 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 --resource-group $my_resource_group \
  --name $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 4.0 --resource-group $my_resource_group --vmss-name $my_linux_vmss \
  --protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json

Perbarui pengaturan ekstensi

Setelah Anda mengubah pengaturan yang dilindungi atau publik, jalankan perintah yang sama untuk menyebarkannya ke VM. Jika ada pengaturan yang diubah, pembaruan akan dikirim ke ekstensi. LAD memuat ulang konfigurasi dan menghidupkan ulang sendiri.

Bermigrasi dari versi ekstensi sebelumnya

Versi ekstensi terbaru adalah 4.0, yang saat ini dalam pratinjau publik. Versi 3.x yang lebih lama masih didukung. Versi 2.x tidak digunakan lagi sejak 31 Juli 2018.

Penting

Untuk bermigrasi dari 3.x ke versi ekstensi terbaru, hapus instalan ekstensi lama. Kemudian instal versi 4, yang mencakup konfigurasi yang diperbarui untuk sink dan identitas yang ditetapkan sistem untuk mengirim metrik ke sink Azure Monitor.

Saat Anda menginstal ekstensi baru, aktifkan peningkatan versi minor otomatis:

  • Pada komputer virtual model penyebaran Azure Resource Manager, sertakan "autoUpgradeMinorVersion": true dalam templat penyebaran komputer virtual.
  • Pada VM model penyebaran klasik, tentukan versi 4.* jika Anda menginstal ekstensi melalui Azure CLI atau PowerShell.

Anda dapat menggunakan akun penyimpanan yang sama dengan yang Anda gunakan untuk LAD 3.x.

Pengaturan terproteksi

Kumpulan informasi konfigurasi ini berisi informasi sensitif yang harus dilindungi dari tampilan publik. Ini berisi, misalnya, informasi masuk penyimpanan. Pengaturan ditransmisikan ke ekstensi, yang menyimpannya 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 tempat ekstensi menulis data.
storageAccountEndPoint (Opsional) Titik akhir yang mengidentifikasi cloud tempat akun penyimpanan berada. Jika pengaturan ini tidak ada, secara default, LAD menggunakan 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'). Token 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 proxy 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 menyediakan detail tentang setiap sink data yang didukung ekstensi.

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

Anda dapat membuat token tanda tangan akses bersama yang diperlukan melalui portal Azure:

  1. Pilih akun penyimpanan tujuan umum yang Anda inginkan untuk menulis ekstensi.
  2. Di menu di sebelah kiri, di bawah Keamanan + jaringan, pilih Tanda tangan akses bersama.
  3. Buat pilihan seperti yang dijelaskan sebelumnya.
  4. Pilih Membuat SAS dan string koneksi.

Cuplikan layar memperlihatkan halaman Tanda tangan akses bersama, yang memiliki Hasilkan SAS dan string koneksi.

Salin tanda tangan akses bersama yang dihasilkan ke bidang storageAccountSasToken . Hapus tanda tanya utama (?).

sinksConfig

Catatan

Pengaturan publik dan terproteksi memiliki bagian sinksConfig opsional. Bagian sinksConfig di pengaturan terproteksi hanya menyimpan konfigurasi sink EventHub dan JsonBlob, karena masuknya rahasia seperti sasURL. Konfigurasi sink AzMonSinktidak dapat disertakan dalam pengaturan terproteksi Anda.

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

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

Elemen Nilai
nama String yang digunakan untuk merujuk ke sink ini di tempat lain dalam konfigurasi ekstensi.
jenis Jenis sink yang ditentukan. Menentukan nilai lain, jika ada, dalam contoh jenis ini.

Ekstensi diagnostik Linux 4.0 mendukung dua jenis sink yang dilindungi: EventHub dan JsonBlob.

Sink EventHub

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

Entri "sasURL" berisi URL lengkap, termasuk token tanda tangan akses bersama, untuk hub peristiwa tempat data harus diterbitkan. LAD memerlukan tanda tangan akses bersama untuk memberi nama kebijakan yang memungkinkan klaim pengiriman. Berikut contohnya:

  • Buat namespace Event Hubs yang disebut contosohub.
  • Buat pusat aktivitas di namespace yang disebut syslogmsgs.
  • Buat kebijakan akses bersama di pusat aktivitas bernama writer yang memungkinkan klaim pengiriman.

Jika Anda membuat SAS yang baik hingga tengah malam UTC pada 1 Januari 2018, nilainya sasURL mungkin seperti contoh berikut.

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 atau tanda hubung ASCII alfanumerik huruf kecil.

Pengaturan publik

Struktur pengaturan publik berisi berbagai blok pengaturan yang mengontrol informasi yang dikumpulkan ekstensi. Setiap pengaturan, kecuali ladCfg, bersifat opsional. Jika Anda menentukan metrik atau kumpulan syslog di ladCfg, Anda juga harus menentukan StorageAccount. Anda harus menentukan elemen sinksConfig untuk mengaktifkan sink Azure Monitor untuk metrik dari LAD 4.0.

{
    "ladCfg":  { ... },
    "fileLogs": { ... },
    "StorageAccount": "the storage account to receive data",
    "sinksConfig": { ... },
    "mdsdHttpProxy" : ""
}
Elemen Nilai
StorageAccount Nama akun penyimpanan tempat ekstensi menulis data. Harus nama yang ditentukan dalam pengaturan yang dilindungi.
mdsdHttpProxy (Opsional) Proksi yang ditentukan dalam pengaturan terproteksi. Jika nilai privat ditetapkan, itu mengambil alih nilai publik. Tempatkan pengaturan proksi yang berisi rahasia, seperti kata sandi, di pengaturan terproteksi.

Bagian berikut memberikan detail tentang elemen yang tersisa.

ladCfg

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

Struktur ladCfg mengontrol pengumpulan metrik dan log untuk pengiriman ke layanan Azure Monitor Metrics dan ke sink data lainnya. Tentukan antara performanceCounters dan syslogEvents, atau keduanya. Tentukan juga struktur metrics.

Jika Anda tidak ingin mengaktifkan kumpulan syslog atau metrik, tentukan struktur kosong untuk ladCfg elemen :

"ladCfg": {
    "diagnosticMonitorConfiguration": {}
}
Elemen Nilai
eventVolume (Opsional) Mengontrol jumlah partisi yang dibuat dalam tabel penyimpanan. Nilainya harus "Large", "Medium", atau "Small". Nilai defaultnya adalah "Medium".
sampleRateInSeconds (Opsional) Interval default antara kumpulan metrik mentah, yaitu, tidak diagregasi. Laju sampel terkecil yang didukung adalah 15 detik. Default adalah 15.

Metrik

"metrics": {
    "resourceId": "/subscriptions/...",
    "metricAggregation" : [
        { "scheduledTransferPeriod" : "PT1H" },
        { "scheduledTransferPeriod" : "PT5M" }
    ]
}
Elemen Nilai
resourceId ID sumber daya Azure Resource Manager dari VM atau Set Skala Komputer Virtual tempat VM berada. Tentukan juga pengaturan ini jika konfigurasi menggunakan sink JsonBlob apa pun.
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" : "cpu idle time",
                    "locale" : "en-us"
                }
            ]
        }
    ]
}

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

  • 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. Contohnya,"MyEventHubSink, MyJsonSink, MyAzMonSink". Untuk informasi lebih lanjut, lihat sinksConfig (pengaturan terproteksi) dan sinksConfig (pengaturan publik).
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. Lihat daftar penghitung yang tersedia.
counterSpecifier Mengidentifikasi metrik dalam namespace Metrik Azure Monitor.
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 diatur, nilai sampleRateInSeconds mengatur interval koleksi. 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 untuk melampirkan ke data di Metrik Azure Monitor saat menampilkan di Guest (classic) namespace metrik. Label ini dalam bahasa yang ditentukan oleh pengaturan lokal terkait. LAD mengabaikan bidang ini. Catatan: Jika melihat metrik yang sama di azure.vm.linux.guestmetrics Namespace Metrik, yang tersedia jika AzMonSink dikonfigurasi, nama tampilan sepenuhnya bergantung pada penghitung. Untuk menemukan pemetaan antara penghitung dan nama, lihat Metrik yang didukung oleh penyedia bawaan.

counterSpecifier adalah pengidentifikasi arbitrer. Konsumen metrik, seperti fitur pembuatan bagan dan pemberitahuan portal Azure, gunakan counterSpecifier sebagai kunci yang mengidentifikasi metrik atau instans metrik.

Untuk metrik builtin, sebaiknya nilai counterSpecifier yang dimulai dengan /builtin/. Untuk mengumpulkan instans metrik tertentu, lampirkan pengidentifikasi instans ke counterSpecifier nilai . Berikut adalah beberapa contoh:

  • /builtin/Processor/PercentIdleTime. Waktu menganggur rata-rata di semua vCPU
  • /builtin/Disk/FreeSpace(/mnt). Ruang kosong untuk /mnt sistem file
  • /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. 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 selengkapnya, lihat Nilai untuk fasilitas di halaman manual syslog.
minSeverity Tingkat keparahan syslog, seperti "LOG_ERR" atau "LOG_INFO". Untuk informasi selengkapnya, lihat Nilai untuk tingkat di halaman manual syslog. 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. Anda tidak dapat menonaktifkan penyimpanan data ke tabel.

Perilaku pemartisian untuk tabel ini 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.

sinksConfig

Bagian publik sinksConfig opsional memungkinkan pengiriman metrik ke sink Azure Monitor selain akun Penyimpanan dan tampilan Metrik Tamu default.

Catatan

Pengaturan publik dan terproteksi memiliki bagian sinksConfig opsional. Bagian sinksConfig di pengaturan publik hanya menyimpan konfigurasi sink AzMonSink. Konfigurasi sink EventHub dan JsonBlobtidak dapat disertakan dalam pengaturan publik Anda.

Catatan

Bagian sinksConfig memerlukan identitas yang ditetapkan sistem untuk diaktifkan pada kumpulan skala VM atau mesin virtual. Anda dapat mengaktifkan identitas yang ditetapkan sistem melalui portal Azure, CLI, PowerShell, atau Azure Resource Manager. Ikuti instruksi terperinci atau lihat contoh pemasangan sebelumnya di artikel ini.

  "sinksConfig": {
    "sink": [
      {
        "name": "AzMonSink",
        "type": "AzMonSink",
        "AzureMonitor": {}
      }
    ]
  },

fileLogs

Bagian fileLogs mengontrol pengambilan file log. LAD mengambil baris teks baru saat ditulis ke file. Ini menulisnya ke baris tabel dan sink tertentu, seperti JsonBlob dan 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. Itu juga harus memiliki izin eksekusi pada semua direktori di jalur ke file itu. Setelah LAD diinstal, untuk memeriksa izin, jalankan sudo su omsagent -c 'cat /path/to/file'.

"fileLogs": [
    {
        "file": "/var/log/mydaemonlog",
        "table": "MyDaemonEvents",
        "sinks": ""
    }
]
Elemen Nilai
file Jalur lengkap file log yang akan ditonton dan diambil. Jalur tidak dapat menentukan 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.

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

Metrik yang didukung oleh penyedia bawaan

Metrik default yang didukung LAD dikumpulkan di semua sistem file, disk, atau nama. Untuk metrik yang tidak teragregasi, lihat dukungan metrik sink Azure Monitor yang lebih baru.

Catatan

Nama tampilan untuk setiap metrik berbeda tergantung pada namespace metrik tempatnya berada:

  • Guest (classic) diisi dari akun penyimpanan Anda: yang ditentukan displayName di bagian performanceCounters , atau nama tampilan default seperti yang terlihat di Portal Microsoft Azure. Untuk VM, di bawah Pengaturan Diagnostik Pemantauan>, pilih tab Metrik.
  • azure.vm.linux.guestmetrics diisi dari AzMonSink, jika dikonfigurasi: "azure.vm.linux.guestmetrics Nama Tampilan" yang ditentukan dalam tabel berikut.

Nilai metrik antara Guest (classic) dan azure.vm.linux.guestmetrics versi berbeda. Sementara metrik klasik memiliki agregasi tertentu yang diterapkan di agen, metrik baru adalah penghitung yang tidak diagregasi, memberikan pelanggan fleksibilitas untuk mengagregasi seperti yang diinginkan pada waktu melihat/memperingatkan.

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 Nama Tampilan azure.vm.linux.guestmetrics Makna
PercentIdleTime cpu idle time Persentase waktu selama jendela agregasi saat prosesor menjalankan perulangan idle kernel
PercentProcessorTime cpu percentage guest os Persentase waktu menjalankan utas yang tidak menganggur
PercentIOWaitTime cpu io wait time Persentase waktu menunggu operasi I/O selesai
PercentInterruptTime cpu interrupt time Persentase waktu menjalankan interupsi perangkat keras atau perangkat lunak dan panggilan prosedur yang ditangguhkan (DPC)
PercentUserTime cpu user time Dari waktu tidak menganggur selama jendela agregasi, persentase waktu yang dihabiskan dalam mode pengguna pada prioritas normal
PercentNiceTime cpu nice time Dari waktu tidak menganggur, persentase yang dihabiskan untuk prioritas yang diturunkan (bagus)
PercentPrivilegedTime cpu privileged time Dari waktu tidak menganggur, persentase yang dihabiskan dalam mode hak 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.

metrik bawaan untuk kelas Memori

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

Penghitung Nama Tampilan azure.vm.linux.guestmetrics Makna
AvailableMemory memory available Memori fisik yang tersedia dalam MiB
PercentAvailableMemory mem. percent available Memori fisik yang tersedia sebagai persentase dari total memori
UsedMemory memory used Memori fisik yang digunakan (MiB)
PercentUsedMemory memory percentage Memori fisik yang digunakan sebagai persentase dari total memori
PagesPerSec pages Total penomoran (baca/tulis)
PagesReadPerSec page reads Halaman yang dibaca dari penyimpan pendukung, seperti file pertukaran, file program, dan file yang dipetakan
PagesWrittenPerSec page writes Halaman yang ditulis ke penyimpan dukungan, seperti file pertukaran dan file yang dipetakan
AvailableSwap swap available Ruang pertukaran yang tidak digunakan (MiB)
PercentAvailableSwap swap percent available Ruang pertukaran yang tidak digunakan sebagai persentase dari total pertukaran
UsedSwap swap used Ruang pertukaran yang digunakan (MiB)
PersenUsedSwap swap percent used 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 Nama Tampilan azure.vm.linux.guestmetrics Makna
BytesTransmitted network out guest os Total byte yang dikirim sejak mulai
BytesReceived network in guest os Total byte yang diterima sejak startup
BytesTotal network total bytes Total byte yang dikirim atau diterima sejak mulai
PacketsTransmitted packets sent Total paket yang dikirim sejak startup
PacketsReceived packets received Total paket yang diterima sejak mulai
TotalRxErrors packets received errors Jumlah kesalahan yang diterima sejak startup
TotalTxErrors packets sent errors Jumlah kesalahan transmisi sejak mulai
TotalCollisions network collisions Jumlah tabrakan yang dilaporkan oleh port jaringan sejak startup

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 Nama Tampilan azure.vm.linux.guestmetrics Makna
FreeSpace filesystem free space Ruang disk yang tersedia dalam byte
UsedSpace filesystem used space Ruang disk yang digunakan dalam byte
PercentFreeSpace filesystem % free space Persentase ruang kosong
PercentUsedSpace filesystem % used space Persentase ruang yang digunakan
PercentFreeInodes filesystem % free inodes Persentase simpul indeks yang tidak digunakan (inode)
PercentUsedInodes filesystem % used inodes Persentase inode yang dialokasikan (sedang digunakan) yang dijumlahkan dari semua sistem file
BytesReadPerSecond filesystem read bytes/sec Byte yang dibaca per detik
BytesWrittenPerSecond filesystem write bytes/sec Byte yang ditulis per detik
BytesPerSecond filesystem bytes/sec Byte yang dibaca atau ditulis per detik
ReadsPerSecond filesystem reads/sec Operasi baca per detik
WritesPerSecond filesystem writes/sec Operasi tulis per detik
TransfersPerSecond filesystem transfers/sec Operasi baca atau tulis per detik

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 Nama Tampilan azure.vm.linux.guestmetrics Makna
ReadsPerSecond disk reads Operasi baca per detik
WritesPerSecond disk writes Operasi tulis per detik
TransfersPerSecond disk transfers Total operasi per detik
AverageReadTime disk read time Rata-rata detik per operasi baca
AverageWriteTime disk write time Rata-rata detik per operasi tulis
AverageTransferTime disk transfer time Rata-rata detik per operasi
AverageDiskQueueLength disk queue length Rata-rata jumlah operasi disk yang diantrikan
ReadBytesPerSecond disk read guest os Jumlah byte yang dibaca per detik
WriteBytesPerSecond disk write guest os Jumlah byte yang ditulis per detik
BytesPerSecond disk total bytes Jumlah byte yang dibaca atau ditulis per detik

Contoh konfigurasi LAD 4.0

Berdasarkan definisi sebelumnya, bagian ini memberikan sampel konfigurasi ekstensi LAD 4.0 dan beberapa penjelasan. Untuk menerapkan sampel ini, gunakan nama akun penyimpanan Anda sendiri, token tanda tangan akses bersama akun, dan token SAS Azure Event Hubs.

Catatan

Bergantung pada apakah Anda menggunakan Azure CLI atau Azure 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, jalankan $protectedSettings = '{ ... }' dan $publicSettings = '{ ... }' untuk menyimpan pengaturan berikut ke $protectedSettings dan $publicSettings.

Konfigurasi pengaturan terproteksi

Pengaturan terproteksi mengonfigurasi:

  • Akun penyimpanan.
  • Token tanda tangan akses bersama 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"
      }
    ]
  }
}

Konfigurasi 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 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 Event Hub, 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": "cpu percentage guest os"
              }
            ],
            "condition": "IsAggregate=TRUE",
            "class": "Processor"
          },
          {
            "unit": "Bytes",
            "type": "builtin",
            "counter": "UsedSpace",
            "counterSpecifier": "/builtin/FileSystem/UsedSpace",
            "annotation": [
              {
                "locale": "en-us",
                "displayName": "Used disfilesystem used space"
              }
            ],
            "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"
        }
      }
    }
  },
  "sinksConfig": {
    "sink": [
      {
        "name": "AzMonSink",
        "type": "AzMonSink",
        "AzureMonitor": {}
      }
    ]
  },
  "fileLogs": [
    {
      "file": "/var/log/myladtestlog",
      "table": "MyLadTestLog",
      "sinks": "FilelogJsonBlob,LoggingEventHub"
    }
  ]
}

resourceId Dalam konfigurasi harus cocok dengan VM atau Virtual Machine Scale Set.

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

Melihat data Anda

Gunakan portal Azure untuk melihat data performa atau mengatur peringatan:

Cuplikan layar memperlihatkan halaman Metrik di portal Azure dan Ketersediaan dipilih.

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 di Azure Blob Storage API 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 4.0 yang dikonfigurasi dengan benar pada VM pengujian. Gambar tidak sama persis dengan konfigurasi LAD 4.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

  • Di Azure Monitor, buat pemberitahuan untuk metrik yang Anda kumpulkan.
  • Buat bagan pemantauan untuk metrik Anda.
  • Buat Set Skala Komputer Virtual dengan menggunakan metrik Anda untuk mengontrol penskalakan otomatis.