Memantau mesin virtual dengan Azure Monitor: Beban Kerja

Artikel ini adalah bagian dari skenario Monitor mesin virtual dan beban kerja mereka di Azure Monitor. Ini menjelaskan cara memantau beban kerja yang berjalan pada sistem operasi tamu mesin virtual Anda. Artikel ini mencakup rincian tentang menganalisis dan memberi tahu berbagai sumber data pada mesin virtual Anda.

Konfigurasikan pengumpulan data tambahan

Wawasan VM hanya mengumpulkan data performa dari sistem operasi tamu mesin yang diaktifkan. Anda dapat mengaktifkan pengumpulan data performa tambahan, kejadian, dan data pemantauan lainnya dari agen dengan mengonfigurasi ruang kerja Analitik Log. Ini dikonfigurasi hanya sekali karena setiap agen yang terhubung ke ruang kerja secara otomatis mengunduh konfigurasi dan segera mulai mengumpulkan data yang ditentukan.

Lihat Sumber data agen di Azure Monitor untuk daftar sumber data yang tersedia dan detail tentang mengonfigurasinya.

Catatan

Anda tidak dapat secara selektif mengonfigurasi pengumpulan data untuk mesin yang berbeda. Semua mesin yang terhubung ke ruang kerja menggunakan konfigurasi untuk ruang kerja itu.

Penting

Berhati-hatilah untuk mengumpulkan hanya data yang Anda butuhkan. Biaya dikaitkan dengan data apa pun yang dikumpulkan di ruang kerja Anda. Data yang Anda kumpulkan hanya boleh mendukung analisis dan pemberitahuan skenario tertentu.

Konversi logika paket manajemen

Sejumlah besar pelanggan yang menerapkan Azure Monitor saat ini memantau beban kerja komputer virtual mereka dengan menggunakan paket manajemen di System Center Operations Manager. Tidak ada alat migrasi untuk mengonversi aset dari Operations Manager ke Azure Monitor karena platform ini pada dasarnya berbeda. Sebagai gantinya, migrasi Anda akan menerapkan implementasi Azure Monitor standar saat Anda menggunakan Operations Manager. Saat Anda mengustomisasi Azure Monitor untuk memenuhi persyaratan berbagai aplikasi serta komponen dan seiring Azure Monitor mendapatkan lebih banyak fitur, Anda akan dapat mulai menghentikan berbagai paket manajemen dan agen di Operations Manager.

Alih-alih mencoba untuk mereplikasi seluruh fungsi paket manajemen, menganalisis pemantauan kritis yang disediakan oleh paket manajemen. Putuskan apakah Anda dapat mereplikasi persyaratan pemantauan tersebut dengan menggunakan metode yang dijelaskan di bagian sebelumnya. Dalam banyak kasus, Anda dapat mengonfigurasi pengumpulan data dan aturan pemberitahuan di Azure Monitor yang mereplikasi fungsionalitas yang cukup sehingga Anda dapat menghentikan paket manajemen tertentu. Paket manajemen sering mencakup ratusan bahkan ribuan aturan dan monitor.

Dalam kebanyakan skenario, Operations Manager menggabungkan pengumpulan data dan ketentuan pemberitahuan dalam aturan atau monitor yang sama. Di Azure Monitor, Anda harus mengonfigurasi pengumpulan data dan aturan pemberitahuan untuk setiap skenario pemberitahuan.

Salah satu strateginya adalah fokus pada monitor dan aturan yang memicu pemberitahuan di lingkungan Anda. Lihat laporan yang ada yang tersedia di Operations Manager, seperti Pemberitahuan dan Pemberitahuan Paling Umum, yang dapat membantu Anda mengidentifikasi pemberitahuan dari waktu ke waktu. Anda juga dapat menjalankan kueri berikut pada Operations Database untuk mengevaluasi pemberitahuan terbaru yang paling umum.

select AlertName, COUNT(AlertName) as 'Total Alerts' from
Alert.vAlertResolutionState ars
inner join Alert.vAlertDetail adt on ars.AlertGuid = adt.AlertGuid
inner join Alert.vAlert alt on ars.AlertGuid = alt.AlertGuid
group by AlertName
order by 'Total Alerts' DESC

Mengevaluasi output untuk mengidentifikasi pemberitahuan spesifik untuk migrasi. Abaikan pemberitahuan apa pun yang disetel atau diketahui bermasalah. Tinjau paket manajemen Anda untuk mengidentifikasi pemberitahuan penting yang menarik yang tidak pernah dikeluarkan.

Peristiwa Windows atau Syslog

Dalam skenario pemantauan umum ini, sistem operasi dan aplikasi menulis ke peristiwa Windows atau Syslog. Buat pemberitahuan segera setelah satu peristiwa ditemukan. Atau Anda dapat menunggu serangkaian peristiwa yang cocok dalam jendela waktu tertentu.

