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:
Jalankan perintah berikut untuk menghapus alias yang sudah ada.
sudo update-alternatives --remove-all python
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.
- Pada komputer virtual model penyebaran klasik, tentukan versi
- 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 metrikbuiltin
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:
- Pilih akun penyimpanan tujuan umum yang Anda inginkan untuk menulis ekstensi.
- Di menu di sebelah kiri, di Pengaturan, pilih Tanda tangan akses bersama.
- Buat pilihan seperti yang dijelaskan sebelumnya.
- Pilih Hasilkan SAS.
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 JsonBlob
sink. 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
atausyslogEvents
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 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 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 $protectedSettings
dan 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
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"
}
]
}
}
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 hasil kueri OMI mentah (
PercentProcessorTime
danPercentIdleTime
) ke tabelLinuxCPU
yang diberi nama. - 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 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 pencarianresourceId
. - Jika Anda menggunakan Azure Autoscale,
resourceId
dalam konfigurasi autoscale harus cocok denganresourceId
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:
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:
- 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 3.0 yang dikonfigurasi dengan benar pada VM pengujian. Gambar tidak sama persis dengankonfigurasi LAD 3.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 autoscaling.