Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Log Analytics; uygulamalardan, Azure kaynaklarından, VM'lerden, kapsayıcılardan ve daha fazlasından günlükleri toplayan merkezi bir günlük kaydı platformudur. Bunu Veri API oluşturucusu (DAB) ile tümleştirmek, kuruluşların uyumluluk, idare ve gözlemlenebilirlik gereksinimlerini karşılamaya yardımcı olur. Application Insights'ın (APM'ye odaklanan) aksine Log Analytics, Kusto Sorgu Dili (KQL) desteğiyle daha geniş kapsamlı günlük toplaması sağlar.
Önkoşullar
- Mevcut DAB yapılandırma dosyası.
- Log Analytics kaynakları oluşturma izinlerine sahip Azure aboneliği.
- Azure Log Analytics çalışma alanı:
- Özel tablo (ile biten
_CL) - Veri Toplama Kuralı (DCR)
- Veri Toplama Uç Noktası (DCE)
- Özel tablo (ile biten
- Yönetilen Kimlik, DAB sunucunuzda (Azure App Service, Container Apps, VM vb.) etkinleştirildi.
- Veri API'si oluşturucu CLI. CLI'yi yükleme
Azure Log Analytics kaynaklarını ayarlama
DAB'yi yapılandırmadan önce gerekli Azure kaynaklarını oluşturun.
Log Analytics çalışma alanı oluşturma
- Azure Portal>Log Analytics çalışma alanlarına gidin.
- +Oluştur'u seçin.
- Aboneliğinizi, kaynak grubunuzu ve bölgenizi seçin.
- Bir çalışma alanı adı girin.
- Gözden geçir ve oluştur>Oluştur'u seçin.
Özel tablo oluşturma
Günlük Alımı API'si için özel tablolar _CL ile bitmelidir.
- Log Analytics çalışma alanınızda Tablolar'a gidin.
- + Oluştur>Yeni özel günlük (DCR tabanlı) seçeneğini belirleyin.
- Tablo adını girin (örneğin,
DabLogs_CL). - Şemayı şu sütunlarla tanımlayın:
-
Time(tarih ve saat) -
LogLevel(dize) -
Message(dize) -
Component(dize) -
Identifier(dize)
-
- Oluştur'i seçin.
Veri Toplama Uç Noktası Oluşturma (DCE)
- Veri Toplama Uç Noktalarını> gidin.
- +Oluştur'u seçin.
- Aboneliğinizi, kaynak grubunuzu ve bölgenizi seçin.
- Bir ad girin (örneğin,
my-dce). - Gözden geçir ve oluştur>Oluştur'u seçin.
-
Günlük Alımı uç noktası URL'sini kopyalayın (örneğin,
https://my-dce.eastus-1.ingest.monitor.azure.com).
Veri Toplama Kuralı Oluşturma (DCR)
- İzleme>Veri Toplama Kuralları'na gidin.
- +Oluştur'u seçin.
- Abonelik, kaynak grubu, bölge'yi seçin.
- Bir ad girin (örneğin,
my-dcr). - Veri kaynakları'ndaÖzel Metin Günlükleri'ni seçin.
- Ayarla
- Veri Toplama Uç Noktası: DCE'nizi seçin.
- Hedef: Log Analytics çalışma alanınız.
-
Tablo: Özel tablonuz (
DabLogs_CL).
- Gözden geçir ve oluştur>Oluştur'u seçin.
-
Immutable ID'yi (şununla
dcr-başlayan) kopyalayın.
Kimlik doğrulamasını yapılandırma
DAB, Log Analytics'de kimlik doğrulaması yapmak için Azure Yönetilen Kimliği kullanır. Yapılandırmanızda hiçbir kimlik bilgisi depolanmaz.
Yönetilen Kimliği Etkinleştirme
az webapp identity assign \
--name my-app \
--resource-group my-rg
İzin atama
DCR'de Yönetilen Kimliğinize İzleme Ölçümleri Yayımcısı rolü verin.
# Get Managed Identity principal ID
PRINCIPAL_ID=$(az webapp identity show \
--name my-app \
--resource-group my-rg \
--query principalId -o tsv)
# Get DCR resource ID
DCR_ID=$(az monitor data-collection rule show \
--name my-dcr \
--resource-group my-rg \
--query id -o tsv)
# Assign role
az role assignment create \
--assignee $PRINCIPAL_ID \
--role "Monitoring Metrics Publisher" \
--scope $DCR_ID
Önemli
Bu rol ataması olmadan DAB, günlükleri doğru yapılandırmayla bile Log Analytics'e gönderemez.
Log Analytics’i Yapılandırma
Yapılandırma dosyanızın altına azure-log-analytics bir runtime.telemetry bölüm ekleyin.
{
"runtime": {
"telemetry": {
"azure-log-analytics": {
"enabled": true,
"dab-identifier": "my-dab-instance",
"flush-interval-seconds": 10,
"auth": {
"custom-table-name": "DabLogs_CL",
"dcr-immutable-id": "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"dce-endpoint": "https://my-dce.eastus-1.ingest.monitor.azure.com"
}
}
}
}
}
Yapılandırma özellikleri
| Mülkiyet | Description | Varsayılan | Constraints |
|---|---|---|---|
enabled |
Log Analytics tümleştirmesini etkinleştirin veya devre dışı bırakın. | false |
Boolean |
dab-identifier |
Bu DAB örneği için günlük girdilerini tanımlamak amacıyla benzersiz bir dize. | DabLogs |
Herhangi bir dize |
flush-interval-seconds |
Günlükler, Log Analytics'e saniye olarak ne sıklıkta aktarılır? | 5 |
0 olmalıdır > |
auth.custom-table-name |
Log Analytics çalışma alanınızdaki özel tablo adı. | (gerekli) | Şununla bitmelidir _CL |
auth.dcr-immutable-id |
Veri Toplama Kuralınızın değiştirilemez kimliği. | (gerekli) | Şununla başlar: dcr- |
auth.dce-endpoint |
Veri Toplama Uç Noktası URL'si. | (gerekli) | HTTPS URL'si |
Command-line
Log Analytics'i dab configure aracılığıyla yapılandırın.
Log Analytics'i etkinleştirme
dab configure \
--runtime.telemetry.azure-log-analytics.enabled true
DAB tanımlayıcısı ayarlama
dab configure \
--runtime.telemetry.azure-log-analytics.dab-identifier my-dab-instance
Temizleme aralığını ayarlama
dab configure \
--runtime.telemetry.azure-log-analytics.flush-interval-seconds 10
Özel tablo adını ayarlama
dab configure \
--runtime.telemetry.azure-log-analytics.auth.custom-table-name DabLogs_CL
DCR sabit kimliğini ayarlama
dab configure \
--runtime.telemetry.azure-log-analytics.auth.dcr-immutable-id dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DCE uç noktasını ayarlama
dab configure \
--runtime.telemetry.azure-log-analytics.auth.dce-endpoint https://my-dce.eastus-1.ingest.monitor.azure.com
DAB çalıştırma
DAB'i yapılandırma dosyanızla başlatın:
dab start
DAB başlangıç günlüklerini denetleyin:
Azure Log Analytics is enabled.
Nasıl çalışır?
Log Analytics etkinleştirildiğinde DAB:
- Konağın Yönetilen Kimliğini kullanarak Azure'da kimlik doğrulaması yapar.
-
flush-interval-secondstemelinde günlük girdilerini gruplandırır. - Günlükleri Veri Toplama Uç Noktasına (DCE) gönderir.
- DCE, dönüştürme için günlükleri Veri Toplama Kuralı (DCR) aracılığıyla yönlendirir.
- DCR, günlükleri özel Log Analytics tablonuza yükler.
Veri akışı
DAB Application
↓
ILogger (ASP.NET Core)
↓
Log Analytics Logger Provider
↓
Managed Identity Authentication
↓
Data Collection Endpoint (DCE)
↓
Data Collection Rule (DCR)
↓
Log Analytics Workspace (Custom Table)
Yakalananlar
| Telemetri türü | Kaynak | Örnekler |
|---|---|---|
| İzler |
ILogger DAB'de aramalar |
Başlangıç günlükleri, sorgu yürütme günlükleri, uyarılar |
| Errors | İstisna yönetimi | Çalışma zamanı hataları, yapılandırma hataları, veritabanı hataları |
| Bileşen bilgileri | DAB iç işlevleri | Günlüğü oluşturan modül |
| Örnek Kimliği | Konfigürasyon |
dab-identifier filtreleme değeri |
Günlük yapısı
Log Analytics'e gönderilen her günlük girdisi şu alanları içerir:
| Veri Alanı | Türü | Description | Example |
|---|---|---|---|
Time |
tarih/zaman | Zaman damgası (ISO 8601) | 2026-01-27T14:30:00Z |
LogLevel |
String | Kayıt şiddeti |
Information, Warning, Error |
Message |
String | Günlük iletisi | Request completed successfully |
Component |
String | Günlüğü oluşturan DAB bileşeni | Azure.DataApiBuilder.Service.Startup |
Identifier |
String | Yapılandırmadan alınan dab-identifier değer |
my-dab-instance |
Uyarı
Log Analytics'teki özel tablo sütunları sonekleri ekler: _s dizeler için, _d ondalık sayılar için, _t tarih saatler için vb.
Log Analytics'te sorgu günlükleri
Log Analytics çalışma alanınızı Azure portalında açın.
Günlükler'e gidin ve bir KQL sorgusu çalıştırın:
DabLogs_CL | where Identifier_s == "my-dab-instance" | where LogLevel_s in ("Warning", "Error") | where TimeGenerated > ago(1h) | project TimeGenerated, LogLevel_s, Message_s, Component_s | order by TimeGenerated desc
Örnek sorgular
Günlükleri düzeye göre say:
DabLogs_CL
| where TimeGenerated > ago(24h)
| summarize Count=count() by LogLevel_s
Belirli bir bileşendeki hataları bulun:
DabLogs_CL
| where Component_s contains "SqlQueryExecutor"
| where LogLevel_s == "Error"
| project TimeGenerated, Message_s
Performans ve maliyetle ilgili dikkat edilmesi gerekenler
Toplu işlem davranışı
DAB günlükleri toplu olarak oluşturur ve her flush-interval-secondsbirini gönderir:
- 5 saniye (varsayılan): Çoğu senaryo için iyi denge.
- 1-2 saniye: Neredeyse gerçek zamanlı günlükleme (daha fazla API çağrısı, daha yüksek maliyet).
- 10-60 saniye: API çağrıları azaltılmış ancak günlüklerde gecikme var.
Maliyet optimizasyonu
Log Analytics fiyatlandırması şu temellere dayanır:
- Veri alımı: Alınan GB başına.
- Veri saklama: Ücretsiz katmandan sonraki aylık GB başına.
Maliyetleri azaltma:
- Daha fazla günlüğü gruplamak için
flush-interval-secondsdeğerini artırın. - Ayrıntılı günlükleri dışlamak için günlük düzeyi filtrelerini kullanın. Daha fazla bilgi için bkz. Günlük ayrıntı düzeyini özelleştirme.
- Log Analytics çalışma alanınızda uygun veri saklamayı ayarlayın.
Örnek: Sesi azaltmak için filtre kullanma
{
"runtime": {
"telemetry": {
"log-level": {
"Default": "Warning",
"Microsoft": "Error"
},
"azure-log-analytics": {
"enabled": true,
"flush-interval-seconds": 30,
"auth": {
"custom-table-name": "DabLogs_CL",
"dcr-immutable-id": "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"dce-endpoint": "https://my-dce.eastus-1.ingest.monitor.azure.com"
}
}
}
}
}
Bu, yalnızca Uyarı ve Hata günlüklerini gönderir ve birimi önemli ölçüde azaltır.
Veri muhafazası
Log Analytics veri saklama, çalışma alanı başına yapılandırılabilir:
| Katman | Varsayılan saklama | En fazla saklama |
|---|---|---|
| Ücretsiz seviye | 7 gün | 7 gün |
| Pay-as-you-go | 30 gün | 730 gün (2 yıl) |
Saklamayı yapılandırma: Log Analytics çalışma alanı Kullanım ve tahmini maliyetler → Veri Saklama →.
Tavsiye
Uyumluluk gereksinimleri için, uzun süreli saklama için eski günlükleri Azure Depolama'ya arşivleme seçeneğini göz önünde bulundurun.
Sorun giderme
Log Analytics'te görünmeyen günlükler
Belirti: DAB başarıyla başlar ancak Log Analytics çalışma alanınızda günlükler görünmez.
Olası nedenler:
Tamamlanmamış yapılandırma:
Logs won't be sent to Azure Log Analytics because the Custom Table Name is not available in the config file.vecustom-table-name,dcr-immutable-id,dce-endpointgibi hatalar için DAB başlangıç günlüklerini denetleyin. Tüm gerekli kimlik doğrulama özelliklerini doğrulayın.Yönetilen Kimlik atanmadı: ile
az webapp identity show --name my-app --resource-group my-rgYönetilen Kimliğin etkinleştirildiğini doğrulayın.az role assignment list --assignee <principal-id> --scope <dcr-id>ile rol atamalarını denetleyin.Yanlış DCE uç noktası veya DCR Kimliği: DCE uç noktası biçiminin olduğunu
https://<dce-name>.<region>-1.ingest.monitor.azure.comdoğrulayın. DCR sabit kimliğinindcr-ile başladığını doğrulayın.Özel tablo yok: Özel tablolar ile
_CLbitmelidir. Tablo şeması günlük yapısıyla eşleşmelidir.
Hata: Temizleme aralığı pozitif olmalıdır
Neden: flush-interval-seconds0 veya negatif bir değere ayarlanır.
Çözüm: Pozitif bir tamsayıya (minimumflush-interval-seconds) ayarlayın1.
DAB günlükleri "Azure Log Analytics devre dışı bırakıldı" ifadesini gösteriyor
Neden: enabled yapılandırmada var false veya eksik.
Çözüm: Yapılandırmanızda ayarlayın enabled: true .
Log Analytics ile Application Insights karşılaştırması
| Kapasite | Uygulama Öngörüleri | Log Analytics |
|---|---|---|
| Odak | Uygulama performansı izleme (APM) | Merkezi günlük toplama |
| Sorgu dili | KQL | KQL |
| Scope | Tek uygulama | Uygulamalar, VM'ler, kapsayıcılar, Azure kaynakları |
| Kullanım örneği | Performans, özel durumlar, izler | Uyumluluk, idare, kaynaklar arası bağıntı |
| Authentication | Bağlantı dizesi | Yönetilen Kimlik (DCR/DCE aracılığıyla) |
İstek izleme, bağımlılık eşleme ve performans profili oluşturma gibi APM özelliklerine ihtiyacınız olduğunda Application Insights'ı kullanın. Kurumsal uyumluluk gereksinimleri olan birden çok kaynakta merkezi kayıt tutmaya ihtiyacınız olduğunda Log Analytics'i kullanın.