• Sonuç bulunamadı

Dağıtık Sistemlerin İzlenmesi İçin Bir Yazılım Mimarisi Önerisi

N/A
N/A
Protected

Academic year: 2021

Share "Dağıtık Sistemlerin İzlenmesi İçin Bir Yazılım Mimarisi Önerisi"

Copied!
6
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Dağıtık Sistemlerin İzlenmesi İçin Bir Yazılım

Mimarisi Önerisi

İbrahim Onuralp Yiğit, Dinçer Ünal, Ercan Kılıç, Emre Kılıç, Murat Demirsoy, Burak Gökmen

Havelsan A.Ş., İstanbul, Türkiye

{iyigit, dunal, ercankilic, emrek, mdemirsoy, bgokmen}@havelsan.com.tr

Özet. Bu bildiride Deniz Kuvvetleri Komutanlığı bünyesinde geliştir-ilen, su üstü ve su altı platformlarında kullanılan dağıtık sistemlerin izlenmesi için önerilen yazılım mimarisi çözümü anlatılmaktadır. Bu çalışma kapsamında dağıtık sistemin gerçek zamanlı olarak izlenebilmesini sağlayan bir veri analitiği platformu geliştirilmiştir. Dağıtık sistemde oluşan ve oluşması muhtemel anormal durumlar bu veri analitiği platformu ile tespit edilip incelenmektedir. Bu sayede dağıtık sistem ağındaki makinelerin anormal durumlardan en düşük derecede etkilenmesi ya da etkilenmemesi sağlanabilecektir.

Anahtar Kelimeler: Veri Analizi, Veri Görselleme, Yazılım Mimarisi, Dağıtık Sistem İzleme, Elasticsearch, Logstash, Kibana

A Proposal of Software Architecture for

Monitoring Distributed Systems

İbrahim Onuralp Yiğit, Dinçer Ünal, Ercan Kılıç, Emre Kılıç,

Murat Demirsoy, Burak Gökmen Havelsan A.Ş., İstanbul, Turkey

{iyigit, dunal, ercankilic, emrek, mdemirsoy, bgokmen}@havelsan.com.tr

Abstract. This paper proposes a software architecture solution devel-oped for monitoring the distributed systems used in the surface and un-derwater platforms developed within Turkish Naval Forces. Within the scope of this study, a data analytics platform has been developed that enables real time monitoring of the distributed system. Abnormalities occurring and likely to occur in the distributed system are detected and analyzed with this data analytics platform. Therefore, machines in the distributed system network are not affected or affected to a lesser extent because of abnormal conditions.

Keywords: Data Analysis, Data Visualization, Software Architecture, Distributed System Monitoring, Elasticsearch, Logstash, Kibana

(2)

1

Giriş

Dağıtık sistemler, kullanıcılara tek bir sistem olarak görünen bağımsız bilgisa-yarların bir ağ içerisinde birbirleri ile iletişim kurarak çalıştığı bir sistemler bütünüdür [1]. Dağıtık sistemler karmaşık çalışma prensibine sahiptirler. Sistem-ler üzerinde çalıştırılan uygulamalar birbirSistem-leri ile sürekli olarak veri alışverişinde bulunmaktadır. Bu veri alışverisi gerçek zamanlı olarak gerçekleşmekte olup ağda oluşacak gecikme ve senkronizasyon sorunları sistem davranışını olumsuz etkile-mektedir. Ayrıca dağıtık sistem üzerinde çalışan uygulamaların tükettiği sistem kaynakları (işlemci, bellek, disk, bant genişliği kullanımı vb.) sistem performan-sını doğrudan etkilemektedir. Bu etkenlerin yanı sıra dağıtık sistem bünyesin-deki makinelerin konfigürasyon (donanım, işletim sistemleri, çalışan uygulamalar vb.) farklılıkları göz önüne alındığında çalışma anında anormal durumlarla karşı karşıya kalınabilir. Bundan dolayı dağıtık sistem bünyesinde yer alan bir ya da birden fazla makinede ortaya çıkacak sorun tüm sistemin olumsuz etkilenmesine sebep olabilmektedir.

