Azure Servislerini ve uygulamalarını izlemenin elbette birçok farklı yöntemi bulunmakta, daha önce bu yöntemlerden DataDog ve Azure Monitor çözümlerinin makalelerini sizlerle paylaşmıştım. Bugün ise sizlere Azure Linux VM üzerinde çalışan bir Grafana sunucusundan Azure servislerinin ve uygulamalarının nasıl izleneceğini anlatacağım ama öncesinde kısaca sizlere Grafana’dan bahsetmek istiyorum, daha fazla bilgi için yazarlarımızın Grafana yazılarını da okumanızı öneririm.
Grafana çok fazla tercih edilen open source analitik ve izleme platformudur. Grafana ile verileriniz nerede saklanırlarsa saklansın ölçme, sorgulama, görselleştirme, uyarma ve daha anlamlı hale getirme işlemlerini yapabilirsiniz. Ayrıca görselleştirme konusunda da çok zengindir, dashboard’lar oluşturarak ve paylaşarak veri odaklı izleme ve analitk kültürünü kurumunuz için geliştirebilirsiniz. Graphite, InfluxDB, Prometheus, Elasticsearch ve daha birçok veritabanını desteklekler veri görselleştirme ve izleme yapmanızı sağlar. Garafana’yı isterseniz on-premise yapınızda yer alan bir sunucu sistem üzerine de kurabilirsiniz. Azure başta olmak üzere birçok ortamdan servis ve uygulamaları izleyebilirsiniz. Bunun için Grafana’yı yerel ortamınıza yüklemeniz yeterli olacaktır sadece bu sistemler ile entegrasyonu tamamlamanız gerekmektedir. Bizim senaryomuzdaki gibi Azure ortamınızdaki servis ve uygulamalarınızı Grafana ile izleyecekseniz, kurulumdan sonra yapamız gereken tek şey Log Analytics ile olan entegrasyondur. Bu işlemler için önerilen Grafana sürümü 5.3 ve üzeri sürümlerdir. İsteyenler bu linkten Grafana’nın mevcut en sürümü indirebilirler.
Girişi bölümünde de bahsettiğim gibi ben Azure Linux VM üzerinde çalışan bir Grafana sunucusundan Azure servislerinin ve uygulamalarını izleyeceğim artık zaman kaybetmeden bu işlemlerin nasıl yapılacağına başlayalım. Azure Portal’a login oluyorum ve Azure Marketplace Grafana yazarak arama yapıyorum. Grafana Labs tarafından geliştirilen Grafana’yı seçerek Azure üzerinde standart VM oluşturma işlemleri adımlarını tamamlayacağım ancak birkaç küçük ek işlem yapmamız istenecek, onları da bu adımları yaparken belirteceğim.
Sırasıyla VM adı, VM parolasını ve Grafana sunucusu yönetici parolasını girmemiz isteniyor bunları girip OK butonuna basıyorum, VM boyutu ve bir depolama hesabı seçiyorum. Burada farklı olarak VM size seçerken bizden Data Node VM Size olarak minimum 2 node’lu VM seçmemizi istiyor. Ben önerilen VM ailesinden Standard A2 makine seçerek bir sonraki adıma ilerliyorum. Bir sonraki bölümde ise Ağ Yapılandırması kısmını varsayılan seçenekler ile tamamlıyorum, yine burada alışık olduğumuzdan farklı olarak Grafana için bir domain adı istiyor ve bende kullanabileceğim bir alan adı önekini giriyorum. Bunu neden istiyor derseniz Grafana’ya web üzerinden bağlanırken ister IP adresini isterseniz de domain adını kullanarak erişebilirsiniz. Ben o yüzden bu alanı doldurdum, bir önemli diğer konuda Grafana’ya web üzerinden 3000 nolu port ile bağlanmanızın gerekliliğidir, Azure üzerinde sanal VM kurulurken 3000 nolu port NSG içerisinden izin verilir olarak gelmektedir.
http://kara.westeurope.cloudapp.azure.com yada http://<IP adresi>: 3000 yazarak Grafana’ya oturum açılır.
Sıra Grafana’ya oturum açmaya geldi, Azure Linux VM oluştururken bizlerden Grafana yönetici parolası istemişti. Varsayılanda kullanıcı adı “Admin” olarak gelmekte ve belirlediğiniz o parola ile oturum açabilirsiniz.
Oturum açma adımını başarıyla geçtikten sonra Veri Kaynağı ekleme alanına Azure Monitor eklentisinin geldiğini görmekteyiz, dikkat ederseniz bu kısım için bile bir aksiyon almamıza gerek yok eklenti yüklü geliyor ama isterseniz sizlerde Apps bölümünden eklentiler yükleyebilirsiniz.
Grafana’ya Veri kaynağı eklemek için de yapılaması gereken adımlar şu şekilde;
- Add data source veri kaynağı seçilir.
- Veri kaynağı ismi ve tipi seçilir, biz Azure Monito’ü seçiyoruz.
- Azure Monitor API ayrıntılarındaki Subscription Id, Tenant Id, Client Id ve Client Secret bilgilerinin girilmesi gerekmektedir
İşte bu bilgileri alabilmek için birkaç farklı araçı kullanabilirsiniz. Ben Azure Portal’daki Cloud Shell’i kullanarak bu bilgileri almayı tercih ediyorum. Bir kaç Azure CLI 2.0 komutu çalıştırarak Subscription Id, Tenant Id, Client Id ve Client Secret bilgilerini alıp gireceğim. Cloud Shell’deyim ilk komutum az login bu komutu yazdığımda login olmam için kimlik doğrulama kodu çıkacak Cloud Shell’de görülen linke gidiyorum ve bu kodu giriyorum ve kimlik doğrulamamı da yapmış oluyorum. Bir sonraki komutum az account show bu komut bana Tenant ID bilgisini çıkaracak. Şimdi sıra son bir az ad sp create-for-rbac -n “Grafana” –role reader –scopes /subscriptions/Idyazın bu komuttun çıktılarında yer alan appId bilgisi Client ID text box’una password ise Client Secret text box’una yapıştırmanız entegrasyonun yapılmasını sağlayacaktır. Bu komutlar hakkında daha fazla bilgi almak için bu linki incelemenizi öneririm.
ad sp create-for-rbac -n “Grafana” –role reader –scopes /subscriptions/Idyazın komutunun çıktısı Resim-6’daki gibi görünmektedir. Önemli gördüğüm bir hatırlatmayı yapmak istiyorum eğer Azure Portal’daki Cloud Shell’i kullanarak değil de bilgisayarınızda yüklü olan bir Azure CLI kullanarak bu bilgileri almak istiyorsanız Azure CLI’nızın sürümünü kontrol edin çünkü Azure CLI 1.0’da kullanacağınız komutlar yukarıda yazdığım komutlardan farklılık gösterecektir ve daha eski Azure CLI sürümleri.
Artık elimizde Azure Monitor API için gerekli olan tüm Id’ler bulunmakta, bunları ilgili yerlere yapıştırıyorum.
Eğer sizlerde Application Insights kullanıyor ve buradan gelen verileri de Grafana üzerinde görselleştirmek ve analiz etmek isterseniz de bunun için yapmanız gereken tek şey API Key ve Application ID’yi Grafana’da ilgili yere girmek. Sırasıya Application Insights>MevcutAppInsight>Configure>API Access gelmeniz gerekmektedir.
API Key oluşturmak için bir isim girmeniz ve Read Telemetry check box’ını işaretleminiz ve Generate Key butonuna basmanız gerekmektedir.
API Key çok kısa bir sürede oluşmakta key’i kopyalayın ve Grafana’ya gelin.
Application Insights Details bölümüne geliyorum ve API Key ve Application Id bilgilerini yapıştırıyorum. Save & Test butonuna basarak tüm ayarları kaydedip, bağlantının doğru birşekilde olup olmadığını kontrol ediyorum.
Azure Monitor ile Grafana’yı ilişkiledirdiğimize göre bir Dashboard oluşturarak makalemizin yavaş yavaş sonuna gelelim istiyorum. Bunun için ilk olarak New dashboard diyoruz.
Sıra bu dashboard’a bir grafik eklemekte ben Graph seçiyorum.
Grafiğin oluşması için Azure Monitor’un bize sağladığı kaynakları belirleyerek devam ediyorum. Bunlar Resource Group, Resource Name, Namespace, Metric’ler.
Benim oldum olası izleme, analitik ve görselleştirme araçlarına büyük bir ilgim vardır ve Grafana’yı listemin en üst sıralarında bulundurmamın birçok nedeni var,yalnızca birkaçını yazarak bu efsanevi araçı kısıtlamak istemiyorum.
Bir başka Azure yazısında görüşmek üzere.
Ka®a