Untuk mengumpulkan peristiwa ini, konfigurasikan ruang kerja Log Analytics untuk mengumpulkan peristiwa Windows atau peristiwa Syslog. Ada biaya untuk konsumsi dan retensi data ini di ruang kerja.

Peristiwa Windows disimpan di tabel Peristiwa dan peristiwa Syslog disimpan di tabel Syslog di ruang kerja Log Analytics.

Kueri log sampel

  • Hitung jumlah peristiwa berdasarkan log peristiwa komputer dan tipe peristiwa.

    Event
    | summarize count() by Computer, EventLog, EventLevelName
    | sort by Computer, EventLog, EventLevelName
    
  • Hitung jumlah peristiwa menurut log peristiwa komputer dan ID peristiwa.

    Event
    | summarize count() by Computer, EventLog, EventLevelName
    | sort by Computer, EventLog, EventLevelName
    

Membuat aturan pemberitahuan

Sampel berikut membuat pemberitahuan ketika peristiwa Windows tertentu dibuat. Ini menggunakan aturan pemberitahuan pengukuran metrik untuk membuat pemberitahuan terpisah untuk setiap komputer.

  • Buat aturan pemberitahuan pada peristiwa Windows tertentu.

    Contoh ini menunjukkan peristiwa dalam log Aplikasi. Tentukan ambang batas 0 dan pelanggaran berturut-turut lebih besar dari 0.

    Event 
    | where EventLog == "Application"
    | where EventID == 123 
    | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m)
    
  • Buat aturan pemberitahuan tentang peristiwa Syslog dengan tingkat keparahan tertentu.

    Contoh berikut menunjukkan peristiwa kesalahan otorisasi. Tentukan ambang batas 0 dan pelanggaran berturut-turut lebih besar dari 0.

    Syslog
    | where Facility == "auth"
    | where SeverityLevel == "err"
    | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m)
    

Penghitung performa kustom

Anda mungkin memerlukan penghitung kinerja yang dibuat oleh aplikasi atau sistem operasi tamu yang tidak dikumpulkan oleh wawasan VM. Konfigurasikan ruang kerja Log Analytics untuk mengumpulkan data performa. Ada biaya untuk konsumsi dan retensi data ini di ruang kerja. Berhati-hatilah untuk tidak mengumpulkan data performa yang sudah dikumpulkan oleh wawasan VM.

Data performa yang dikonfigurasi oleh ruang kerja disimpan dalam tabel Perf. Tabel ini memiliki struktur yang berbeda dari tabel InsightsMetrics yang digunakan oleh wawasan VM.

Kueri log sampel

Untuk contoh kueri log yang menggunakan penghitung kinerja kustom, lihat Kueri log dengan catatan Performa.

Pemberitahuan sampel

  • Buat pemberitahuan tentang nilai maksimum penghitung.

    Perf 
    | where CounterName == "My Counter" 
    | summarize AggregatedValue = max(CounterValue) by Computer
    
  • Buat pemberitahuan pada nilai rata-rata penghitung.

    Perf 
    | where CounterName == "My Counter" 
    | summarize AggregatedValue = avg(CounterValue) by Computer
    

Log teks

Beberapa aplikasi menulis peristiwa yang ditulis ke log teks yang disimpan di mesin virtual. Tentukan log kustom di ruang kerja Log Analytics untuk mengumpulkan peristiwa ini. Anda menentukan lokasi log teks dan konfigurasi terperincinya. Ada biaya untuk konsumsi dan retensi data ini di ruang kerja.

Peristiwa dari log teks disimpan dalam tabel dengan nama yang mirip dengan MyTable_CL. Anda menentukan nama dan struktur log saat Anda mengonfigurasinya.

Kueri log sampel

Nama kolom yang digunakan di sini misalnya saja. Anda menentukan nama kolom untuk log khusus Anda ketika Anda mendefinisikannya. Nama kolom untuk log Anda kemungkinan besar akan berbeda.

  • Hitung jumlah peristiwa menurut kode.

    MyApp_CL
    | summarize count() by code
    

Aturan pemberitahuan sampel

  • Buat aturan pemberitahuan pada setiap peristiwa kesalahan.

    MyApp_CL
    | where status == "Error"
    | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m)
    

Log IIS

IIS yang berjalan pada mesin Windows menulis log ke file teks. Konfigurasikan ruang kerja Log Analytics untuk mengumpulkan log IIS. Ada biaya untuk konsumsi dan retensi data ini di ruang kerja.

Catatan dari log IIS disimpan di tabel W3CIISLog di ruang kerja Log Analytics.