Dağıtık sistem içerisindeki makinelerin işlemci, bellek, disk, bant genişliği kullanımı, sistem üzerinde çalışan uygulamaların sağlık durumları gibi veriler çalışma anında periyodik olarak üretilmektedir [2]. Bu veriler gerçek zamanlı olarak izlenerek oluşan ve oluşması olası sistem anomalileri tespit edilebilir. Bu bildiride Deniz Kuvvetleri Komutanlığı bünyesinde geliştirilen, su üstü ve su altı platformlarında kullanılan dağıtık sistemlerin izlenmesi için önerilen yazılım mimarisi çözümü anlatılmaktadır. Bu çalışma kapsamında dağıtık sistemin ve sis-tem üzerinde çalışan uygulamaların gerçek zamanlı olarak izlenebilmesini sağlayan bir veri analitiği platformu geliştirilmiştir. Dağıtık sistemde oluşan ve oluşması muhtemel anormal durumlar bu veri analitiği platformu ile tespit edilip incelen-mektedir. Bu sayede dağıtık sistem ağındaki makinelerin anormal durumlardan en düşük derecede etkilenmesi ya da etkilenmemesi sağlanabilecektir.

Bildirinin bundan sonraki bölümleri şu şekilde düzenlenmiştir: İkinci bölümde yapılan literatür araştırması hakkında bilgi verilmiştir. Üçüncü bölümde geliştir-ilen yazılım mimarisi çözümü ve veri analitiği platformu ile ilgili detaylar pay-laşılmıştır. Dördüncü bölümde geliştirilen veri analitiği platformunun kullanımıyla elde edilen sonuçlarla ilgili değerlendirmelere yer verilmiştir. Son bölümde yapılan çalışma sonucunda gelinen noktanın değerlendirmesi yapılmış ve gelecek dönemde yapılacak çalışmalardan bahsedilmiştir.

2

Literatür Taraması

Günümüzde dağıtık sistemlerin belirlenen metriklere göre gerçek zamanlı olarak izlenmesi ve olası sistem anomalilerinin önceden tespit edilmesi araştırmacıların ilgilendiği önemli konulardır [3]. Mehrotra ve arkadaşları dağıtık sistemin izlen-mesi için bir uygulama geliştirme çerçevesi sunmuş, bu çerçeveyi kullanarak belirledikleri sistem ve uygulama metriklerini gerçek zamanlı izleyip sistemin hataya dayanıklılığını arttırmışlardır [4]. Martin ve arkadaşları ise dağıtık sis-tem verilerinin toplanması ve saklanması için bir yazılım mimarisi önermişlerdir

(3)

[5]. Önerdikleri yazılım mimarisine uygun uygulama çerçevesi geliştirmişlerdir. Gunter ve arkadaşları da dağıtık sistemlerin performans takibi ve sorunların izlenmesi için NetLogger aracını geliştirmişlerdir [6]. Çalışmalarında NetLog-ger aracı ile dağıtık sistemden NetLog-gerçek zamanlı topladıkları kayıt (log) verilerini görselleştirip sistem performansının analiz edilmesini sağlamışlardır. Akdur ve Özdemir, geliştirdikleri yeniden kullanılabilir kayıt izleme kütüphanesi sayesinde radar sistemlerinin ait işlemcilerin anlık yük durumlarını takip edebilmektedirler [7]. Dağıtık sistemlerin gerçek zamanlı izlenmesine ek olarak bu sistemlerde mey-dana gelebilecek olası anomalilerinin önceden tespit edilebilmesine ilişkin liter-atürde çalışmalar bulmaktadır. Özer ve arkadaşları yaptıkları çalışmada veri tabanı yönetim sistemleri kayıtlarından oluşturdukları veri seti üzerinde makine öğrenmesi tekniklerini kullanarak hataları tespit etmeye çalışmışlardır [8]. Lit-eratürdeki çalışmalar incelendiğinde, eş zamanlı dağıtık sistem verilerini analiz edip anlık anormal durumları tespit edebilen bir yazılım mimari önerisine rast-lanmamıştır.

3

Önerilen Çözüm

