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 -
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.
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.
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.
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
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:
Ketika algoritme memiliki sesuatu untuk dipelajari, garis dasarnya akan terlihat seperti ini:
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.
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.
Prakiraan dibuat maksimal 8 minggu sebelumnya. Bahkan jika Anda benar-benar menginginkannya, hal itu tidak mungkin lagi dilakukan secara desain.
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.
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.
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.
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
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.
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.
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.
В 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
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,
Di lapangan fungsi Anda dapat memilih fungsi tertentu untuk mencari anomali. Kecuali langka, ada beberapa fungsi menarik lainnya -
В 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
Sumber: www.habr.com