Web tabanlı veri görselleştirme ve raporlama uygulaması olarak özetleyebileceğimiz bu güçlü uygulama pekçok büyük firma tarafından kullanılmaktadır. Şirketler altyapılarını izlemek ve operasyonel verimliliklerini arttırmak için Grafana'yı kullanmaktadır. Verilerin toplanması, yönetilmesi ve görüntülenmesini otomatikleştirdiği için izleme ve analizi oldukça kolaylaştırır. Bölüm ve takım yöneticileri, analistler, mühendisler karar verme mekanizmalarında Grafana'dan sıklıkla yararlanmaktadır. Anlık durum tespiti ve ileriye dönük planlamaların yapılması anlamında doğru verilere ulaşılıp doğru kararlar verilmesinde oldukça etkin bir rol oynamaktadır. Güvenlik analizi ekipleri tarafından da kullanılabilen Grafana kullanıcıların dijital ayak izlerinin takibi konusunda da fayda sağlamaktadır. Birçok veritabanı ile entegre olup veri çekebilen uygulama gerçekten gözalıcı grafikler, tablolar ve dashboardlar oluşturabilmektedir. Grafana ile verileriniz nerede olursa olsun sorgulama, ölçme, görselleştirme ve raporlama işlerinizi yapabilirsiniz. Operasyonel ölçümleriniz ile ilgili grafik ve raporlar oluşturabilirsiniz. İşin içine Telegraf ve InfluxDB araçlarını da kattığınızda Grafana sistemini oldukça güçlü ve yönetimi kolay bir izleme sistemine çevirmeniz de mümkün.
Grafana ile dakikalar içinde profesyonel dashboardlar hazırlamanız mümkün. Tabi bunun için biraz SQL bilginizin de olması gerekiyor.
Çekilecek veriler için SQL sorguları yazmanız gerekiyor. Ama bu gözünüzü korkutmasın, çok temel SQL sorguları ile harika dashboardlar ortaya çıkarabiliyorsunuz.
Alttaki dashboard bir sunucu ile ilgili çeşitli metrikleri görselleştirmektedir.
Her bir panel ayrı bir SQL sorgusu sonucu oluşan verilerden görselleştirilmektedir.
Yukarıdaki MEM panelinin detayına baktığımızda alttaki şekilde iki SQL cümlesi ile oluşturulduğunu göreceksiniz.
SQL cümlesini manuel yazmak istemeyenler için ise basitleştirilmiş bir editör de sunulmaktadır.
Alttaki örnekte SQL Serverdan çekilecek veriler için yazılmış bir SQL sorgusu görmektesiniz.
Verileri panelde Time Series, yani zamana bağlı değişen grafik şeklinde gösterebildiğimiz gibi tablo olarak da çekilen verilerin ham hali ile de gösterebiliriz.
Altta grafikle gösterilen verilerin tablo ile gösterimini görmektesiniz.
Yine altta tablo formatında bir panel görmekteyiz.
Grafana'nın sağladığı çeşitli visualization seçenekleri ile yapacağınız görselleştirmeler hayallerinize kalmış.
Birkaç farklı visualization örneğini altta paylaşmak isterim.
Visualization seçeneklerini alttaki şekilde listeleyebiliriz.
Verileri CSV dosyası olarak indirmeniz de mümkündür.
Ayrıca herhangi bir paneli "Share" özelliği sayesinde paylaşabilirsiniz. "Share Panel" çeşitli paylaşım opsiyonları sunmaktadır.
Direkt olarak panel link url sini paylaşmanın yanısıra panelin imaj olarak oluşturulmuş resim dosyasına da ulaşmak mümkündür.
Bunun yanısıra "Snapshot" paylaşımı ile panelin o anki hali public olarak bir link ile paylaşılacaktır.
Bu link adresini bilen herkes bu panelin o anki görüntüsüne erişebilecektir.
Embed özelliği sayesinde ise panel bir iframe olarak Grafana sistemi dışında başka bir web sitesinin
kodları içine gömülebilmekte ve diğer sitelerde görüntülenebilmektedir.
Bu işlem bildiğimiz HTML için iframe gömme işlemi ile aynıdır.
Grafana sistemi anlık ve geriye dönük olarak verileri, trend grafiklerini ve tabloları gösterebilmektedir.
Ayrıca belli bir zaman aralığı içinde panel ve dashboardlar özelleştirilebilmektedir.
Ayrıca "Cycle View Mode" özelliği ile dashboardlar bir ekrana yansıtılarak belli periyodlarda döngüsel olarak gösterilebilmektedir.
Dashboardlar üzerinde gösterilen veriler detaylı olarak filtrelenebilmektedir.
Oluşturulacak filtre değişkenleri birbirleri ile ilişkilendirilerek anlık olarak dashboardlar üzerindeki verileri filtrelemek mümkündür.
Filtreleme işlemleri için Dashboard ayarları içinde Variables kısmında değişken tanımlamaları yapılabilmektedir.
Her bir değişken diğer değişken ile ilişkilendirilebilirken kendine ait bir SQL sorgusu ile eşleşmektedir.
500 tane sunucunuz ve her sunucu üzerinde 3 adet network interface iniz olduğu bir senaryoda sadece operasyon bölümüne ait sunucuların dashboard üzerinde gösterilmesini sağlayabilirsiniz. Yada sadece belli sunucuların sadece eth1 network interface kullanımlarının dashboard üzerinde gösterimi sağlanabilir.
Grafana sisteminde alarm oluşturmak da mümkündür. Belli kriterlere göre alarmlar oluşturulup kriterler gerçekleştiğinde yada belli eşikler geçildiğinde sistemin alarm üreterek mesaj göndermesi sağlanmaktadır.
Tablo ve grafik verilerinde yine treshold belirlenerek alarm durumlarının görsele yansıtılması da mümkündür.
Grafana sistemi kullanıcı ve kullanıcı grupları yönetimi ve yetkilendirilmesi konusunda da oldukça yeterli özellikler sunmaktadır. Ldap entegrasyonu yapılabilmektedir. Dashboardları oluşturacağınız kullanıcı ve takımlara göre yetkilendirerek kimlerin göreceği yada düzenleyebileceği konularında özelleştirebilirsiniz. Ayrıca dashboarları bir klasör yapsında gruplayarak yetkilendirmeleri dashboard grupları üzerinde de uygulayabilirsiniz. Ayrıca organizasyon bazlı ana ayrımlar yapmak da mümkündür.
Grafana'nın en güzel özelliklerinden birisi ise grafana.com üzerinden daha önce hazırlanmış dashboardları import edebiliyor olmanızdır. Yani herhangi bir geliştirme yapmadan ve SQL sorgusu yazmadan size uygun hazır dashboardları ücretsiz olarak saniyeler içinde devreye alabilirsiniz.
Grafana.com üzerinden ID sini alacağınız dashboardı hemen import edip kullanmaya başlayabilirsiniz.
Örnek vermek gerekirse yüzlerce linux makine ile ilgili onlarca bilginin görselleştirildiği bir dashboardı hızlıca sisteminizde devreye alabilirsiniz. Dashboard ve panel dizaynı ile uğraşmanıza gerek olmadan.
Grafana sistemi dışarıdan web sayfalarının da dashboard panel olarak sisteme eklenmesine izin vermektedir. Buda Grafana sistemi daha da genişletebilmenize imkan vermektedir. Bir projede müşterimiz bazı scriptleri çalıştırarak çıktıları olan grafikleri Grafana üzerinde bir dashboard olarak görüntülemek istediğini belirtmişti. Normal şartlarda Grafana'da bu tarz bir tetikleyerek grafik oluşturma yapısı yok. Fakat dışarıda oluşturduğumuz bir web sayfası formatını Grafana formatına yakın bir formatta hazırlayarak sisteme entegre ederek müşterinin isteğini gerçekleştirme şansımız olmuştu.
Sıkça sorulan sorulardan biri ise Grafana üzerindeki grafik ve tablo panelleri kullanarak sıfırdan yeni bir web sitesi tasarımı yapabilir miyiz? Kendi web şablon tasarımlarını kullanmak isteyen bazı firmalardan bu şekilde istekler gelebiliyor. Teknik olarak yapılması mümkün fakat Grafana'nın kullanıcı yetkilendirme sistemini devre dışı bırakmış oluyorsunuz. Yeni oluşturacağınız web sitesinde kendi kullanıcı yetkilendirmelerinizi yaptıktan sonra neden olmasın. Paneller iframe olarak dışarıya aktarılabiliyor. Bu şekilde yeni oluşturacağınız web sitesinin içine hertürlü gömmeniz mümkün. Tabi burada Grafana tarafında bir güvenlik açığı olur mu sorusu da akla gelmektedir. Çünkü panelleri dışarıya açabilmek için anonymous kullanıcı otantikasyonunu açmanız anlamına gelmektedir. Buda Grafana'yı herkese açtığınız anlamına gelmektedir. Bunu aşmanın yolu ise Grafana sunucusu ile yeni web sitesini oluşturacağınız sunucu arasında point to point bir iletişim kurmak ve Grafana'ın web portuna sadece bu web sunucusunun erişebilmesini sağlamak. Böylece kullanıcılar yeni web sitesine erişirken Grafana sunucusuna erişemeyecek fakat Grafana'daki panelleri yeni web sunucusu görüntüleyerek kullanıcılara iletebilecektir. Bu şekilde Grafana'dan tamamen farklı bir web uygulaması hazırlanabilir ve sistemi kullananlar arka planda Grafana'nın olduğunun farkında bile olmayacaktır.
Grafana backend bir HTTP API hizmeti de sunmaktadır. Böylece farklı araçlar ile entegrasyon yada otomasyon işleri bu API aracılığı ile kolaylıkla yapılabilmektedir. Dashboard oluşturma, kaydetme, kullanıcı yaratma, takım yaratma ve yönetme, data source update, alarmların alınması, playlist oluşturulması, silinmesi, snapshot alınması ve silinmesi gibi işlemleri bu API aracılığı ile yapabilmekteyiz.
Grafana sistemi çeşitli pluginlerin kullanımı ile daha da yetenekli hale gelmektedir. CloudWatch, Elasticsearch, Google Cloud, Graphite, Jaeger, Microsoft SQL Server, MySQL, OpenTSDB, Prometheus, Tempo, Zipkin gibi pekçok datasource kullanımını mümkün kılmaktadır. Bunlar dışında alttaki data sourcelar konusunda pluginler ile desteğe sahiptir.
Grafana uygulamasını kendi sunucularınıza kurabilir yada Grafana Cloud hizmetinden faydalanabilirsiniz.
AWS tarafında Amazon'un sunduğu Amazon Managed Grafana servisi de son günlerin popüler servislerinden biri haline gelmiş durumda. AWS tarafından 2 tür lisans sağlanmakta. Editör ve Görüntüleyici lisansları. AWS fiyat listelerine baktığımızda 20 Editör ve 30 görüntüleyici lisansı için aylık olarak alttaki şekilde bir hesap çıkarıldığını görüyoruz.
Monthly Charges = 20 * $9.00 (Editor license) + 30 * $5.00 (Viewer license) = $330.00
Alttaki görsellerde AWS tarafındaki Grafana ekranlarından örnekleri görebilirsiniz.
Grafana kullanan bazı firmalara Siemens, Salesforce, SNYK, Dell, Tripadvisor, TomTom, JPMorgan, Dapper, Citi, Roblox, Unity, Redis, Wix, Booking.com, DigitalOcean, Stackoverflow, Ebay, Tinder, Verizon, Bloomberg, PayPal kuruluşlarını örnek verebiliriz.
Grafana docker imajını indirmek için TIKLAYIN.
Grafana'yı hemen denemek için Demo sayfasına gidebilirsiniz.
https://play.grafana.org/
Teşekkürler,
Cem Selmanoğulları