Bu çalışma kapsamında Deniz Kuvvetleri Komutanlığı bünyesinde geliştirilen Genesis Middleware (Genieware) [9] arakatman dağıtık sistemi ile entegre çalışa-cak bir yazılım mimarisi çözümü önerilmektedir. Genieware, içerisinde birçok farklı işlevdeki uygulamayı "yayınla - abone ol" mekanizması ile senkronize bir şekilde çalışmasını sağlayan, deniz savaş yönetim sistemlerinde kullanılan bir arakatman yazılımıdır [10]. Genieware, birçok makine konfigürasyonu (kullanıcı konsolu, merkezi işlem birimi, alt sistem birimi, genel destek birimi ve dosya saklama birimi) üzerinde çalışan uygulamalar arasında haberleşmeyi ve veri paylaşımını sağlamaktadır [11]. Genieware üzerinde çalışan uygulamalar Java, C, C++ gibi farklı programlama dilleri ile geliştirilmiştir. Bu uygulamaların çok farklı işlevleri ve performans gereksinimleri bulunmaktadır. Dağıtık sistem üzerinde uygulamaların yüksek performanslı ve verimli bir şekilde çalışmasını Genieware sağlamaktadır.

Bu çalışma kapsamında dağıtık sistem verilerinin analizi için bir veri analitiği platformu geliştirilmiştir. Dağıtık sistem bünyesindeki makinelerin işlemci, disk, bellek, bant genişliği kullanımı, bu makineler üzerinde çalışan uygulamalar ve bu uygulamaların birlikte çalışmasını sağlayan Genieware servislerinin ürettiği kayıtlar, izlenecek dağıtık sistem verilerini oluşturmaktadır. Geliştirilen veri anal-itiği platformu kullanılarak dağıtık sistem bünyesindeki makinelerin kullanımı, dağıtık sistem üzerinde çalışan uygulamaların sağlık durumlarının ve perfor-manslarının takibi, sistemin altyapısını oluşturan kritik seviyedeki Genieware servislerinin izlenmesi sırasında oluşan veriler çalışma anında periyodik olarak analiz edilmektedir. Ayrıca, makinelerin ve uygulamaların ürettiği metin tabanlı kayıtlar da geliştirilen platformda toplanıp analiz edilebilmektedir. Toplanan ver-iler görselleştirver-ilerek platformun sunduğu interaktif kullanıcı arayüzü ve grafikler sayesinde dağıtık sistemdeki sorunların tespit edilmesi kolaylaşmıştır.

(4)

Bu bağlamda Şekil 1’de gösterilen yazılım mimarisi tasarlanmıştır. Şekil 1’de aynı zamanda sistemdeki veri akışına ilişkin aşamalar da gösterilmektedir.

Şekil 1. Genieware veri analitiği platformu yazılım mimarisi

Önerilen yazılım mimarisi aşağıdaki beş temel katmandan oluşmaktadır. a) Veri Katmanı: Dağıtık sistem mimarisi içerisindeki her bir makinede bir

ajan uygulama bulunmaktadır. Bu ajan uygulama, bulunduğu makinede be-lirlenen sistem metriklerini toplamaktadır. Bu uygulama topladığı verileri ön işlemeden geçirip ortak bir MySQL veri tabanında depolamaktadır.

b) Veri Toplama Katmanı: Logstash, yazılım kayıtlarının ayrıştırma, dönüştürme ve depolama işlemleri gerçekleştiren bir kayıt yönetim altyapısıdır [12]. Bu adımda Logstash, MySQL veri tabanından verileri "Input" bileşeni ile alıp ve bu verileri "Filter" bileşeni ile ön işlemden geçirdikten sonra "Output" bileşeni ile Elasticsearch’e taşımaktadır.

c) Veri İşleme ve Depolama Katmanı: Bu aşamada açık kaynaklı, ölçek-lenebilir bir tam metin arama ve veri analiz motoru olan Elasticsearch [13] kullanılmaktadır. Elasticsearch aracılığı ile indekslenerek depolanan veriler üzerinden sorgu işlemleri gerçekleştirmektedir. Ayrıca, Elasticsearch destek-lediği bir çok API kütüphanesi ile dağıtık sistem verileri üzerinde çeşitli sorgular ile analiz yapılmasına da olanak sağlamaktadır.

