USS, Tükiye genelinde sağlık hizmet sunucularında kaydedilen sağlık verilerinin merkezi sistemde toplanması, uzun dönemli saklanması, operasyonel ve analiz işlemleri gerçekleştirilmesini sağlamaktadır. Sistem kapsamında 27.000 sağlık hizmet sunucusu, günde ortalama 100 Milyon mesaj iletmektedir.İstemcilerden gelen mesajlar mikroservis sunucularında işlenerek kaydedilmektedir.

Sağlık verileri web servis teknolojileri kullanılarak alınmakta mikroservis 27.000 Sağlık Hizmet Sunucusu Günlük 100 Milyon Mesaj 150 Mikroservis Sunucusu 90 Veri Platformu Sunucusu

uygulamaları kullanılarak kontrol edilerek kaydedilmektedir. Sistemde Kullanılan Teknolojiler:

  • Net C# web servis, ve windows servis uygulamaları
  • NoSQL veri tabanları; Couchbase, Redis, RabbitMQ, Apache Kafka
  • İlişkisel veri tabanları; MS SQL, Oracle, SQLite

Problem

USS işletim oramında mikroservis uygulama işlem logları uygulamanın çalıştığı sunucu üzerinde tutulmaktaydı. Sistemde oluşan bir hatanın takibi için 150 mikroservis uygulama sunucunda tutulmakta olan log dosyalarında arama yapılması gerekiyordu. Bu durum da hatanın tespiti ve giderilmesi işlem sürelerini çok artırmaktaydı. Dağıtık olarak duran bu log kayıt dosyaları üzerinde mesaj ve sistem performansını analiz etmek imkansızdı. Mikroservis uygulamalarının çalışma durumu ve performası izlenememekteydi

Gereksinim

Log kayıtlarının merkezi olarak toplanması, izlenmesi ve analiz edilmesi. Log kayıtlarının izlenebilmesi, analiz edilebilmesi için aşağıda listlenen metrik ve parametreler belirlenmiştir.

Arama ve analiz metrikleri

  • Mesaj sayısı
  • Mesaj işlem süresi Arama ve analiz parametreleri
  • Tam metin arama
  • Mesaj türü
  • Mesaj işlem sonucu
  • Mesaj takip numarası
  • Sağlık hizmet sunucusu
  • Sağlık hizmet sunucusunun IP adresi ve lokasyonu
  • Sağlık bilgi sistemleri uygulaması
  • USS mikroservis sunucusu

Çözüm

Yukarıda tanımlanan sorunlar ve gereksinimlere çözüm oluşturabilmek için Elastic Stack uygulamalarının kullanımına karar verilmiş ve USS bünyesine Log Analiz platformu eklenmiştir.

Filebeat: Arama, analiz metrik paramatrelerini içeren log kayıtları Mikroservis sunucularında JSON formarında log dosyalarına kaydedilmekte, Filebeat uygulaması ile Logstah uygulamasına otomatik aktarılmaktadır. Logstash: Filebeat uygulaması tarafından aktarılan log kayıtları Logstash uygulaması ile filtrelenmekte, dönüşümleri yapılmakta, IP adresi kullanılarak coğrafi lokasyonu tespit edilmekte ve Elasticsearch üzerinde kaydedilmektedir. Elasticsearch: Log kayıtlarını indeksleyerek saklanmasını sağlamaktadır. Elasticsearch Query DSL özelliği kullanılarak indekslenen log kayırları JSON tabanlı sorgular ile arama yapılabilmektedir.

Kibana: Elasticsearch verileri üzerinde arama, görselleştirilme ve dashboard arayüzleri hazırlama ortamı sağlar.