Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Ingatlah bahwa Elastic Stack didasarkan pada database Elasticsearch non-relasional, antarmuka web Kibana, serta pengumpul dan pemroses data (Logstash paling terkenal, berbagai Beats, APM, dan lainnya). Salah satu tambahan yang bagus untuk seluruh tumpukan produk yang terdaftar adalah analisis data menggunakan algoritma pembelajaran mesin. Dalam artikel ini kita memahami apa itu algoritma ini. Tolong di bawah kucing.

Pembelajaran mesin adalah fitur berbayar dari Elastic Stack shareware dan disertakan dalam X-Pack. Untuk mulai menggunakannya, cukup aktifkan uji coba 30 hari setelah instalasi. Setelah masa uji coba berakhir, Anda dapat meminta dukungan untuk memperpanjangnya atau membeli langganan. Biaya berlangganan dihitung bukan berdasarkan volume data, namun berdasarkan jumlah node yang digunakan. Tidak, volume data tentu saja mempengaruhi jumlah node yang dibutuhkan, namun pendekatan perizinan ini tetap lebih manusiawi jika dikaitkan dengan anggaran perusahaan. Jika tidak diperlukan produktivitas tinggi, Anda dapat menghemat uang.

ML di Elastic Stack ditulis dalam C++ dan dijalankan di luar JVM, tempat Elasticsearch sendiri dijalankan. Artinya, prosesnya (omong-omong, ini disebut deteksi otomatis) menghabiskan segala sesuatu yang tidak ditelan oleh JVM. Di demo, hal ini tidak terlalu penting, tetapi dalam lingkungan produksi, penting untuk mengalokasikan node terpisah untuk tugas ML.

Algoritme pembelajaran mesin terbagi dalam dua kategori - dengan guru и tanpa guru. Di Elastic Stack, algoritme berada dalam kategori “tanpa pengawasan”. Oleh link ini Anda dapat melihat peralatan matematika dari algoritma pembelajaran mesin.

Untuk melakukan analisis, algoritma pembelajaran mesin menggunakan data yang disimpan dalam indeks Elasticsearch. Anda dapat membuat tugas untuk analisis baik dari antarmuka Kibana maupun melalui API. Jika Anda melakukan ini melalui Kibana, maka Anda tidak perlu mengetahui beberapa hal. Misalnya, indeks tambahan yang digunakan algoritma selama operasinya.

Indeks tambahan yang digunakan dalam proses analisis.ml-state — informasi tentang model statistik (pengaturan analisis);
.ml-anomalies-* — hasil algoritma ML;
.ml-notifications — pengaturan notifikasi berdasarkan hasil analisis.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Struktur data pada database Elasticsearch terdiri dari indeks dan dokumen yang tersimpan di dalamnya. Jika dibandingkan dengan database relasional, indeks dapat dibandingkan dengan skema database, dan dokumen dapat dibandingkan dengan record dalam tabel. Perbandingan ini bersifat kondisional dan disediakan untuk mempermudah pemahaman materi selanjutnya bagi yang baru mendengar tentang Elasticsearch.

Fungsionalitas yang sama tersedia melalui API seperti melalui antarmuka web, jadi untuk kejelasan dan pemahaman konsep, kami akan menunjukkan cara mengkonfigurasinya melalui Kibana. Pada menu sebelah kiri terdapat bagian Machine Learning dimana Anda dapat membuat Job baru. Pada antarmuka Kibana tampilannya seperti gambar di bawah ini. Sekarang kita akan menganalisis setiap jenis tugas dan menunjukkan jenis analisis yang dapat dibangun di sini.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Metrik Tunggal - analisis satu metrik, Multi Metrik - analisis dua atau lebih metrik. Dalam kedua kasus tersebut, setiap metrik dianalisis dalam lingkungan yang terisolasi, yaitu. algoritme tidak memperhitungkan perilaku metrik yang dianalisis secara paralel, seperti yang terlihat dalam kasus Multi Metrik. Untuk melakukan penghitungan dengan mempertimbangkan korelasi berbagai metrik, Anda dapat menggunakan Analisis populasi. Dan Advanced menyempurnakan algoritme dengan opsi tambahan untuk tugas-tugas tertentu.

Metrik Tunggal

Menganalisis perubahan dalam satu metrik adalah hal paling sederhana yang dapat dilakukan di sini. Setelah mengklik Buat Pekerjaan, algoritma akan mencari anomali.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Di lapangan Pengumpulan Anda dapat memilih pendekatan untuk mencari anomali. Misalnya kapan Min nilai di bawah nilai tipikal akan dianggap anomali. Makan Maks, Rata-Rata Tinggi, Rendah, Rata-Rata, Berbeda dan lain-lain. Deskripsi semua fungsi dapat ditemukan по ссылке.

