Açık kaynaklı log analiz ve yönetim yazılımının detaylı açıklaması-ELK mimarisi ilkesi ve tanıtımı

Genel Bakış

Genel olarak, günlük analizi senaryoları gerçekleştirmemiz gerekir: grep ve awk doğrudan log dosyasında istediğimiz bilgileri alabilir. Ancak, büyük ölçekli senaryolarda, bu yöntem verimsizdir, karşılaşılan sorunlar arasında çok fazla günlüğün nasıl arşivleneceği, çok yavaş metin aramanın nasıl yapılacağı ve birden çok boyutta nasıl sorgulama yapılacağı yer almaktadır. Merkezi günlük yönetimi gereklidir ve tüm sunucularda günlük toplama ve özetleme gerekir. Ortak çözüm, tüm düğümlerdeki günlükleri birleşik bir şekilde toplamak, yönetmek ve bunlara erişmek için merkezi bir günlük toplama sistemi oluşturmaktır. Açık kaynak merkezi günlük yönetim sistemi, ELK / EFK'yı ilk tanıtan ve ardından herkesin bunu anlamasına izin veren sistemdir.

ELK

Genel olarak, büyük ölçekli bir sistem, dağıtılmış bir dağıtım mimarisidir.Farklı sunuculara farklı hizmet modülleri yerleştirilir.Bir sorun oluştuğunda, çoğu durumda, sorunun açığa çıkardığı anahtar bilgilere göre belirli sunucuyu ve hizmet modülünü bulmak ve merkezi bir dizi oluşturmak gerekir. Günlük sistemi, sorunların yerini belirleme verimliliğini artırabilir.

Eksiksiz bir merkezi günlük sistemi aşağıdaki ana özellikleri içermelidir:

  • Toplama - birden çok kaynaktan günlük verilerini toplayabilir
  • Günlük verilerini merkezi sisteme istikrarlı bir şekilde iletebilen iletilebilir
  • Depolama-günlük verilerinin depolanması
  • Analiz - UI analizini destekleyebilir
  • Uyarı - hata raporu, izleme mekanizması sağlayabilir

ELK, eksiksiz bir çözüm seti sağlar ve bunların tümü, birbirleriyle bağlantılı olarak kullanılan, mükemmel şekilde bağlanan ve birçok durumu verimli bir şekilde tatmin eden açık kaynaklı yazılımlardır. Şu anda ana akım olan bir günlük sistemi.

ELK'ye Giriş

ELK, üç açık kaynaklı yazılımın kısaltmasıdır, yani Elasticsearch, Logstash, Kibana, hepsi açık kaynaklı yazılımdır. Hafif bir günlük toplama ve işleme aracı (Aracı) olan yeni bir FileBeat eklenir. Filebeat daha az kaynak kullanır ve çeşitli sunucularda günlükleri toplamak ve bunları Logstash'a iletmek için uygundur. Bu araç da resmi olarak önerilir.

Elasticsearch, üç işlev sağlayan açık kaynaklı, dağıtılmış bir arama motorudur: veri toplama, analiz etme ve depolama. Özellikleri şunlardır: dağıtılmış, sıfır yapılandırma, otomatik keşif, otomatik dizin parçalama, dizin kopyalama mekanizması, dinlendirici stil arabirimi, çoklu veri kaynakları, otomatik arama yükü vb.

Logstash temel olarak günlükleri toplamak, analiz etmek ve filtrelemek için kullanılır ve çok sayıda veri toplama yöntemini destekler. Genel çalışma yöntemi c / s mimarisidir.İstemci tarafı, günlükleri toplamaya ihtiyaç duyan ana bilgisayara kurulur ve sunucu tarafı, alınan düğüm günlüklerini filtrelemek ve değiştirmek ve aynı zamanda elasticsearch'e göndermekle sorumludur.

Kibana ayrıca açık kaynak kodlu ve ücretsiz bir araçtır. Kibana, Logstash ve ElasticSearch'e önemli veri günlüklerini özetlemeye, analiz etmeye ve aramaya yardımcı olabilecek günlük analizi dostu bir web arayüzü sağlayabilir.

Filebeat, Beats'in bir parçasıdır. Şu anda Beats dört araç içermektedir:

Packetbeat (ağ trafiği verilerini topla) Topbeat (sistem, işlem ve dosya sistemi düzeyinde CPU ve bellek kullanım verilerini toplayın) Filebeat (dosya verilerini topla) Winlogbeat (Windows olay günlüğü verilerini topla)

ELK mimari diyagramı

