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
.
Jalankan perintah berikut untuk menghapus alias yang sudah ada.
sudo update-alternatives --remove-all python
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:
- Pilih akun penyimpanan tujuan umum yang Anda inginkan untuk menulis ekstensi.
- Di menu di sebelah kiri, di bawah Keamanan + jaringan, pilih Tanda tangan akses bersama.
- Buat pilihan seperti yang dijelaskan sebelumnya.
- Pilih Membuat 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 AzMonSink
tidak 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 JsonBlob
sink. 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 tabelP10DV2S
- 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 JsonBlob
tidak 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 ditentukandisplayName
di bagianperformanceCounters
, 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 dariAzMonSink
, 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
atauEventHub
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 mejaLinuxSyslog*
. - Unggah baris yang ditambahkan dalam file
/var/log/myladtestlog
ke tabelMyLadTestLog
.
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 menggunakanresourceId
sebagai kunci pencarian. - Jika Anda menggunakan skala otomatis Azure,
resourceId
dalam konfigurasi skala otomatis harus cocok denganresourceId
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:
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:
- Penjelajah Server Visual Studio
- Azure Storage Explorer
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.
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.