Kueri log sampel

  • Hitung entri log IIS berdasarkan URL untuk host www.contoso.com.

    W3CIISLog 
    | where csHost=="www.contoso.com" 
    | summarize count() by csUriStem
    
  • Tinjau total byte yang diterima oleh masing-masing mesin IIS.

    W3CIISLog 
    | summarize sum(csBytes) by Computer
    

Aturan pemberitahuan sampel

  • Buat aturan pemberitahuan pada catatan apa pun dengan status pengembalian 500.

    W3CIISLog 
    | where scStatus==500
    | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m)
    

Layanan atau daemon

Untuk memantau status layanan Windows atau daemon Linux, aktifkan solusi Pelacakan Perubahan dan Inventaris di Azure Automation. Azure Monitor tidak memiliki kemampuan untuk memantau status layanan atau daemon. Ada beberapa metode yang mungkin digunakan, seperti mencari peristiwa di log peristiwa Windows, tetapi metode ini tidak dapat diandalkan. Anda juga dapat mencari proses yang terkait dengan layanan yang berjalan pada mesin dari tabel VMProcess. Tabel ini hanya diperbarui setiap jam, yang biasanya tidak cukup untuk memberitahukan.

Catatan

Solusi Pelacakan dan Analisis Perubahan berbeda dari fitur Analisis Perubahan dalam wawasan VM. Fitur ini dalam pratinjau publik dan belum termasuk dalam skenario ini.

Untuk opsi yang berbeda untuk mengaktifkan solusi Change Tracking pada mesin virtual Anda, lihat Change Tracking dan Inventaris. Solusi ini mencakup metode untuk mengonfigurasi mesin virtual dalam skala besar. Anda harus membuat akun Azure Automation untuk mendukung solusi.

Saat Anda mengaktifkan Change Tracking dan Inventaris, dua tabel baru dibuat di ruang kerja Log Analytics Anda. Gunakan tabel ini untuk aturan pemberitahuann kueri log.

Tabel Deskripsi
ConfigurationChange Perubahan data konfigurasi dalam tamu
ConfigurationData Status terakhir yang dilaporkan untuk data konfigurasi tamu

Kueri log sampel

  • Daftar semua layanan dan daemon yang baru saja dimulai.

    ConfigurationChange
    | where ConfigChangeType == "Daemons" or ConfigChangeType == "WindowsServices"
    | where SvcState == "Running"
    | sort by Computer, SvcName
    

Sampel aturan pemberitahuan

  • Buat aturan pemberitahuan berdasarkan kapan layanan tertentu berhenti.

    ConfigurationData
    | where SvcName == "W3SVC" 
    | where SvcState == "Stopped"
    | where ConfigDataType == "WindowsServices"
    | where SvcStartupType == "Auto"
    | summarize AggregatedValue = count() by Computer, SvcName, SvcDisplayName, SvcState, bin(TimeGenerated, 15m)
    
  • Buat aturan pemberitahuan berdasarkan saat salah satu dari satu set layanan berhent.

    let services = dynamic(["omskd","cshost","schedule","wuauserv","heathservice","efs","wsusservice","SrmSvc","CertSvc","wmsvc","vpxd","winmgmt","netman","smsexec","w3svc","sms_site_vss_writer","ccmexe","spooler","eventsystem","netlogon","kdc","ntds","lsmserv","gpsvc","dns","dfsr","dfs","dhcp","DNSCache","dmserver","messenger","w32time","plugplay","rpcss","lanmanserver","lmhosts","eventlog","lanmanworkstation","wnirm","mpssvc","dhcpserver","VSS","ClusSvc","MSExchangeTransport","MSExchangeIS"]);
    ConfigurationData
    | where ConfigDataType == "WindowsServices"
    | where SvcStartupType == "Auto"
    | where SvcName in (services)
    | where SvcState == "Stopped"
    | project TimeGenerated, Computer, SvcName, SvcDisplayName, SvcState
    | summarize AggregatedValue = count() by Computer, SvcName, SvcDisplayName, SvcState, bin(TimeGenerated, 15m)
    

Pemantauan Port

Pemantauan port memverifikasi bahwa mesin mendengarkan pada port tertentu. Dua strategi potensial untuk pemantauan pelabuhan dijelaskan di sini.

Tabel agen Dependensi

Gunakan VMConnection dan VMBoundPort untuk menganalisis koneksi dan port pada mesin. Tabel VMBoundPort diperbarui setiap menit dengan setiap proses berjalan di komputer dan port yang didengarkannya. Anda dapat membuat pemberitahuan kueri log yang mirip dengan pemberitahuan detak jantung yang hilang untuk menemukan proses yang telah berhenti atau memebritahukan ketika mesin tidak mendengarkan pada port tertentu.