Bu mimari, logstash'tan daha esnek olan, daha az kaynak tüketen ve daha ölçeklenebilir olan toplama tarafı olarak dosya atımlarını kullanır. Aynı zamanda, Logstash ve Elasticsearch kümeleri, büyük küme sistemlerinin işletim ve bakım günlüğü verilerinin izlenmesini ve sorgulanmasını desteklemek için yapılandırılabilir.

Filebeat nasıl çalışır?

Filebeat iki ana bileşenden oluşur: araştırmacılar ve biçerdöverler. Bu iki bileşen, dosya değişikliklerini belirtilen çıktıya göndermek için birlikte çalışır.

Biçerdöver: Tek bir dosyanın içeriğini okumaktan sorumludur. Her dosya bir Biçerdöver başlatacak, her Biçerdöver her dosyayı satır satır okuyacak ve dosyanın içeriğini belirtilen çıktıya gönderecektir. Harvester, dosyaları açmak ve kapatmaktan sorumludur, bu da Harvester çalışırken dosya tanımlayıcısının açık olduğu anlamına gelir.Eğer dosya toplama sırasında yeniden adlandırılır veya silinirse, Filebeat dosyayı okumaya devam eder. Bu nedenle, Biçerdöver kapatılana kadar disk serbest bırakılmayacaktır. Varsayılan olarak, filebeat, close_inactive'e ulaşılıncaya kadar dosyayı açık tutacaktır (bu seçenek açıksa, filebeat belirtilen süre içinde artık güncellenmeyen dosya tutamacını kapatır ve zaman, hasatçının son satırı okuduğu andan itibaren başlar. Kapandıktan sonra, dosya değişirse yeni bir biçerdöver başlatılacaktır.Dosya tutamacını kapatma zamanı dosyanın değiştirme zamanına bağlı değildir. Bu parametre doğru yapılandırılmamışsa, günlük gerçek zamanlı olmayabilir. Scan_frequency parametresi tarafından belirlenir, varsayılan 10s'dir. .Harvester, dosyanın en son toplandığı zamanı kaydetmek için dahili zaman damgası kullanır. Örneğin: Harvester dosyanın son satırını okuduktan sonra 5 dakika için geri sayım başlar, dosyada 5 dakika içinde herhangi bir değişiklik olmazsa, dosya tanıtıcısı kapatılır. Varsayılan 5m).

Prospector: Harvester'ı yönetmekten ve tüm okuma kaynaklarını bulmaktan sorumludur.

filebeat.prospectors: -input_type: günlük yollar: - / apps / logs / * / info.log

Prospector, / apps / logs / * dizinindeki tüm info.log dosyalarını bulacak ve her dosya için bir Toplayıcı başlatacaktır. Prospector, Harvester'ın başlatılıp başlatılmadığını, başlatılması gerekip gerekmediğini veya dosyanın göz ardı edilip edilemeyeceğini görmek için her dosyayı kontrol edecektir. Biçerdöver kapalıysa, Prospector denetimleri yalnızca dosya boyutu değiştiğinde gerçekleştirecektir. Yalnızca yerel dosyalar tespit edilebilir.

Filebeat dosya durumunu nasıl kaydeder:

Dosyanın durumunu dosyaya kaydedin (varsayılan / var / lib / filebeat / kayıt defteri). Bu durum, Harvester toplama dosyasının ofsetini hatırlayabilir. ES gibi bir çıkış cihazına bağlanamıyorsanız, filebeat göndermeden önceki son satırı kaydedecek ve yeniden bağlanabildiğinizde göndermeye devam edecektir. Filebeat çalışırken, Prospector durumu belleğe kaydedilecektir. Filebeat yeniden başladığında, yeniden başlatmadan önce durumu geri yüklemek için kayıt defteri tarafından kaydedilen durumu kullanır. Her Arayıcı, bulunan her dosya için bir durum kaydedecektir.Her dosya için, Filebeat dosyanın önceden toplanıp toplanmadığını tespit etmek için benzersiz bir tanımlayıcı saklar.

Filebeat, olayın en az bir kez çıkmasını nasıl sağlar:

Filebeat'in olayın yapılandırılmış çıktıya veri kaybı olmadan en az bir kez teslim edilmesini sağlamasının nedeni, Filebeat'in her olayın teslim durumunu bir dosyaya kaydetmesidir. İhracatçı tarafından onaylanmadığında, filebeat bir yanıt alana kadar göndermeye çalışacaktır. Aktarım sırasında dosya atışı kapatılırsa, kapanmadan önce tüm zaman olayları onaylanmayacaktır. Filebeat kapatılmadan önceki herhangi bir onay süresi, filebeat yeniden başlatıldıktan sonra yeniden gönderilecektir. Bu, en az bir kez gönderilmesini sağlar, ancak tekrarlanabilir. Kapatmadan önce bir olay yanıtı için bekleme süresi, shutdown_timeout parametresi ayarlanarak ayarlanabilir (varsayılan olarak devre dışıdır).

