Elastic Stack'in ilişkisel olmayan Elasticsearch veritabanına, Kibana web arayüzüne ve veri toplayıcılara ve işlemcilere (en ünlü Logstash, çeşitli Beats, APM ve diğerleri) dayandığını hatırlayalım. Listelenen ürün yığınının tamamına yapılan güzel eklemelerden biri, makine öğrenimi algoritmalarını kullanan veri analizidir. Makalede bu algoritmaların ne olduğunu anlıyoruz. Lütfen kedinin altında.
Makine öğrenimi, paylaşılan yazılım Elastic Stack'in ücretli bir özelliğidir ve X-Pack'e dahildir. Kullanmaya başlamak için kurulumdan sonra 30 günlük deneme sürümünü etkinleştirmeniz yeterlidir. Deneme süresi sona erdikten sonra uzatmak için destek talep edebilir veya abonelik satın alabilirsiniz. Bir aboneliğin maliyeti, veri hacmine göre değil, kullanılan düğüm sayısına göre hesaplanır. Hayır, veri hacmi elbette gerekli düğüm sayısını etkiler, ancak yine de lisanslamaya yönelik bu yaklaşım, şirketin bütçesi açısından daha insancıldır. Yüksek üretkenliğe ihtiyacınız yoksa paradan tasarruf edebilirsiniz.
Elastic Stack'teki ML, C++ ile yazılmıştır ve Elasticsearch'ün çalıştığı JVM'nin dışında çalışır. Yani süreç (bu arada buna otomatik algılama denir) JVM'nin yutmadığı her şeyi tüketir. Demo standında bu o kadar kritik değildir ancak üretim ortamında makine öğrenimi görevleri için ayrı düğümler tahsis etmek önemlidir.
Makine öğrenimi algoritmaları iki kategoriye ayrılır:
Analizi gerçekleştirmek için makine öğrenimi algoritması, Elasticsearch indekslerinde depolanan verileri kullanır. Hem Kibana arayüzünden hem de API aracılığıyla analiz için görevler oluşturabilirsiniz. Bunu Kibana üzerinden yaparsanız bazı şeyleri bilmenize gerek kalmaz. Örneğin, algoritmanın çalışması sırasında kullandığı ek indeksler.
Analiz sürecinde kullanılan ek endeksler.ml-state — istatistiksel modeller hakkında bilgi (analiz ayarları);
.ml-anomalies-* — ML algoritmalarının sonuçları;
.ml-notifications — analiz sonuçlarına dayalı bildirimlere ilişkin ayarlar.
Elasticsearch veritabanındaki veri yapısı, indekslerden ve bunların içinde saklanan belgelerden oluşur. İlişkisel bir veritabanıyla karşılaştırıldığında, bir dizin bir veritabanı şemasıyla, bir belge ise bir tablodaki kayıtla karşılaştırılabilir. Bu karşılaştırma koşulludur ve yalnızca Elasticsearch'ü duymuş olanlar için daha fazla materyalin anlaşılmasını kolaylaştırmak amacıyla sağlanmıştır.
Web arayüzünde olduğu gibi aynı işlevsellik API aracılığıyla da mevcuttur, bu nedenle kavramların netliği ve anlaşılması için Kibana aracılığıyla nasıl yapılandırılacağını göstereceğiz. Soldaki menüde yeni bir İş oluşturabileceğiniz Makine Öğrenimi bölümü bulunmaktadır. Kibana arayüzünde aşağıdaki görüntüye benzemektedir. Şimdi her görev türünü analiz edeceğiz ve burada oluşturulabilecek analiz türlerini göstereceğiz.
Tek Metrik - bir metriğin analizi, Çoklu Metrik - iki veya daha fazla metriğin analizi. Her iki durumda da her metrik yalıtılmış bir ortamda analiz edilir; Algoritma, Multi Metric durumunda göründüğü gibi, paralel analiz edilen metriklerin davranışını dikkate almaz. Çeşitli metriklerin korelasyonunu dikkate alarak hesaplamalar yapmak için Nüfus analizini kullanabilirsiniz. Gelişmiş, belirli görevler için ek seçeneklerle algoritmalara ince ayar yapıyor.
Tek Metrik
Değişiklikleri tek bir metrikte analiz etmek burada yapılabilecek en basit şeydir. İş Yarat'a tıkladıktan sonra algoritma anormallikleri arayacaktır.
In toplama anormallikleri aramak için bir yaklaşım seçebilirsiniz. Örneğin, ne zaman min Tipik değerlerin altındaki değerler anormal kabul edilecektir. Yemek yemek Maksimum, Yüksek Ortalama, Düşük, Ortalama, Farklı ve diğerleri. Tüm fonksiyonların açıklamaları bulunabilir
In Alan analizi yapacağımız belgedeki sayısal alanı belirtir.
In
Toplanan verilerin süresi analizin etkinliğini etkileyen önemli bir faktördür. Analiz sırasında, algoritma tekrarlanan aralıkları tanımlar, güven aralıklarını (taban çizgilerini) hesaplar ve anormallikleri (metriğin olağan davranışından atipik sapmalar) tanımlar. Örnek olarak:
Küçük bir veri parçası içeren taban çizgileri:
Algoritmanın öğrenecek bir şeyi olduğunda temel şu şekilde görünür:
Göreve başladıktan sonra, algoritma normdan anormal sapmaları belirler ve bunları bir anormallik olasılığına göre sıralar (ilgili etiketin rengi parantez içinde gösterilir):
Uyarı (mavi): 25'ten az
Küçük (sarı): 25-50
Majör (turuncu): 50-75
Kritik (kırmızı): 75-100
Aşağıdaki grafikte bulunan anormalliklerin bir örneği gösterilmektedir.
Burada bir anormallik olasılığını gösteren 94 sayısını görebilirsiniz. Değerin 100’e yakın olması bir anormallik olduğu anlamına geldiği açıktır. Grafiğin altındaki sütun, orada görünen metrik değerin %0.000063634'ünün aşağılayıcı derecede küçük olasılığını gösterir.
Anormallikleri aramanın yanı sıra Kibana'da tahmin çalıştırabilirsiniz. Bu basit bir şekilde ve anormalliklerle aynı görünümden yapılır - düğme Tahmin sağ üst köşede.
Tahmin maksimum 8 hafta önceden yapılır. Gerçekten isteseniz bile, bu artık tasarım gereği mümkün değil.
Bazı durumlarda tahmin, örneğin altyapıdaki kullanıcı yükünü izlerken çok faydalı olacaktır.
Çoklu Metrik
Elastik Yığındaki bir sonraki makine öğrenimi özelliğine geçelim: tek bir grupta birden fazla ölçümü analiz etmek. Ancak bu, bir metriğin diğerine bağımlılığının analiz edileceği anlamına gelmez. Bu, Tek Metrik ile aynıdır, ancak birinin diğeri üzerindeki etkisinin kolayca karşılaştırılabilmesi için bir ekranda birden fazla metrik bulunur. Nüfus bölümünde bir metriğin diğerine bağımlılığını analiz etmekten bahsedeceğiz.
Multi Metric ile kareye tıkladıktan sonra ayarların bulunduğu bir pencere açılacaktır. Onlara daha detaylı bakalım.
Öncelikle analiz ve veri toplama için alanları seçmeniz gerekir. Buradaki toplama seçenekleri Tek Metrik (Maksimum, Yüksek Ortalama, Düşük, Ortalama, Farklı ve diğerleri). Ayrıca istenirse veriler alanlardan birine bölünür (alan Veriyi Böl). Örnekte bunu alana göre yaptık MenşeHavaalanı Kimliği. Sağdaki metrik grafiğinin artık birden fazla grafik olarak sunulduğuna dikkat edin.
Tarla Anahtar Alanlar (Etkileyenler) Tespit edilen anormallikleri doğrudan etkiler. Varsayılan olarak burada her zaman en az bir değer olacaktır ve siz başka değerler de ekleyebilirsiniz. Algoritma, analiz sırasında bu alanların etkisini dikkate alacak ve en "etkili" değerleri gösterecektir.
Başlattıktan sonra Kibana arayüzünde buna benzer bir şey görünecek.
Bu sözde Her alan değeri için anormalliklerin ısı haritası MenşeHavaalanı Kimliğiiçinde belirttiğimiz Veriyi Böl. Tek Metrikte olduğu gibi renk, anormal sapmanın seviyesini gösterir. Benzer bir analizin, örneğin şüpheli derecede çok sayıda yetkiye sahip olanları vb. izlemek için iş istasyonlarında yapılması uygundur. zaten yazmıştık
Isı haritasının altında anormalliklerin bir listesi bulunur; her birinden ayrıntılı analiz için Tek Metrik görünümüne geçebilirsiniz.
nüfus
Farklı metrikler arasındaki korelasyonlar arasındaki anormallikleri aramak için Elastic Stack'in özel bir Nüfus analizi vardır. Örneğin, hedef sisteme yapılan isteklerin sayısı arttığında, bir sunucunun performansındaki diğerlerine kıyasla anormal değerleri arayabilmeniz onun yardımıyla sağlanır.
Bu çizimde Nüfus alanı, analiz edilen ölçümlerin ilişkili olacağı değeri gösterir. Bu durumda sürecin adıdır. Sonuç olarak her bir işlemin işlemci yükünün birbirini nasıl etkilediğini göreceğiz.
Analiz edilen verilerin grafiğinin Tek Metrik ve Çoklu Metrik durumlarından farklı olduğunu lütfen unutmayın. Bu, Kibana'da analiz edilen verilerin değerlerinin dağılımının daha iyi algılanması amacıyla tasarlandı.
Grafik sürecin anormal davrandığını gösteriyor stres (bu arada, özel bir yardımcı program tarafından oluşturulmuştur) sunucuda poipuBu anormalliğin ortaya çıkmasını etkileyen (veya etki sahibi olduğu ortaya çıkan).
gelişmiş
İnce ayarlı analitik. Gelişmiş analiz ile Kibana'da ek ayarlar görünür. Oluşturma menüsündeki Gelişmiş kutucuğuna tıkladıktan sonra sekmelerin bulunduğu bu pencere görüntülenir. Sekme iş Ayrıntıları Bunu bilerek atladık, analizin kurulumuyla doğrudan ilgili olmayan temel ayarlar var.
В Summary_count_field_name İsteğe bağlı olarak, birleştirilmiş değerleri içeren belgelerden bir alanın adını belirtebilirsiniz. Bu örnekte dakika başına olay sayısı. İÇİNDE
Burada anormallik dedektörünü belirli bir görev için yapılandırmaya yönelik ek bir ayar bloğu bulunmaktadır. Aşağıdaki makalelerde belirli kullanım örneklerini (özellikle güvenlikle ilgili olanları) tartışmayı planlıyoruz. Örneğin,
In işlev Anormallikleri aramak için belirli bir işlevi seçebilirsiniz. Hariç nadir, birkaç ilginç fonksiyon daha var -
В alan adı Analizin gerçekleştirileceği belgenin alanını belirtir. By_field_name Burada belirtilen belge alanının her bir değeri için analiz sonuçlarını ayırmak için kullanılabilir. Eğer doldurursan over_field_name Yukarıda tartıştığımız nüfus analizini elde edersiniz. İçinde bir değer belirtirseniz bölüm_alanı_adı, bu durumda belgenin bu alanı için her değer için ayrı temeller hesaplanacaktır (değer, örneğin sunucunun adı veya sunucudaki işlem olabilir). İÇİNDE hariç_sıklık seçebilmek herşey veya YokBu, sık sık oluşan belge alanı değerlerinin hariç tutulması (veya dahil edilmesi) anlamına gelir.
Bu yazımızda, Elastic Stack'teki makine öğrenmesinin yetenekleri hakkında mümkün olduğunca kısa ve öz bir fikir vermeye çalıştık; hala perde arkasında kalan birçok detay var. Yorumlarda bize Elastic Stack kullanarak hangi durumları çözmeyi başardığınızı ve onu hangi görevlerde kullandığınızı anlatın. Bizimle iletişime geçmek için Habré veya
Kaynak: habr.com