Kueri log sampel

  • Tinjau jumlah port yang terbuka pada VM Anda, yang berguna untuk menilai VM mana yang memiliki konfigurasi dan kerentanan keamanan.

    VMBoundPort
    | where Ip != "127.0.0.1"
    | summarize by Computer, Machine, Port, Protocol
    | summarize OpenPorts=count() by Computer, Machine
    | order by OpenPorts desc
    
  • Buat daftar port terikat pada VM Anda, yang berguna untuk menilai VM mana yang memiliki konfigurasi dan kerentanan keamanan.

    VMBoundPort
    | distinct Computer, Port, ProcessName
    
  • Menganalisis aktivitas jaringan berdasarkan port untuk menentukan bagaimana aplikasi atau layanan Anda dikonfigurasi.

    VMBoundPort
    | where Ip != "127.0.0.1"
    | summarize BytesSent=sum(BytesSent), BytesReceived=sum(BytesReceived), LinksEstablished=sum(LinksEstablished), LinksTerminated=sum(LinksTerminated), arg_max(TimeGenerated, LinksLive) by Machine, Computer, ProcessName, Ip, Port, IsWildcardBind
    | project-away TimeGenerated
    | order by Machine, Computer, Port, Ip, ProcessName
    
  • Tinjau byte yang dikirim dan terima tren untuk VM Anda.

    VMConnection
    | summarize sum(BytesSent), sum(BytesReceived) by bin(TimeGenerated,1hr), Computer
    | order by Computer desc
    | render timechart
    
  • Gunakan kegagalan koneksi dari waktu ke waktu untuk menentukan apakah tingkat kegagalan stabil atau berubah.

    VMConnection
    | where Computer == <replace this with a computer name, e.g. ‘acme-demo’>
    | extend bythehour = datetime_part("hour", TimeGenerated)
    | project bythehour, LinksFailed
    | summarize failCount = count() by bythehour
    | sort by bythehour asc
    | render timechart
    
  • Tautkan tren status untuk menganalisis perilaku dan status koneksi mesin.

    VMConnection
    | where Computer == <replace this with a computer name, e.g. ‘acme-demo’>
    | summarize  dcount(LinksEstablished), dcount(LinksLive), dcount(LinksFailed), dcount(LinksTerminated) by bin(TimeGenerated, 1h)
    | render timechart
    

Pengelola Sambungan

Fitur Connection Monitor dari Network Watcher digunakan untuk menguji koneksi ke port pada mesin virtual. Sebuah tes memverifikasi bahwa mesin mendengarkan di port dan dapat diakses di jaringan. Pengelola Sambungan memerlukan ekstensi Network Watcher pada mesin klien yang memulai tes. Tidak perlu dipasang pada mesin yang sedang diuji. Untuk lebih jelasnya, lihat Tutorial - Memantau komunikasi jaringan menggunakan portal Microsoft Azure.

Ada biaya tambahan untuk Pengelola Sambungan. Untuk lebih jelasnya, lihat harga Network Watcher.

Menjalankan proses pada mesin lokal

Pemantauan beberapa beban kerja membutuhkan proses lokal. Contohnya adalah skrip PowerShell yang berjalan pada mesin lokal untuk terhubung ke aplikasi dan mengumpulkan atau memproses data. Anda dapat menggunakan HHybrid Runbook Worker, yang merupakan bagian dari Azure Automation, untuk menjalankan skrip PowerShell lokal. Tidak ada biaya langsung untuk Hybrid Runbook Worker, tetapi ada biaya untuk setiap runbook yang digunakannya.

Runbook dapat mengakses sumber daya apa pun di mesin lokal untuk mengumpulkan data yang diperlukan. Ini tidak dapat mengirim data langsung ke Azure Monitor atau membuat pemberitahuan. Untuk membuat pemberitahuan, minta runbook menulis entri ke log kustom lalu konfigurasikan log yang akan dikumpulkan oleh Azure Monitor. Buat aturan pemberitahuan kueri log yang muncul pada entri log itu.

Transaksi sintetis

Transaksi sintetis terhubung ke aplikasi atau layanan yang berjalan pada mesin untuk mensimulasikan koneksi pengguna atau lalu lintas pengguna yang sebenarnya. Jika aplikasi tersedia, Anda dapat berasumsi bahwa mesin berjalan dengan baik. Application insights di Azure Monitor menyediakan fungsi ini. Ini hanya berfungsi untuk aplikasi yang dapat diakses dari internet. Untuk aplikasi internal, Anda harus membuka firewall untuk memungkinkan akses dari URL Microsoft tertentu yang melakukan tes. Atau Anda dapat menggunakan solusi pemantauan alternatif, seperti System Center Operations Manager.

Metode Deskripsi
Tes URL Memastikan bahwa HTTP tersedia dan mengembalikan halaman web
Tes multilangkah Mensimulasikan sesi pengguna

SQL Server

Gunakan SQL insights untuk memantau SQL Server yang berjalan di mesin virtual Anda.

Langkah berikutnya