Azure App Service’te uygulamalar için tanılama günlüğünü etkinleştirme
Bu videoda, uygulamalar için tanılama günlüğünü etkinleştirme işlemi gösterilmektedir.
Videodaki adımlar aşağıdaki bölümlerde de açıklanmıştır.
Genel bakış
Azure, App Service uygulamasında hata ayıklamaya yardımcı olmak için yerleşik tanılama sağlar. Bu makalede tanılama günlüğünü etkinleştirmeyi ve uygulamanıza izleme eklemeyi ve Azure tarafından günlüğe kaydedilen bilgilere erişmeyi öğreneceksiniz.
Bu makalede tanılama günlükleriyle çalışmak için Azure portalı ve Azure CLI kullanılmaktadır. Visual Studio kullanarak tanılama günlükleriyle çalışma hakkında bilgi için bkz . Visual Studio'da Azure sorunlarını giderme.
Not
Bu makaledeki günlüğe kaydetme yönergelerine ek olarak, Azure İzleme ile yeni, tümleşik günlüğe kaydetme özelliği de vardır. Bu özellik hakkında daha fazla bilgi için Bkz. Günlükleri Azure İzleyici'ye gönderme.
Tür | Platform | Konum | Açıklama |
---|---|---|---|
Uygulama günlüğüne kaydetme | Windows, Linux | App Service dosya sistemi ve/veya Azure Depolama blobları | Uygulama kodunuz tarafından oluşturulan iletileri günlüğe kaydeder. İletiler, seçtiğiniz web çerçevesi tarafından veya uygulamanızın kodundan doğrudan dilinizin standart günlük düzeni kullanılarak oluşturulabilir. Her iletiye şu kategorilerden biri atanır: Kritik, Hata, Uyarı, Bilgi, Hata Ayıklama ve İzleme. Uygulama günlüğünü etkinleştirdiğinizde önem düzeyini ayarlayarak günlüğün ne kadar ayrıntılı olmasını istediğinizi seçebilirsiniz. |
Web sunucusu günlüğü tutma | Windows | App Service dosya sistemi veya Azure Depolama blobları | W3C genişletilmiş günlük dosyası biçiminde ham HTTP isteği verileri. Her günlük iletisi HTTP yöntemi, kaynak URI'si, istemci IP'si, istemci bağlantı noktası, kullanıcı aracısı, yanıt kodu gibi verileri içerir. |
Ayrıntılı Hata İletileri | Windows | App Service dosya sistemi | İstemci tarayıcısına gönderilecek .htm hata sayfalarının kopyaları. Güvenlik nedeniyle, ayrıntılı hata sayfaları üretimdeki istemcilere gönderilmemelidir, ancak App Service, HTTP kodu 400 veya üzeri olan bir uygulama hatası oluştuğunda hata sayfasını kaydedebilir. Sayfa, sunucunun neden hata kodunu döndürdüğünü belirlemeye yardımcı olabilecek bilgiler içerebilir. |
Başarısız istek izlemesi | Windows | App Service dosya sistemi | İsteği işlemek için kullanılan IIS bileşenlerinin bir izlemesi ve her bileşende geçen süre de dahil olmak üzere başarısız isteklerle ilgili ayrıntılı izleme bilgileri. Site performansını artırmak veya belirli bir HTTP hatasını yalıtmak istiyorsanız kullanışlıdır. Başarısız olan her istek için xml günlük dosyasını ve günlük dosyasını görüntülemek için XSL stil sayfasını içeren bir klasör oluşturulur. |
Dağıtım günlüğü | Windows, Linux | App Service dosya sistemi | Bir uygulamada içerik yayımladığınız zaman için günlüğe kaydeder. Dağıtım günlüğü otomatik olarak gerçekleşir ve dağıtım günlüğü için yapılandırılabilir ayar yoktur. Dağıtımın neden başarısız olduğunu belirlemenize yardımcı olur. Örneğin, özel bir dağıtım betiği kullanıyorsanız, betiğin neden başarısız olduğunu belirlemek için dağıtım günlüğünü kullanabilirsiniz. |
Günlükler App Service dosya sisteminde depolandığında fiyatlandırma katmanınız için kullanılabilir depolama alanına tabidir (bkz . App Service sınırları).
Not
App Service, uygulamanızın sorunlarını gidermenize yardımcı olmak için ayrılmış, etkileşimli bir tanılama aracı sağlar. Daha fazla bilgi için bkz. Azure Uygulaması Hizmet tanılamalarına genel bakış.
Ayrıca, uygulamanızın Azure İzleyici gibi günlük ve izleme özelliklerini geliştirmek için diğer Azure hizmetlerini kullanabilirsiniz.
Uygulama günlüğünü etkinleştirme (Windows)
Azure portalında Windows uygulamaları için uygulama günlüğünü etkinleştirmek için uygulamanıza gidin ve App Service günlükleri'ni seçin.
Uygulama Günlüğü (Dosya Sistemi) veya Uygulama Günlüğü (Blob) veya her ikisi için Açık'ı seçin.
Dosya Sistemi seçeneği geçici hata ayıklama amaçlıdır ve 12 saat içinde kapanır. Blob seçeneği uzun süreli günlüğe kaydetmeye yöneliktir ve günlüklerin yazılması için bir blob depolama kapsayıcısı gerekir. Blob seçeneği ayrıca günlük iletilerine günlük iletisinin kaynak VM örneğinin kimliği (), iş parçacığı kimliği (Tid
InstanceId
) ve daha ayrıntılı bir zaman damgası (EventTickCount
) gibi ek bilgiler de içerir.
Not
Şu anda blob depolamaya yalnızca .NET uygulama günlükleri yazılabilir. Java, PHP, Node.js, Python uygulama günlükleri yalnızca App Service dosya sisteminde depolanabilir (günlükleri dış depolamaya yazmak için kod değişiklikleri olmadan).
Ayrıca, depolama hesabınızın erişim anahtarlarını yeniden oluşturursanız , güncelleştirilmiş erişim anahtarlarını kullanmak için ilgili günlük yapılandırmasını sıfırlamanız gerekir. Bunu yapmak için:
- Yapılandır sekmesinde ilgili günlük özelliğini Kapalı olarak ayarlayın. Ayarınızı kaydedin.
- Depolama hesabı blob'unun günlüğe kaydedilmesini yeniden etkinleştirin. Ayarınızı kaydedin.
Günlüğe kaydedilecek Düzey'i veya ayrıntı düzeyini seçin. Aşağıdaki tabloda her düzeye dahil edilen günlük kategorileri gösterilmektedir:
Level | Dahil edilen kategoriler |
---|---|
Devre dışı | Hiçbiri |
Hata | Hata, Kritik |
Uyarı | Uyarı, Hata, Kritik |
Bilgi | Bilgi, Uyarı, Hata, Kritik |
Ayrıntılı | İzleme, Hata Ayıklama, Bilgi, Uyarı, Hata, Kritik (tüm kategoriler) |
İşlem tamamlandığında Kaydet'i seçin.
Not
Günlükleri bloblara yazarsanız, uygulamayı silerseniz ancak günlükleri bloblarda tutarsanız bekletme ilkesi artık geçerli olmaz. Daha fazla bilgi için bkz . Kaynak silindikten sonra tahakkuk eden maliyetler.
Uygulama günlüğünü etkinleştirme (Linux/Container)
Azure portalında Linux uygulamaları veya özel kapsayıcılar için uygulama günlüğünü etkinleştirmek için uygulamanıza gidin ve App Service günlükleri'ni seçin.
Uygulama günlüğü'nde Dosya Sistemi'ne tıklayın.
Kota (MB) bölümünde uygulama günlükleri için disk kotasını belirtin. Bekletme Süresi 'nde (Gün)günlüklerin kaç gün tutulacağı ayarlayın.
İşlem tamamlandığında Kaydet'i seçin.
Web sunucusu günlüğünü etkinleştirme
Azure portalında Windows uygulamaları için web sunucusu günlüğünü etkinleştirmek için uygulamanıza gidin ve App Service günlükleri'ni seçin.
Web sunucusu günlüğü için günlükleri blob depolamada depolamak için Depolama'i veya App Service dosya sisteminde günlükleri depolamak için Dosya Sistemi'ni seçin.
Bekletme Süresi 'nde (Gün)günlüklerin kaç gün tutulacağı ayarlayın.
Not
Depolama hesabınızın erişim anahtarlarını yeniden oluşturursanız , güncelleştirilmiş anahtarları kullanmak için ilgili günlük yapılandırmasını sıfırlamanız gerekir. Bunu yapmak için:
- Yapılandır sekmesinde ilgili günlük özelliğini Kapalı olarak ayarlayın. Ayarınızı kaydedin.
- Depolama hesabı blob'unun günlüğe kaydedilmesini yeniden etkinleştirin. Ayarınızı kaydedin.
İşlem tamamlandığında Kaydet'i seçin.
Not
Günlükleri bloblara yazarsanız, uygulamayı silerseniz ancak günlükleri bloblarda tutarsanız bekletme ilkesi artık geçerli olmaz. Daha fazla bilgi için bkz . Kaynak silindikten sonra tahakkuk eden maliyetler.
Ayrıntılı hataları günlüğe kaydetme
Azure portalında Windows uygulamaları için hata sayfasını veya başarısız istek izlemeyi kaydetmek için uygulamanıza gidin ve App Service günlükleri'ni seçin.
Ayrıntılı Hata Günlüğü veya Başarısız İstek İzleme'nin altında Açık'ı ve ardından Kaydet'i seçin.
Her iki günlük türü de App Service dosya sisteminde depolanır. En fazla 50 hata (dosya/klasör) korunur. HTML dosyası sayısı 50'yi aştığında, en eski hata dosyaları otomatik olarak silinir.
Başarısız İstek İzleme özelliği varsayılan olarak 400 ile 600 arasında HTTP durum kodlarıyla başarısız olan isteklerin günlüğünü yakalar. Özel kurallar belirtmek için web.config dosyasındaki bölümü geçersiz kılabilirsiniz<traceFailedRequests>
.
Koda günlük iletileri ekleme
Uygulama kodunuzda, uygulama günlüklerine günlük iletileri göndermek için her zamanki günlük olanaklarını kullanırsınız. Örneğin:
ASP.NET uygulamalar, bilgileri uygulama tanılama günlüğüne kaydetmek için System.Diagnostics.Trace sınıfını kullanabilir. Örneğin:
System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
varsayılan olarak, ASP.NET Core Microsoft.Extensions.Logging.AzureAppServices günlük sağlayıcısını kullanır. Daha fazla bilgi için bkz . Azure'da ASP.NET Çekirdek günlüğü. Web İşleri SDK'sı günlüğü hakkında bilgi için bkz . Azure Webjobs SDK'sını kullanmaya başlama
Python uygulamaları, uygulama tanılama günlüğüne günlük göndermek için OpenCensus paketini kullanabilir.
Akış günlükleri
Günlükleri gerçek zamanlı olarak akışla aktarmadan önce, istediğiniz günlük türünü etkinleştirin. Konsol çıkışına yazılan veya /home/LogFiles dizininde (D:\home\LogFiles ) depolanan .txt, .log veya .htm biten dosyalar App Service tarafından akışla aktarılır.
Not
Günlük dosyasına bazı günlük arabelleği türleri yazılır ve bu da akışta sıra dışı olaylara neden olabilir. Örneğin, bir kullanıcı bir sayfayı ziyaret ettiğinde gerçekleşen bir uygulama günlüğü girdisi, sayfa isteğine karşılık gelen HTTP günlüğü girdisi öncesinde akışta görüntülenebilir.
Azure portalında
Azure portalında günlük akışı yapmak için uygulamanıza gidin ve Günlük akışı'nı seçin.
Cloud Shell'de
Cloud Shell'de canlı günlük akışı yapmak için aşağıdaki komutu kullanın:
Önemli
Bu komut, Linux uygulama hizmeti planında barındırılan web uygulamalarıyla çalışmayabilir.
az webapp log tail --name appname --resource-group myResourceGroup
HTTP gibi belirli günlük türlerini filtrelemek için --Provider parametresini kullanın. Örneğin:
az webapp log tail --name appname --resource-group myResourceGroup --provider http
Yerel terminalde
Yerel konsolda günlük akışı yapmak için Azure CLI'yı yükleyin ve hesabınızda oturum açın. Oturum açtıktan sonra Cloud Shell yönergelerini izleyin
Günlük dosyalarına erişme
Günlük türü için Azure Depolama blobları seçeneğini yapılandırıyorsanız Azure Depolama ile çalışan bir istemci aracına ihtiyacınız vardır. Daha fazla bilgi için bkz. Azure Depolama İstemci Araçları.
App Service dosya sisteminde depolanan günlükler için en kolay yol şu konumdaki tarayıcıda ZIP dosyasını indirmektir:
- Linux/özel kapsayıcılar:
https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
- Windows uygulamaları:
https://<app-name>.scm.azurewebsites.net/api/dump
Linux/özel kapsayıcılar için ZIP dosyası hem docker konağı hem de docker kapsayıcısı için konsol çıkış günlüklerini içerir. Ölçeği genişletilmiş bir uygulama için ZIP dosyası her örnek için bir günlük kümesi içerir. App Service dosya sisteminde, bu günlük dosyaları /home/LogFiles dizininin içeriğidir.
Windows uygulamaları için, ZIP dosyası App Service dosya sistemindeki D:\Home\LogFiles dizininin içeriğini içerir. Aşağıdaki yapıya sahiptir:
Günlükleri türü | Dizin | Açıklama |
---|---|---|
Uygulama günlükleri | /LogFiles/Application/ | Bir veya daha fazla metin dosyası içerir. Günlük iletilerinin biçimi, kullandığınız günlük sağlayıcısına bağlıdır. |
Başarısız İstek İzlemeleri | /LogFiles/W3SVC#########/ | XML dosyalarını ve bir XSL dosyasını içerir. Biçimlendirilmiş XML dosyalarını tarayıcıda görüntüleyebilirsiniz. |
Ayrıntılı Hata Günlükleri | /LogFiles/DetailedErrors/ | HTM hata dosyalarını içerir. HTM dosyalarını tarayıcıda görüntüleyebilirsiniz. Başarısız istek izlemelerini görüntülemenin bir diğer yolu da portaldaki uygulama sayfanıza gitmektir. Sol menüden Sorunları tanıla ve çöz'ü seçin, Başarısız İstek İzleme Günlükleri'ni arayın, ardından istediğiniz izlemeye göz atmak ve görüntülemek için simgeye tıklayın. |
Web Sunucusu Günlükleri | /LogFiles/http/RawLogs/ | W3C genişletilmiş günlük dosyası biçimi kullanılarak biçimlendirilmiş metin dosyalarını içerir. Bu bilgiler bir metin düzenleyicisi veya Günlük Ayrıştırıcısı gibi bir yardımcı program kullanılarak okunabilir. App Service , s-ip veya cs-version alanlarını desteklemezs-computername . |
Dağıtım günlükleri | /LogFiles/Git/ ve /deployments/ | hem iç dağıtım işlemleri tarafından oluşturulan günlükleri hem de Git dağıtımları için günlükleri içerir. |
Günlükleri Azure İzleyici'ye gönderme
Yeni Azure İzleyici tümleştirmesiyle, Depolama Hesaplarına, Event Hubs'a ve Log Analytics'e günlük göndermek için Tanılama Ayarlar oluşturabilirsiniz.
Desteklenen günlük türleri
Aşağıdaki tabloda desteklenen günlük türleri ve açıklamaları gösterilmektedir:
Günlük Adı | Günlükleri türü | Windows | Windows Kapsayıcısı | Linux | Linux Kapsayıcısı | Açıklama |
---|---|---|---|---|---|---|
App Service Konsol Günlükleri | AppServiceConsoleLogs | Java SE & Tomcat | Yes | Evet | Yes | Standart çıkış ve standart hata 3 |
HTTP günlükleri | AppServiceHTTPLogs | Yes | Evet | Evet | Yes | Web sunucusu günlükleri |
platform günlüklerini App Service Ortamı | AppServiceEnvironmentPlatformLogs | Yes | YOK | Yes | Yes | App Service Ortamı: ölçeklendirme, yapılandırma değişiklikleri ve durum günlükleri |
Denetim Günlüklerine Erişme | AppServiceAuditLogs | Yes | Evet | Evet | Yes | FTP ve Kudu aracılığıyla oturum açma etkinliği |
Site İçeriği Değişiklik Denetim Günlükleri | AppServiceFileAuditLogs | Yes | Yes | TBA | TBA | Site içeriğinde yapılan dosya değişiklikleri; yalnızca Premium katman ve üzeri için kullanılabilir |
App Service Uygulama Günlükleri | AppServiceAppLogs | ASP.NET, .NET Core ve Tomcat 1 | ASP.NET & Tomcat 1 | .NET Core, Java, SE ve Tomcat Blessed Images 2 | Java SE & Tomcat Kutsanmış Resimler 2 | Uygulama günlükleri 3 |
IPGüvenlik Denetim günlükleri | AppServiceIPSecAuditLogs | Yes | Evet | Evet | Yes | IP Kurallarından gelen istekler |
App Service Platform günlükleri | AppServicePlatformLogs | TBA | Yes | Evet | Yes | Kapsayıcı işlem günlükleri |
Virüsten Koruma Denetim Günlüklerini Bildirme | AppServiceAntivirusScanAuditLogs 4 | Yes | Evet | Evet | Yes | Bulut için Microsoft Defender kullanarak virüsten koruma tarama günlükleri; yalnızca Premium katman için kullanılabilir |
1 Tomcat uygulamaları için uygulama ayarlarına ekleyin TOMCAT_USE_STARTUP_BAT
ve veya 0
olarak false
ayarlayın. En son Tomcat sürümünde olmanız ve java.util.logging'u kullanmanız gerekir.
2 Java SE uygulamaları için uygulama ayarlarına ekleyin WEBSITE_AZMON_PREVIEW_ENABLED
ve veya 1
olarak true
ayarlayın.
3 Geçerli günlük sınırı dakikada 100 günlük olarak ayarlanır.
4 AppServiceAntivirusScanAuditLogs günlük türü şu anda Önizleme aşamasındadır
Ağ konusunda dikkat edilmesi gerekenler
Tanılama Ayarlar kısıtlamaları için hedef sınırlarıyla ilgili resmi Tanılama Ayarlar belgelerine bakın.