Di lapangan Bidang menunjukkan bidang numerik dalam dokumen yang akan kami analisis.

Di lapangan Rentang ember — rincian interval pada garis waktu di mana analisis akan dilakukan. Anda dapat mempercayai otomatisasi atau memilih secara manual. Gambar di bawah adalah contoh granularitas yang terlalu rendah - Anda mungkin melewatkan anomalinya. Dengan menggunakan pengaturan ini, Anda dapat mengubah sensitivitas algoritma terhadap anomali.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Durasi pengumpulan data merupakan hal utama yang mempengaruhi efektivitas analisis. Selama analisis, algoritme mengidentifikasi interval berulang, menghitung interval kepercayaan (garis dasar), dan mengidentifikasi anomali—penyimpangan atipikal dari perilaku normal metrik. Misalnya saja:

Garis dasar dengan sebagian kecil data:

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Ketika algoritme memiliki sesuatu untuk dipelajari, garis dasarnya akan terlihat seperti ini:

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Setelah memulai tugas, algoritme menentukan penyimpangan anomali dari norma dan mengurutkannya berdasarkan kemungkinan anomali (warna label yang sesuai ditunjukkan dalam tanda kurung):

Peringatan (biru): kurang dari 25
Kecil (kuning): 25-50
Mayor (oranye): 50-75
Kritis (merah): 75-100

Grafik di bawah ini menunjukkan contoh anomali yang ditemukan.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Di sini Anda dapat melihat angka 94, yang menunjukkan kemungkinan terjadinya anomali. Jelas karena nilainya mendekati 100, berarti kita mengalami anomali. Kolom di bawah grafik menunjukkan probabilitas yang sangat kecil yaitu 0.000063634% dari nilai metrik yang muncul di sana.

Selain mencari anomali, Anda dapat menjalankan peramalan di Kibana. Hal ini dilakukan secara sederhana dan dari tampilan yang sama dengan anomali - tombol Ramalan di sudut kanan atas.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Prakiraan dibuat maksimal 8 minggu sebelumnya. Bahkan jika Anda benar-benar menginginkannya, hal itu tidak mungkin lagi dilakukan secara desain.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Dalam beberapa situasi, perkiraan akan sangat berguna, misalnya saat memantau beban pengguna pada infrastruktur.

Multi Metrik

Mari beralih ke fitur ML berikutnya di Elastic Stack - menganalisis beberapa metrik dalam satu batch. Namun ini tidak berarti bahwa ketergantungan satu metrik terhadap metrik lainnya akan dianalisis. Ini sama dengan Metrik Tunggal, namun dengan beberapa metrik di satu layar untuk memudahkan perbandingan dampak satu metrik terhadap metrik lainnya. Kita akan membahas tentang analisis ketergantungan satu metrik terhadap metrik lainnya di bagian Populasi.

Setelah mengklik kotak dengan Multi Metrik, sebuah jendela dengan pengaturan akan muncul. Mari kita lihat lebih detail.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Pertama, Anda perlu memilih bidang untuk analisis dan agregasi data di dalamnya. Opsi agregasi di sini sama dengan Metrik Tunggal (Maks, Rata-Rata Tinggi, Rendah, Rata-Rata, Berbeda dan lain-lain). Selanjutnya jika diinginkan, data tersebut dibagi menjadi salah satu field (field Data split). Dalam contoh, kami melakukan ini berdasarkan bidang AsalAirportID. Perhatikan bahwa grafik metrik di sebelah kanan kini disajikan sebagai beberapa grafik.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Lapangan Bidang Utama (Influencer) secara langsung mempengaruhi anomali yang terdeteksi. Secara default akan selalu ada setidaknya satu nilai di sini, dan Anda dapat menambahkan nilai tambahan. Algoritme akan memperhitungkan pengaruh bidang-bidang ini saat menganalisis dan menunjukkan nilai yang paling “berpengaruh”.

Setelah peluncuran, sesuatu seperti ini akan muncul di antarmuka Kibana.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Inilah yang disebut peta panas anomali untuk setiap nilai bidang AsalAirportID, yang kami tunjukkan di Data split. Seperti halnya Metrik Tunggal, warna menunjukkan tingkat penyimpangan abnormal. Akan lebih mudah untuk melakukan analisis serupa, misalnya, pada stasiun kerja untuk melacak stasiun kerja yang memiliki jumlah otorisasi yang mencurigakan, dll. Kami sudah menulis tentang kejadian mencurigakan di EventLog Windows, yang juga dapat dikumpulkan dan dianalisis di sini.

