By | January 9, 2022

Analisis Log menggunakan Kecerdasan Buatan/Pembelajaran Mesin [AI/ML] untuk pita lebar

Setiap kali Anda mendengar tentang “Analisis log”, Kami membayangkan seorang pengembang, melewati ribuan baris log untuk mencari tahu suatu masalah. Apakah harus selalu seperti ini? Topik diskusi kita adalah apa yang bisa Kecerdasan Buatan/Pembelajaran Mesin [AI/ML]lakukan untuk membantu kami Analisis log.


Kebutuhan Analisis Log Otomatis

Dalam sistem skala besar, cara analisis log yang tampaknya jelas tidak begitu skalabel. SEBUAH jaringan broadband dikelola oleh operator seperti Comcast, yang memiliki 100-an Titik Akses Wi-Fi dan Router/Switch dan sel kecil 4G/5G, dari beberapa penyedia peralatan, misalnya Commscope, Aruba atau CISCO. Kumpulan log di beberapa node, ada GB data yang dibuat setiap menit. Masalah yang mungkin disembunyikan, mungkin bukan sesuatu yang sejelas crash. Mungkin masalah yang terjadi dan hilang serta tidak terdeteksi, selain fakta bahwa ada beberapa keluhan yang diterima oleh Operator Jaringan. Sistem ini dikembangkan oleh banyak pengembang (100(0)s), sehingga sulit untuk dianalisis oleh satu orang. Mereka mengeluarkan modul dari berbagai pihak ketiga dan menggunakan sumber terbuka secara ekstensif. Dan kemudian bagian-bagian dari sistem berada pada siklus peningkatan berkelanjutan. Jadi ada kebutuhan yang jelas untuk analisis log otomatis dalam jaringan skala besar dengan menggunakan smart teknik analisis log .

Memetakan masalah Analisis Log ke Kecerdasan Buatan/Pembelajaran Mesin [AI/ML] masalah

Pembelajaran mesin melihat masalah dalam dua cara: diawasi atau tidak diawasi.

Pembelajaran yang diawasi berlaku jika kita memiliki kumpulan data berlabel yaitu data input, di mana kita mengetahui label (atau nilai). Dengan data ini, kita dapat melatih model. Setelah Training , model dapat mengambil input baru dan memprediksi label (atau nilai).

Pembelajaran tanpa pengawasan berarti, kami tidak memiliki kumpulan data berlabel. Model mengklasifikasikan data ke dalam kelas yang berbeda. Ketika data baru tiba, ia menemukan korelasi dengan kelas-kelas yang ada dan memasukkannya ke dalam salah satu kelas tersebut.

Untuk analisis log, kami pada dasarnya mencari anomali di log, sesuatu yang biasanya tidak diharapkan. Kami mungkin atau mungkin tidak memiliki kumpulan data berlabel, dan karenanya, kami perlu memilih pembelajaran yang diawasi atau tidak diawasi.

Algoritma Deteksi Anomali. Untuk algoritme yang diawasi, kami akan memiliki kumpulan data, di mana setiap kumpulan diberi label sebagai “normal” atau “Anomali”. Untuk algoritma tanpa pengawasan, kita perlu mengkonfigurasi model untuk dua kelas saja, “Normal” atau “Anomali”.

Pendekatan gabungan baik untuk kasus penggunaan broadband, di mana keduanya dapat digunakan. Untuk perilaku anomali yang jelas kita dapat menggunakan metode terawasi. Dan ketika membuat kumpulan data berlabel lengkap mungkin tidak mungkin, kita dapat kembali ke tanpa pengawasan.

Algoritma ini sudah ada dan ada implementasi open source juga. (lihat Referensi)

Pemetaan Log ke Kecerdasan Buatan/Pembelajaran Mesin [AI/ML] memasukkan

Ada banyak log online yang sedang berlangsung yang berasal dari berbagai node. Satu-satunya cara untuk membuat kumpulan data adalah dengan membagi waktu menjadi potongan log yang lebih kecil. Dengan menggunakan setiap cuplikan, kita harus mengubahnya menjadi kumpulan data.