Logstash nasıl çalışır?

Logstash olay işlemenin üç aşaması vardır: girişler filtreler çıkışlar. Günlükleri almak, işlemek ve iletmek için bir araçtır. Sistem günlüğü, web sunucusu günlüğü, hata günlüğü, uygulama günlüğü, kısaca, atılabilen tüm günlük türleri dahil olmak üzere destekleyin.

Girdi: Logstash'e veri girin.

Yaygın olarak kullanılan bazı girişler şunlardır:

dosya: kuyruk -f komutuna benzer şekilde dosya sistemindeki bir dosyadan okunur

syslog: 514 numaralı bağlantı noktasındaki sistem günlük mesajlarını izleyin ve bunları RFC3164 standardına göre analiz edin

redis: redis hizmetinden okuma

beats: filebeat'ten oku

Filtreler: Veri ara işlemi, verilerin işlenmesi.

Yaygın olarak kullanılan bazı filtreler şunlardır:

grok: Rasgele metin verilerini ayrıştıran Grok, Logstash için en önemli eklentidir. Ana işlevi, metin biçimindeki dizeyi belirli yapılandırılmış verilere dönüştürmek ve bunu normal ifadelerle kullanmaktır. Yerleşik 120'den fazla ayrıştırma sözdizimi

Resmi grok ifadesi: https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns

grok çevrimiçi hata ayıklama: https://grokdebug.herokuapp.com/

mutate: Alanı dönüştürün. Örneğin, alanları silin, değiştirin, değiştirin ve yeniden adlandırın.

drop: İşlem yapmadan bazı olayları bırakın.

clone: Olayı kopyalayın, bu süreçte alan ekleyebilir veya kaldırabilirsiniz.

geoip: coğrafi bilgi ekleyin (kibana'nın ön masada grafiksel olarak görüntülenmesi için kullanılır)

Çıktılar: Çıktılar, logstash işleme ardışık düzeninin son bileşenidir. Bir olay, işleme sırasında birden fazla çıktıdan geçebilir, ancak tüm çıktılar yürütüldüğünde, olay yaşam döngüsünü tamamlar.

Bazı yaygın çıktılar şunlardır:

Elasticsearch: Verileri verimli bir şekilde depolayabilir ve kolay ve basit bir şekilde sorgulayabilir.

dosya: olay verilerini bir dosyaya kaydedin.

grafit: Olay verilerini, grafik görüntüleme için popüler bir açık kaynak depolama bileşeni olan grafik bileşenine gönderin.

Codec'ler: codec'ler, giriş ve çıkışın bir parçası olarak yapılandırılabilen, veri akışına dayalı bir filtredir . Codec'ler, serileştirilmiş verileri kolayca bölmenize yardımcı olabilir.

Bazı yaygın codec bileşenleri:

json: Verileri kodlamak / kodunu çözmek için json formatını kullanın.

multiline: Birden çok olaydaki verileri tek bir satırda toplayın. Örneğin: java istisna bilgileri ve yığın bilgileri.

Alan sınırlı. Burada ELK / EFK ile ilgili kavramları tanıtacağım. EFK ile ilgili eğitimlerin nasıl oluşturulacağını daha sonra paylaşacağım ve ilgilenen arkadaşlar buna dikkat edebilir ~

Oyundaki Kun nedir?
önceki
Çocuk sahibi olmak istemeyen genç sanatçılar
Sonraki
Sichuan-Tibet hattında, plastik torbalar neden Land Cruiser'dan daha kullanışlıdır?
Üretim ortamında bir depolama sürecini optimize etme sürecini hatırlayın (42 saniye -> 0,06 saniye)
İnsan tasarımının çöküşünü bilimsel sürdürülebilir kalkınma açısından görüntüleyin
Önceki 5 gün içinde arşivleri düzenli aralıklarla temizleyen bir komut dosyası paylaşın
Batı karşıtı hareketin devrim niteliğindeki bir ürünü olan Beyaz Tavşan Süt Şekeri
Düşündüğünüzden daha düşük olabilir Saf elektrikli araçların koruma oranı neden bu kadar düşük?
Üretim ortamında SVN hizmet yedeklemesinin işlem sürecini ayrıntılı olarak açıklayın (örneklerle)
Uyku ile ilgili garip şeyler
Ayrıntılı oracle veritabanı izleme tns yapılandırma yöntemi
Yoksul insanlar araba satın almak için borç alırlar ya da araba almak için borç alırlar, hangisi akıllıdır?
Yerli askeri dronlar neden Beidou yerine GPS'i seçti? Baş tasarımcı cevapladı
Uyku ile ilgili garip şeyler
To Top