... Skip to content

Azure Log Analytics’e Giriş

Azure Log Analytics’e Giriş

Genel Bakış

Bu yazıda  Azure Log Analytics’i ne amaçlarla ve nasıl kullanabileceğimizi inceleyeceğiz. Öncelikle biraz Log Query yazımından ve kullanımından bahsettikten sonra, Azure’a dahil olan veya olmayan, linux veya windows tüm makinelerimizden detaylı veri elde edebilmek için kullandığımız Log Analytics Agent ve diğer alternatiflerinden bahsedeceğiz.

Log Analytics Nedir?

Azure Monitor Logs, Azure aboneliğiniz altındaki tüm kaynaklarınıza ilişkin log verisini toplamak ve analiz yapmak için kullanılan araçtır. Logs sayesinde çeşitli kaynaklarınızdan elde edeceğiniz çeşitli tipteki verileri rahatlıkla organize eder, kategoriler ve sonrasında birtakım incelemeler için depolarsınız.

Log Analytics, Azure Portal’da log query(sorgu) yazmak ve sonuçlarını incelemek için kullanılan birincil araçtır. Bunun için Log Analytics altında workspace(çalışma alanları) oluşturup verinizi tablolar halinde istiflersiniz. Her bir tablo farklı bir kaynaktan toplanan logları barındıracak şekilde düzenlenir. Bu tabloların hepsi benzer özellikler taşısa da, tabi ki tuttukları veri türüne göre farklı özelliklere sahiptirler. Bu ortak özellikler ile ilgili daha detaylı bilgiye Microsoft’un ilgili dokümanından ulaşabilirsiniz

Daha sonrasında yazacağınız log queryler ile bu organize durumdaki verilerin arasından istediklerinizi çekerek görsel bir grafik oluşturabilir, bu grafikleri bir dashbord’a kaydedebilir veya paylaşabilirsiniz.

Bunun yanında Log Analytics, yazdığımız sorguların sonuçlarına bağlı olarak belirlenebilecek özel durumlar için Alert Rule tanımlamamıza olanak sağlar.

Log Queries

Log Queryler Azure Monitor Logs ile toplanan veriler üstünde daha detaylı inceleme yapabilmek için kullanılmaktadır. Her ne kadar Azure Monitor’ün sağladığı diğer araçlar (insights gibi) bize bir çok bilgi sağlasa da, topladığımız verileri tam anlamıyla işlemek ve analiz etmek için query yazmamız gerekmektedir.

Log query yazmak için Azure Portal, Azure CLI, Powershell veya REST API kullanılabilir.

Nasıl Yazılır?

Log Query yapısı oldukça basit ama bir o kadar da efektiftir.

Azure’da Log query yazmak için Kusto Query Language kullanılır ve oldukça basit bir yapısı vardır. Log query nin amacı sorgu yapmak ve veri çekmekten ibaret olduğu için SQL tarzı dillerdeki update, delete, create tarzı deyimler bulunmamaktadır.

Basit bir sorgu yazmak için tek ihtiyacınız olan bir tablo ismidir. Yukarıda da bahsettiğimiz gibi, bir Log Analytics workspace’inde veriler tablolar halinde tutulur ve biz sorgu yaparken sadece bu tabloların ismini yazarak çağırabiliriz.

Not: Aşağıda yapacağımız örneklerde Microsoft’un sağladığı demo ortamı kullanacağız.

Gördüğünüz üzere soldaki listede listelediğimiz tablolardan birinin adını yazıp “Run” butonuna bastığımızda bize tablonun tüm içeriğini getirdi. Şimdi yapmamız gereken bu içeriği doğru şekilde filtreleyerek sadece ihtiyacımız olan veriye ulaşmak.

Azure Portalda kullandığımız IDE sayesinde bu sorguları yazmak oldukça kolay. Mesela “InsightMetrics” yazdıktan sonra bize hemen kullanabileceğimiz seçenekler listelenir:

Bu şekilde aradığımız veriyi direkt filtreleyebilir veya elde ettiğimiz veri üstünde birtakım işlemler yapabiliriz. Ekleyeceğimiz her bir işlem için araya “,” (pipe) işareti koyarak önceki işlemin çıktısını bir sonrakine aktarmış oluruz. Query yazmakla ilgili daha detaylı bilgi için Micrsoft’un dokümanını inceleyebilirsiniz.

Agentlar

Sanal makinelerimizden detaylı olarak loglarımızı çekmek için birtakım agentlara ihtiyacımız var. Azure bu konuda bize birkaç seçenek sunmakta: Azure Monitor Agent, Log Analytics Agent, Azure Diagnostics Extension.

Azure Monitor Agent(AMA)

Azure Monitor agent ile tüm sanal makinelerimizden sistemle ilgili çeşitli bilgiler toplayarak bunları Azure Monitor’e iletiriz. AMA ile şuan için sadece Azure üstünde bulunan sanal makinelerimiz üzerinde veri toplama işlemi yapabiliyoruz. Lakin AMA’nın da bize sağladığı farklı imkanlar mevcut:

  • Farklı VM’lerden farklı farklı verilerin toplanmasını tek bir merkezden yönetebilirsiniz
  • Linux VM’lerden aynı anda birden fazla workspace’e veri gönderebilirsiniz
  • XPATH sorguları kullanarak hangi Windows eventlerini toplayacğaınızı filtreleyebilirsiniz

Diagnostic Extension

Diagnostic eklentisi, Azure üstündeki işlem kaynakları (compute resources) üzerindeki misafir işletim sistemlerinden veri toplamak için kullanılan bir agenttır. Diagnostic eklentisi aynı zamanda misafir işletim sistemi üzerindeki metrikleri de toplayarak Azure Monitor Metrics’e gönderir.

Log Analytics Agent

Log Analytics Agent sayesinde windows ve linux tüm sanal makinelerimizden telemetry verisini toplarız. Bu veriler Azure Monitor’de oluşturduğumuz ilgili Log Analytics Workspace altında görülür. Log Analytics Agent, Azure dışı ortamlarımızdaki (on-premise gibi) sanal makinelerimizde de kullanılabilir. Bu, Log Analytics Agent’ı diğerlerinden ayıran en önemli özelliktir. Log Analytics Agent’ın bir diğer yeteneği de sadece Azure Monitor’e bağlı olmaması, yani buradan elde ettiğimiz verileri Azure Sentinel veya Azure Security Center gibi diğer servisler için de kullanabiliriz. Ayrıca Log Analytics Agent, hedef gösterdiğiniz bir dosyadan özelleştirilmiş logları da okuyabilir.