d) Veri Görselleştirme Katmanı: Veri görselleştirme işleminde veri analizi ve görselleştirme aracı olan Kibana [14] kullanılmaktadır. Bu aşamada, kul-lanıcılar Kibana aracında hazırlanan interaktif kullanıcı arayüzleri ve grafik-ler aracılığıyla veri analizi işlemgrafik-lerini gerçekleştirmektedirgrafik-ler ve sistemde var olan veya oluşması muhtemel sorunları tespit etmektedirler.

4

Değerlendirme

Dağıtık sistem ve sistem üzerinde çalışan uygulamaların ürettiği verilerin bu platform aracılığı ile görselleştirmesi hem geliştiricilerin hem de operasyon ekip-lerinin işlerini kolaylaştırmıştır. Bu platform, kullanıcılarına oluşan ve oluşması

(5)

muhtemel sorunlarla ilgili analizleri, uyarıları ve alarmları sunmaktadır. Geliştir-ilen veri analitiği platformunda Şekil 2’deki kullanıcı arayüzü üzerinden dağıtık sistem izlemesi yapılmaktadır.

Şekil 2. Genieware dağıtık sistem izleme aracı kullanıcı arayüzü

Şekil 2’de bir günde toplanan verilere ilişkin analiz çıktısı gösterilmiştir. Sis-temde bulunan üç farklı makine türüne ait anormal olarak algılanan durumlar gösterilmiştir. Genieware’e ait bazı uygulamaların düzgün çalışmadığı anlaşıl-maktadır. Sistemde gerçekleşen işlem sayısına göre ortaya çıkan hata oranları; bunların hangi uygulamalardan ve hangi sebeplerden kaynaklandığı bu ekran sayesinde gözlemlenmektedir. Ayrıca kullanıcılar, bu sistemde oluşan ve oluşması muhtemel anormal durumlarla ilgili uyarıları zaman serisi grafiklerinde görün-tüleyebilmektedirler. Farklı makinelerin ve bu makinelerdeki uygulamaların kayıt-ları tek bir platformda toplanıp kullanıcı dostu ve anlaşılır grafiklerle temsil edilebilmektedir. Böylece, hata oluştuğunda kayıtların arasında iz sürebilmek kolaylaşmış, hatayı çözmek için harcanan zaman ve maliyet azalmıştır.

5

Sonuç

Bu bildiride Deniz Kuvvetleri Komutanlığı bünyesinde geliştirilen Genieware arakatman yazılımının gerçek zamanlı izlenip dağıtık sistemde aksama durumu yaşanmaması için sistemdeki anomalilerinin analiz edilebileceği bir veri analitiği platformu önerilmiştir. Önerilen platform sayesinde makinelerin işlemci, bellek, disk tüketimi ve kullanım yüzdeleri, ağ trafiği, sistem için kritik seviyedeki uygu-lamaların durumları ve anormal davranışları gerçek zamanlı takip edilebilmek-tedir. Ayrıca, önerilen platformla birlikte sistemde ortaya çıkan anomaliler in-teraktif kullanıcı arayüzü ile hızlı, etkin ve kolay bir şekilde kullanıcıya sun-maktadır. Bu platform kullanılarak anomalilerin tespit edilmesiyle zamanında

(6)

önleyici önlemler alınabilecektir. Ayrıca, yapılan çalışmada izlenen dağıtık sis-temdeki normal ve anormal durumlarla ilgili veriler toplanıp bir veri kümesinin hazırlanması planlanmaktadır. Hazırlanacak veri kümesi üzerinde makine öğren-mesi tekniklerinden yararlanarak anormal durumların öngörülöğren-mesi için çözüm-ler üretilebilir. İçözüm-lerleyen dönemçözüm-lerde de bu sistem anomaliçözüm-leri makine öğrenmesi teknikleri ile öngörülüp sistemde bu anomali durumlara karşı önlemler alınması üzerine çalışılacaktır.

Kaynakça

1. Tanenbaum, A. S. & Van Steen, M. Distributed systems: principles and paradigms (Prentice-Hall, 2007).

2. Joyce, J., Lomow, G., Slind, K. & Unger, B. Monitoring Distributed Sys-tems. ACM Trans. Comput. Syst. 5, 121–150. issn: 0734-2071 (Mar. 1987). 3. Goodloe, A. & Pike, L. Monitoring Distributed Real-Time Systems: A

