Monitoring: Sistemlerinizi Kontrol Altında Tutun ve Performansı Maksimize Edin

Selçuk Şan
Turk Telekom Bulut Teknolojileri
9 min readMay 17, 2023

Günümüzün karmaşık ve hızla değişen teknoloji ortamında, işletmelerin IT altyapılarını ve uygulamalarını etkin bir şekilde yönetmeleri ve sorunları önceden tespit etmeleri önemlidir. İş sürekliliğini sağlamak, performansı optimize etmek ve kullanıcı deneyimini iyileştirmek için, monitoring süreci hayati bir öneme sahiptir.

Bu makalede, monitoring’in ne olduğunu, neden önemli olduğunu ve işletmelerin nasıl daha verimli bir izleme stratejisi geliştirebileceğini keşfedeceğiz. Ayrıca, popüler izleme araçlarından bazılarını ve gelecekteki trendleri ele alarak, monitoring dünyasındaki gelişmeleri de gözlemleyeceğiz.

Nedir Bu Monitoring?

Monitoring; sistemlerin, uygulamaların, network ve altyapının performansını gözlemlemek ve değerlendirmek için yapılan bir süreç.

Yani, bir nevi teknoloji dünyasının polis memuru gibi düşünebilirsiniz.

Sistemler derken, CPU kullanımı, bellek kullanımı, disk alanı, ağ trafiği gibi performans metriklerinden bahsediyorum. Bir sistem nasıl çalışıyor, ne kadar kaynak kullanıyor, bu verileri takip ederek anlamaya çalışıyorsunuz.

Uygulama monitoring ise biraz daha spesifik. Burada odak noktamız uygulamaların performansı. Kullanıcı işlemleri, hatalar, sunucu talepleri gibi uygulama özelinde metrikleri izleyerek uygulamanın sağlığı hakkında bilgi sahibi oluyoruz.

Bunun yanında altyapı bileşenlerini de unutmayalım. Veri merkezi performansı, ağ güvenliği, yedekleme gibi önemli ölçümlerle altyapının düzgün çalıştığından emin oluyoruz. Ne de olsa işletmelerin ayakta kalması ve sorunsuz bir şekilde iş yapması için sağlam bir altyapı gerekiyor.

Peki, monitoring neden bu kadar önemli?

İşte şimdi olayın püf noktasına geliyoruz. Monitoring, sorunları önceden tespit etmek için harika bir araç. Hataları önceden sezinleyerek hızlı bir şekilde müdahale edebilirsiniz.

Monitoring ayrıca kaynak kullanımını optimize etmene yardımcı olur. Bir sistemde gereksiz yüksek bellek tüketimi veya verimsiz disk alanı kullanımı fark ettiğinde, bu alanlarda iyileştirmeler yapabilirsiniz.

Müşteri memnuniyeti de monitoring sayesinde artar. Örneğin, bir e-ticaret platformunda alışveriş yapan kullanıcıların işlem süresini izleyebilir ve hızlı yanıt veren uygulamaların kullanıcı deneyimini artırdığını fark edebilirsiniz.

Ek olarak Monitoring, işletmelere veri tabanlı kararlar alma gücü verir. Verileri analiz ederek, işletmenin güçlü ve zayıf yönlerini daha iyi anlayabilirsiniz. Hangi alanlarda performans iyileştirmeleri yapılması gerektiğini belirleyebilir ve işletmenin stratejisini buna göre şekillendirebilirsiniz. Monitoring verileri, işletmenin büyüme potansiyelini ve gelecekteki planlarını desteklemek için de kullanılabilir.

Sonuç olarak, monitoring işletmeler için önemli bir süreçtir. Sistemlerin, uygulamaların ve altyapının izlenmesi, performans sorunlarının önceden tespit edilmesi ve önlemlerin alınması için hayati öneme sahiptir. Monitoring sayesinde işletmeler, daha verimli çalışabilir, kaynakları daha etkili bir şekilde kullanabilir, müşteri memnuniyetini artırabilir ve veriye dayalı kararlar alarak iş stratejilerini geliştirebilir. Monitoring, işletmelere rekabet avantajı sağlar ve başarıya giden yolda önemli bir adımdır.

Monitoring Stratejileri: İşletmenizin ve Uygulamalarınızın Performansını İzlemek İçin Yol Haritanız

Etkili bir monitoring stratejisi oluşturmak, işletmenizin gerçekten ihtiyaç duyduğu bilgileri elde etmenizi ve sorunları önceden tespit etmenizi sağlar.