Sekarang log didistribusikan, berasal dari switch, router, SysLogs dan Pcaps dan Lainnya. Apakah kita memerlukan model yang berbeda untuk setiap jenis log? Tidak. Log harus diberikan ke satu Model karena hanya dengan demikian korelasi antara log yang berbeda dapat dimanfaatkan.

Log adalah teks yang tidak terstruktur, dapatkah kita menggunakan Model (Pemrosesan Bahasa Alami) untuk mengekstrak kumpulan data dari log. Jawabannya sekali lagi “Tidak”. Untuk model NLP, teks diproses terlebih dahulu untuk mendapatkan fitur seperti berapa kali kata diulang, kata yang berbeda diikuti satu sama lain dan fitur lainnya. Ada model pra-terlatih yang dapat melakukan ini dan telah dilatih di seluruh teks Wikipedia!. Tetapi ini tidak dapat digunakan untuk log, karena log memiliki konteks teknis dan bukan bahasa alami.

Karena log memiliki struktur yang mendasarinya, kita dapat melihat cuplikan log sebagai rangkaian peristiwa yang telah ditentukan sebelumnya. Dengan cara ini kami dapat menyimpan informasi di setiap log. Ini juga membantu menggabungkan berbagai jenis log, karena kami dapat menganggap log memiliki rangkaian peristiwa yang berbeda. Model akan dilatih dengan pemahaman berdasarkan peristiwa yang terjadi dalam jendela waktu tertentu dan kemudian dapat mendeteksi anomali.

Membangun Kecerdasan Buatan/Pembelajaran Mesin [AI/ML] Kumpulan data pelatihan dari Log

Kecerdasan Buatan/Pembelajaran Mesin [AI/ML] bekerja pada vektor/matriks bilangan dan penjumlahan dan perkalian bilangan tersebut. Kami tidak dapat memberi makan peristiwa ini langsung ke model. Mereka perlu diubah menjadi angka. (Keturunan Gradien dan Regresi Logistik bekerja dengan mencari turunan. Pembelajaran mendalam adalah perkalian Matriks dan banyak lagi. Pohon Keputusan atau Hutan acak mempartisi data pada angka.)

Untuk visi komputer dan pengolahan citra kasus penggunaan, angka-angka ini adalah nilai RGB dari setiap piksel dalam gambar. Untuk data tabular, teks diubah menjadi angka dengan menetapkan deret berurutan atau tidak berurutan.

Salah satu opsi adalah mengaitkan setiap peristiwa dengan nomor pengenal dan memberikan vektor pengenal ini ke model, bersama dengan stempel waktu. Namun, menyinkronkan/menggabungkan ini akan menjadi masalah karena kami akan mulai mendapatkan vektor-vektor ini dari setiap node. Juga satu peristiwa dapat terjadi beberapa kali, dalam cuplikan, sehingga penanganan vektor-vektor ini akan menjadi rumit.

Jadi metode yang lebih baik adalah menyusun vektor dari setiap simpul untuk irisan waktu tertentu dan kemudian menghitung setiap jenis peristiwa dalam vektor utama.

Kami menjelaskan pendekatan di bawah ini secara rinci. Pendekatan ini berasal dari makalah populer ini, untuk lebih jelasnya silakan merujuk https://jiemingzhu.github.io/pub/slhe_issre2016.pdf)

1.Pengumpulan Log –

Dalam sistem broadband, kami memiliki banyak sumber log (SysLog, Air captures, wired captures, Cloud Logs, Network element ie switch/Routers/Access Points logs). Kita harus terlebih dahulu dapat mengumpulkan log dari masing-masing sumber.

Kita perlu membuat daftar lengkap dari semua sumber sebagai

[S1, S2, S3.. Sn]