Sur-vey and Future Directions (2010).

4. Mehrotra, R. et al. RFDMon: A Real-Time and Fault-Tolerant Distributed System Monitoring Approach. issn: ISIS-11-107 (2011).

5. Martin, D. L., Cheyer, A. & Moran, D. B. The Open Agent Architecture: A Framework for Building Distributed Software Systems. Applied Artificial Intelligence 13, 91–128 (1999).

6. Gunter, D., Tierney, B., Crowley, B., Holding, M. & Lee, J. NetLogger: a toolkit for distributed system performance analysis in Proceedings 8th In-ternational Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems (Cat. No.PR00728) (2000), 267–273. 7. Akdur, D. & Ozdemir, C. Gerçek zamanlı gömülü sistemlerde yeniden

kul-lanılabilir ve yapılandırılabilir yazılımların kaliteye etkisi: Radar projeleri destek kütüphaneleri in. 1221 (Sept. 2014), 177–186.

8. Ozer, S., Harsoglu, R., Akdogan, E., Ekinci, Y. & Zorlu, E. Sistem Yone-timi Hizmetleri icin Sorun Tahmini ve Onleyici Bakim Programi Gelistir-ilmesi in Proceedings of the 11th Turkish National Software Engineering Symposium, Alanya, Turkey, October 18-20, 2017. (2017), 424–431. http: //ceur-ws.org/Vol-1980/UYMS17\_paper\_33.pdf.

9. Bahriye’nin Türk Toplumuna Öncülük Yaptığı Alanlar https : / / www . dzkk.tsk.tr/icerik.php?icerik_id=334&dil=1.

10. Oksuztepe, K. & Oruk, T. Deniz Savaş Yönetim Sistemlerinde Yazılım Geliştirme Sürecinde Verimliliğin Artırılması in Proceedings SAVTEK2010, Savunma Teknolojileri Kongresi (2010).

11. Kutlusan, A., Altmidort, N., Oruk, T. & Duman, A. A combat manage-ment system middleware based on CORBA in Proceedings DOA’00. Inter-national Symposium on Distributed Objects and Applications (2000), 345– 354. doi:10.1109/DOA.2000.874206.

12. Logstash. https://www.elastic.co/products/logstash.

13. Gormley, C. & Tong, Z. Elasticsearch: the definitive guide: a distributed real-time search and analytics engine (" O’Reilly Media, Inc.", 2015). 14. Kibana. https://www.elastic.co/products/kibana.

Şekil

Şekil 1. Genieware veri analitiği platformu yazılım mimarisi
Şekil 2. Genieware dağıtık sistem izleme aracı kullanıcı arayüzü

Referanslar

Benzer Belgeler

TÜRK KÜLTÜRÜ ve HACI BEKTAŞ VELİ ARAŞTIRMA DERGİSİ / 2010 / 56 351 İNSANA SINIRLI BİR ANLAYIŞIN İÇİNDEN BAKMAK GÖRMEMEKTİR.. hayatına

Kontrol grubu için cinsiyete göre yapılan ön-test-son-test karşılaştırması, deney grubu öğrencileri içinde yapılmış ve elde edilen sonuçlara göre deney grubundaki kız

[r]

TRANSATLANTİK TİCARET VE YATIRIM ORTAKLIĞI’NIN KAPSAMI TTYO ile ticaret ve yatırımların serbestleştirilmesine ve pazarlara erişimin kolaylaşmasına yönelik olarak

Oturum Başkanı: Prof.Dr.Osman TEKiNEL (ç.ü.Rektör Yardımcısı ve Ziraat Fakültesi Dekanı).

HiikUmetinin henüz ilk yıllarında Maliye ve Gümrük Bakanı Vural An- kanile ters düşen özal, kabinede reviz­ yonla bu krizi atlattıktan sonra da bir bakanını

yüzyılda Anadolu’ya, Ankara’ya uzanarak günümüze.

empolu uzun adımla­ rına ayak uydurmak için elinden sıkı sıkıya tuttuğu babasının pe­ şinden akıntı çağano­ zu gibi savrularak koşturan küçük çocuğun,