İşte, işletmenizin performansını izlemek için kullanabileceğiniz bazı monitoring stratejileri:

  1. İhtiyaçlarınızı Belirleyin: İlk adım, işletmenizin spesifik ihtiyaçlarını belirlemektir. Hangi sistemler, uygulamalar veya altyapı bileşenleri sizin için en kritik olanlardır? Önceliklerinizi belirleyerek monitoring sürecine odaklanmanızı sağlayabilirsiniz.
  2. Uygun Metrikleri Belirleyin: İzlemek istediğiniz performans metriklerini belirlemek, doğru verileri elde etmek için önemlidir. Örneğin, CPU kullanımı, bellek kullanımı, ağ trafiği, hata sayısı gibi metrikler sizin için önemli olabilir. İşletmenizin gereksinimlerine ve hedeflerine uygun metrikleri seçin.
  3. Proaktif Monitoring: Sorunları önceden tespit etmek için proaktif bir monitoring stratejisi oluşturun. Alarm ve bildirim sistemleri kurarak, belirli bir eşiği aşan veya beklenmeyen durumlar olduğunda sizi uyarabilecek bir yapı oluşturun. Böylece, sorunlar hızlıca tespit edilir ve müdahale edilir.
  4. Gerçek Zamanlı İzleme: Gerçek zamanlı izleme, sistemlerin ve uygulamaların anlık performans verilerini takip etmek için önemli bir stratejidir. Bu sayede, olası performans sorunlarını hızlı bir şekilde tespit edebilir ve işletmenin sürekliliğini sağlayabilirsiniz.
  5. Veri Analitiği: Monitoring verilerini analiz etmek, işletmenizin performansını daha iyi anlamanıza yardımcı olur. Veri analitiği araçları kullanarak, trendleri, kalıpları ve sorunlu alanları belirleyebilirsiniz. Bu sayede, gelecekte olası sorunlara yönelik önlemler alabilir ve performansı optimize edebilirsiniz.

Monitoring Aracı Seçimi: Doğru Araçları Bulma

Doğru sonuçları elde etmek için doğru monitoring aracını seçmek önemlidir. Pek çok farklı monitoring aracı bulunması, seçim sürecini zorlaştırabilir. Şimdi, ihtiyaçlarınıza uygun monitoring aracını seçmenize yardımcı olacak bazı önemli faktörleri ele alalım.

  1. İşletme İhtiyaçları: İlk adım, işletmenizin spesifik ihtiyaçlarını belirlemektir. Hangi sistemleri, uygulamaları veya altyapı bileşenlerini izlemek istiyorsunuz? Hangi metrikler sizin için önemli? İşletmenizin büyüklüğü, karmaşıklığı ve sektöre özgü gereksinimlerini göz önünde bulundurarak, ihtiyaçlarınızı netleştirmeniz önemlidir.
  2. Kullanım Kolaylığı: Monitoring aracının kullanımı kolay ve kullanıcı dostu olması önemlidir. Araç, kullanıcı arayüzü, raporlama özellikleri ve grafiksel sunumlarıyla verilerin anlaşılabilir şekilde sunulmasını sağlamalıdır.
  3. Veri Analizi ve Görselleştirme: Monitoring aracı, verilerin analiz edilmesi ve görselleştirilmesi konusunda güçlü özelliklere sahip olmalıdır. Verileri grafikler, tablolar ve raporlar şeklinde sunarak, işletmenin performansını kolayca anlamanızı sağlamalıdır.
  4. Uyarı ve Bildirim Sistemi: Aracın, belirli metriklerin veya olayların eşik değerlerini aştığında otomatik uyarı ve bildirimler göndermek için etkili bir uyarı ve bildirim sistemi sunması önemlidir. Anlık uyarılar, e-posta bildirimleri veya SMS gibi yöntemlerle sizi hızlı bir şekilde bilgilendirmeli ve sorunları tespit etmenizi sağlamalıdır.
  5. Entegrasyon Yetenekleri: İşletmenizin kullandığı diğer araçlar ve sistemlerle entegrasyon yetenekleri, monitoring aracının etkinliğini artırabilir.

Prometheus ve Grafana: Güçlü İşbirliğiyle Veri Analizi ve Görselleştirme

Prometheus ve Grafana, monitoring alanında birbirini mükemmel şekilde tamamlayan iki güçlü araçtır. Prometheus, veri toplama ve depolama işlevlerini yerine getirirken, Grafana metrikleri görselleştirmek ve analiz etmek için kullanılır. Bu ikili işbirliği, birçok açıdan önemli avantajlar sunar.