2. Definisi Acara – Untuk setiap sumber, kita perlu membuat tipe acara yang telah ditentukan sebelumnya. Di dunia jaringan, secara luas jenis acara di log, dapat didefinisikan sebagai berikut:

  • Pesan protokol
    • Kesalahan/Peringatan
      • Setiap Jenis adalah satu jenis acara
    • Lapisan
      • Pengelolaan
        • Setiap Jenis adalah satu jenis acara
      • Kontrol
        • Setiap Jenis adalah satu jenis acara
      • Data
        • Setiap Jenis adalah satu jenis Acara
      • Perubahan Negara
        • Peringatan Kesalahan
          • Setiap Jenis adalah satu jenis acara
        • Modul
          • Setiap Template Log Kritis adalah jenis acara
          • Setiap Transisi Negara Bagian adalah jenis acara
        • Kesalahan/Peringatan
          • Setiap jenis Kesalahan/Peringatan adalah satu jenis peristiwa, setiap simpul Daun sesuai dengan peristiwa yang berbeda

Dengan analisis ini, untuk setiap sumber, kami membuat daftar acara, sebagai berikut:

[S1E1, S1E2, S1E3,.. S1Em,

S2E1, S2E2, S2E3,.. S2En,

… ,

SnE1, SnE2, SnE3,.. SnEp]

3.Log ke konversi Acara – Setiap baris dari log deret waktu akan memiliki bagian konstan dan bagian variabel. Bagian konstan adalah apa yang kita minati. Bagian variabel seperti alamat IP, sumber dan tujuan adalah variabel dan perlu diabaikan. Kita perlu mengurai log untuk bagian konstan, untuk memeriksa apakah log memiliki peristiwa atau tidak, dan hanya merekam peristiwa tersebut. Kemudian cuplikan log yang diambil melalui jendela waktu akan mulai terlihat seperti ini untuk sebuah sumber.

[T1, E2

T2, Nil

T3, E2

T4, E4]

4. Transformasi frekuensi – Balikkan log yang diuraikan untuk menemukan frekuensi acara. Pada dasarnya dalam jendela waktu tertentu berapa kali suatu peristiwa terjadi. Jadi jika jendela beralih dari Waktu 1 ke Waktu 4.

Jendela 1
E1 0
E2 2
E3 0
E4 1

Pergi untuk beberapa irisan waktu akan terlihat seperti ini

Jendela 1 Jendela 2 Jendela 3 Jendela 4 Jendela 5
E1 0 1 0 1 1
E2 2 0 1 0 1
E3 0 2 2 1 1
E4 1 1 1 2 1

Jendela dapat diperbaiki dengan interval pengatur waktu. Ini bisa tidak tumpang tindih atau meluncur. Jendela geser dapat memberikan hasil yang lebih baik, tetapi mungkin lebih intensif secara komputasi.

Untuk menyeimbangkan beban komputasi, disarankan untuk melakukan edge compute yaitu menurunkan Event Count Matrix secara terpisah dari masing-masing sumber.

5.Matriks Frekuensi Kejadian – Setelah matriks jumlah peristiwa diambil dari setiap sumber, semuanya harus digabungkan di satu tempat pusat, sebelum diumpankan ke dunia ML.

Waktu

stempel 1

Waktu

Stempel2

Stempel Waktu3 Waktu

Stempel4

Waktu

Stempel5

S1E1 0 1 0 1 1
S1Em 1 1 1 2 1
S2E1 1 0 0 1 1
S2En 1 1 1 1 2
SnE1 0 1 0 1 1
SnEp 1 1 1 2 1

Highlighted Part adalah Matrix terakhir yang menjadi input ke sistem ML. Setiap jendela diberi stempel waktu. Sehingga menjadi vektor input deret waktu. Kumpulan dari vektor-vektor ini akan menjadi kumpulan data. Jadi akhirnya sekarang kita memiliki kumpulan data untuk analisis log!

Sumber daya

[1] Teori AI/ML Pembelajaran Mesin oleh Universitas Stanford

[2] Tutorial AI/ML Terapan Deep Learning For Coders—36 jam pelajaran gratis

[3] Makalah Penelitian AI/ML Analisis Log Laporan Pengalaman: Analisis Log Sistem untuk Deteksi Anomali

[4] LogPai/Loganaly (logpai/loglizer: Alat analisis log untuk deteksi anomali otomatis [ISSRE’16])

[5] AICoE / LAD (AICoE/log-anomaly-detector: Deteksi Anomali Log – Pembelajaran mesin untuk mendeteksi log peristiwa abnormal)