Di bawah peta panas terdapat daftar anomali, dari setiap anomali Anda dapat beralih ke tampilan Metrik Tunggal untuk analisis mendetail.

Populasi

Untuk mencari anomali di antara korelasi antara metrik yang berbeda, Elastic Stack memiliki analisis Populasi khusus. Dengan bantuannya Anda dapat mencari nilai anomali dalam kinerja server dibandingkan dengan server lain ketika, misalnya, jumlah permintaan ke sistem target meningkat.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Dalam ilustrasi ini, bidang Populasi menunjukkan nilai yang akan dikaitkan dengan metrik yang dianalisis. Dalam hal ini adalah nama prosesnya. Hasilnya, kita akan melihat bagaimana beban prosesor dari setiap proses saling mempengaruhi.

Harap diperhatikan bahwa grafik data yang dianalisis berbeda dengan kasus Metrik Tunggal dan Multi Metrik. Hal ini dilakukan di Kibana dengan desain untuk meningkatkan persepsi distribusi nilai data yang dianalisis.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Grafik menunjukkan bahwa proses berperilaku tidak normal tekanan (omong-omong, dihasilkan oleh utilitas khusus) di server poipu, yang mempengaruhi (atau ternyata menjadi influencer) terjadinya anomali tersebut.

Advanced

Analisis dengan penyesuaian yang baik. Dengan Analisis lanjutan, pengaturan tambahan muncul di Kibana. Setelah mengklik ubin Lanjutan di menu pembuatan, jendela dengan tab ini muncul. tab rincian pekerjaan Kami sengaja melewatkannya, ada pengaturan dasar yang tidak terkait langsung dengan pengaturan analisis.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

В ringkasan_count_field_name Secara opsional, Anda dapat menentukan nama bidang dari dokumen yang berisi nilai gabungan. Dalam contoh ini, jumlah kejadian per menit. DI DALAM kategorisasi_nama_bidang menunjukkan nama dan nilai bidang dari dokumen yang berisi beberapa nilai variabel. Dengan menggunakan mask pada bidang ini, Anda dapat membagi data yang dianalisis menjadi beberapa subkumpulan. Perhatikan tombolnya Tambahkan detektor pada ilustrasi sebelumnya. Di bawah ini adalah hasil mengklik tombol ini.

Memahami Pembelajaran Mesin di Elastic Stack (alias Elasticsearch, alias ELK)

Berikut adalah blok pengaturan tambahan untuk mengonfigurasi detektor anomali untuk tugas tertentu. Kami berencana untuk membahas kasus penggunaan spesifik (terutama kasus keamanan) di artikel berikut. Misalnya, lihat salah satu kasus yang dibongkar. Hal ini terkait dengan pencarian nilai yang jarang muncul dan diimplementasikan fungsi langka.

Di lapangan fungsi Anda dapat memilih fungsi tertentu untuk mencari anomali. Kecuali langka, ada beberapa fungsi menarik lainnya - waktu_hari_ и waktu_minggu_. Mereka mengidentifikasi anomali dalam perilaku metrik sepanjang hari atau minggu. Fungsi analisis lainnya ada di dokumentasi.

В nama_bidang menunjukkan bidang dokumen tempat analisis akan dilakukan. Berdasarkan_nama_bidang dapat digunakan untuk memisahkan hasil analisis untuk setiap nilai individual bidang dokumen yang ditentukan di sini. Jika Anda mengisi over_field_name Anda mendapatkan analisis populasi yang telah kita bahas di atas. Jika Anda menentukan nilai di nama_bidang_partisi, maka untuk bidang dokumen ini, garis dasar terpisah akan dihitung untuk setiap nilai (nilainya dapat berupa, misalnya, nama server atau proses di server). DI DALAM kecualikan_sering bisa memilih semua или tak satupun, yang berarti mengecualikan (atau menyertakan) nilai bidang dokumen yang sering muncul.

Dalam artikel ini, kami mencoba memberikan gambaran sesingkat mungkin tentang kemampuan pembelajaran mesin di Elastic Stack; masih banyak detail yang tertinggal. Beri tahu kami di komentar kasus apa yang berhasil Anda selesaikan menggunakan Elastic Stack dan untuk tugas apa Anda menggunakannya. Untuk menghubungi kami, Anda dapat menggunakan pesan pribadi di Habré atau formulir umpan balik di situs web.

Sumber: www.habr.com

Tambah komentar