Şimdi Prometheus ve Grafana’nın güçlü işbirliğini ele alacağız.

Prometheus, bir monitoring aracı olarak öne çıkmaktadır. Esnek ve ölçeklenebilir bir veri toplama sistemidir ve farklı bileşenlerin (sunucular, servisler, veritabanları vb.) durumunu izlemek için kullanılır. Prometheus, metriklerin toplanmasını, depolanmasını ve sorgulanmasını sağlar. Buna ek olarak, birden çok kaynaktan veri alabilir ve zengin sorgulama diline sahip olmasıyla dikkat çeker. Verileri düzenli olarak toplar ve uzun süreli depolama için kullanıcı dostu bir veritabanına kaydeder.

Grafana ise, Prometheus’un topladığı verileri analiz etmek ve görselleştirmek için kullanılan bir araçtır. Grafana, özelleştirilebilir paneller ve görsel bileşenler sunarak, verilerin anlaşılabilir ve etkili bir şekilde sunulmasını sağlar. Grafana’nın kullanıcı dostu arayüzü ve zengin görselleştirme seçenekleri, verileri grafikler, tablolar ve raporlar şeklinde sunarak kullanıcıların ağ durumunu kolayca takip etmelerine olanak sağlar.

Bulutbilisimciler.com: Prometheus ve Grafana ile Bir Monitoring Uygulaması

Şimdi sizlerlee Prometheus ve Grafana’nın güçlü işbirliğini kullanarak bir monitoring uygulaması gerçekleştireceğiz. Adım adım ilerleyerek, bu iki aracı bulutbilisimciler.com üzerinde kuracak, uygulamalar oluşturacak ve verilerimizi etkili bir şekilde analiz edip görselleştireceğiz.

https://bulutbilisimciler.com/

Adım 1: Hazırlık

İlk yapmamız gereken bulutbilisimciler.com üzerinde, kurslar bölümünden bir Ubuntu kursu açıp, bir ubuntu sunucu ayağa kaldırmak.

Ubuntu makinemizi çalıştırdık.

Sonrasında paket yöneticimizi güncel tutmak, yeni güncellemeleri yükleyebilmek ve vim editörü kullanmak için:

apt-get update
apt install vim

Çalışmamızı gerçekleştirmek adına /home/bb/ dizini oluşturup altına gidiyoruz.

mkdir /home/bb
cd /home/bb

Adım 2: Docker ile Grafana-Prometheus Kurulumu

Gerekli araçları yüklemek için bir docker-compose.yaml dosyası kullanacağız. Bu dosya birçok farklı servisi ve bağımlılıklarını tek bir yerde tanımlamanızı sağlar. Ayrıca Docker Compose aracılığıyla birden fazla container’ı başlatmanıza ve yapılandırmanıza olanak tanır. Önce bu dosyayı oluşturalım:

touch docker-compose.yaml

Sonrasında vi editör ile bu dosyanın içini dolduralım:

https://github.com/selcuksan/monitoring-app/blob/main/docker-compose.yaml

Bu örnekteki Docker Compose dosyası, üç servis tanımlar: Prometheus, Node Exporter ve Grafana.

Prometheus, metrik verilerini toplamak ve depolamak için kullanılan bir zaman serisi veritabanı ve monitoring aracıyken, Node Exporter, sistem düzeyi metriklerini toplar ve Prometheus’a sunar. Grafana ise, metrik verilerini görselleştirmek ve analiz etmek için kullanılan bir görselleştirme aracıdır.

Şimdi ise Prometheus’un nasıl çalışacağını belirleyen, Prometheus tarafından izlenen hedeflerin(target) tanımlanmasını, verilerin toplanmasını, depolanmasını ve sorgulanmasını sağlayan, ek olarak Prometheus’un zamanlayıcılarını, hedeflerin izlenme sıklığını ve diğer özelleştirme ayarlarını da içeren prometheus.yaml dosyasını oluşturalım ve gerekli bilgileri içerisine yazalım.

touch prometheus.yaml
https://github.com/selcuksan/monitoring-app/blob/main/prometheus.yaml

Yapılandırmada “global” bölümünde, genel scrape_interval ve evaluation_interval değerleri belirtilir. Bu değerler, Prometheus’un ne sıklıkla metrik verileri toplayacağını ve değerlendireceğini belirler.

“scrape_configs” bölümünde ise belirli bir “job_name” ile hedeflenen scrape işlemleri tanımlanır. Bu işlemler, “metrics_path” değeriyle belirtilen yol üzerinden hedef sistemlere istek gönderir ve metrik verilerini alır. Ayrıca, scrape_interval değeriyle bu özel scrape işleminin toplama sıklığı belirlenir.

Static_configs altında ise scrape işleminin hedeflediği “targets” belirtilir. Bu, Prometheus’un metrik verilerini alacağı hedef sistemlerin adreslerini ifade eder. Örneğin, “node-exporter:9100” ifadesi, Node Exporter servisinin 9100 portuna yapılan isteklerle metrik verilerinin alınacağını gösterir.

Artık Prometheus ve Grafana’yı kullanarak oluşturduğumuz monitoring çözümünü hayata geçirmenin zamanı geldi! Docker Compose’u kullanarak servislerimizi başlatacağız ve monitoring uygulamalarımızı ayağa kaldıracağız.

Docker Compose, tanımladığımız servisleri, container’ları ve bağımlılıkları otomatik olarak yönetmemizi sağlar. Bu sayede, karmaşık yapılandırmaları elle uygulamak zorunda kalmadan tüm servisleri tek bir komutla başlatabiliriz.

Şimdi, aşağıdaki adımları izleyerek servislerimizi başlatalım:

  1. Docker Compose dosyasının bulunduğu dizinde docker-compose up komutunu çalıştırın. Bu komut, Docker Compose dosyasını okur ve tanımlanan servisleri başlatır.
  2. Docker Compose, tanımlı servislerin container’larını oluşturacak, ağları kuracak ve bağımlılıkları çözecektir.
  3. Terminalde, servislerin başlatılma sürecini izleyebilir ve ilgili logları görebilirsiniz.
  4. Başarıyla başlatılan servisler, ilgili portlarda çalışacak ve erişilebilir olacaktır. Örneğin, Grafana’ya 3000 portu üzerinden erişiyor olacağız.

Gerekli bilgileri girdikten sonra 3000 numaralı porta gidelim. Grafana arayüzü bizleri karşılayacak. Kullanıcı adı ve şifre alanları için admin yazıp ilerleyebilirsiniz.

Adım 3: Prometheus ile Metrik Toplama ve Depolama

Grafana arayüzündeki Configuration bölümünden Data Sources kısmına giriyoruz.

Add data source ile kaynak olarak olarak prometheusu seçtikten sonra gerekli bilgileri girmemiz gerekiyor.

Kaynak olarak prometheus servisimizin çalıştığı url’i giriyoruz. Burada başka bir ayar girmemize gerek yok, diğer ayarlar default olarak kalabilir. Ardından Save & Test diyerek ayarlarımızı kaydediyoruz. Son olarak ise, docker-compose.yaml dosyası ile çalıştırdığımız node-exporter servisini monitor etmek üzere explore diyip analiz kısmına geçiyoruz.

Adım 4: Grafana ile Veri Analizi ve Görselleştirme

Burada analiz etmek üzere birçok Prometheus metriği bulabilirsiniz.

Prometheus metrikleri, Prometheus tarafından toplanan ve depolanan verilerdir. Bu metrikler, izlenen hedeflerin performansı, durumu veya diğer ölçülebilir özellikleri hakkında bilgi sağlar.

prometheus metrikleri

Biz buradarate(node_cpu_seconds_total{mode="system"}[1m]) ifadesini analiz edeceğiz.

Bu ifade Prometheus Query Language (PromQL) kullanılarak bir metriği sorgulamak için kullanılan bir örnektir. PromQL, Prometheus tarafından desteklenen sorgu dili olup, metrikler üzerinde sorgular yapmamızı sağlar.

Bu belirli sorgu, node_cpu_seconds_total metriğinin mode etiketi "system" olan değerlerinin son 1 dakika içindeki hızını (rate) hesaplar. Bu, sistem modunda geçirilen CPU süresinin bir hızını elde etmek için kullanılabilir. Bu sorgu, metriğin zaman içindeki değişimini hesaplar ve bu değişimin birim zamanda ne kadar olduğunu ifade eder.

İfadeyi yazıp Run Query dediğimizde…

Tebrikler! Prometheus ve Grafana kullanarak basit bir monitoring uygulaması oluşturdunuz. Artık sistemlerinizi izleyebilir, performanslarını takip edebilir ve sorunları hızla tespit edebilirsiniz.

Bu makalede, Monitoring’in Ne olduğunu, Neden önemli olduğunu ve Prometheus-Grafana ikilisini nasıl kullanacağımızı adım adım açıkladık. Umarım bu yazı dizisi size ilham verir ve monitoring işlerinizde başarılı işler yürütmeniz için bir kaynak oluşturur…

Kaynakça

--

--