Tanılama ayarlarıyla günlükleri ve ölçümleri analiz etme
Not
Temel, Standart ve Kurumsal planları, 3 yıllık kullanımdan kaldırma süresiyle Mart 2025 ortasından itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps kullanımdan kaldırma duyurusu.
Standart tüketim ve ayrılmış plan, altı ay sonra tamamen kapatılarak 30 Eylül 2024'den itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps Standart tüketimini ve ayrılmış planı Azure Container Apps'e geçirme.
Bu makale şunlar için geçerlidir: ✔️ Java ✔️ C#
Bu makale şunlar için geçerlidir: ✔️ Temel/Standart ✔️ Kurumsal
Bu makalede, Azure Spring Apps'te tanılama verilerini analiz etme adımları gösterilmektedir.
Azure Spring Apps'in tanılama işlevini kullanarak günlükleri ve ölçümleri aşağıdaki hizmetlerden herhangi biriyle analiz edebilirsiniz:
- Azure Log Analytics'i kullanın. Günlükler Log Analytics'e aktarılırken gecikme yaşanıyor.
- Denetim veya el ile denetim için günlükleri bir depolama hesabına kaydedin. Bekletme süresini (gün olarak) belirtebilirsiniz.
- Üçüncü taraf hizmet veya özel analiz çözümü tarafından veri alımı için günlükleri olay hub'ınıza akışla aktarabilirsiniz.
İzlemek istediğiniz günlük kategorisini ve ölçüm kategorisini seçin.
İpucu
Yalnızca günlüklerinizin akışını yapmak istiyorsanız az spring app logs Azure CLI komutunu kullanabilirsiniz.
Günlükler
Günlük | Açıklama |
---|---|
ApplicationConsole | Tüm müşteri uygulamalarının konsol günlüğü. |
SystemLogs | Kullanılabilir LogType değerler şunlardır ConfigServer : (Yalnızca Temel/Standart), ServiceRegistry (tüm planlar), ApiPortal (Yalnızca Kurumsal plan), ApplicationConfigurationService (Yalnızca Kurumsal plan), SpringCloudGateway (Yalnızca Kurumsal plan) ve SpringCloudGatewayOperator (Yalnızca Kurumsal plan) |
Giriş Günlükleri | Tüm müşterinin uygulamalarının giriş günlükleri , yalnızca erişim günlükleri. |
BuildLogs | Her derleme aşaması için tüm müşterinin uygulamalarının derleme günlükleri . |
Not
Uygulamanızı olası kimlik bilgisi sızıntısına karşı korumak için, kimlik bilgilerine veya diğer hassas bilgilere sahip tüm günlük içeriği ile ***
maskelenir. Örneğin, aşağıdaki desenlere sahip tüm günlük içerikleri hassas bilgiler olarak işlenir ve buna karşılık gelen değerler maskelenir:
dbpass
, ,key
password
,secret
, ,sig
vesignature
ardından:
veya=
. Bu desenler genellikle URL parametrelerinde ve yük dökümlerinde görünür. Örneğin,https://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=xxxxxxxxxxxxxx
https://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=***
- JWT belirteci benzeri kodlanmış dizeler biçiminde:
eyJxxxxxx.eyJxxxxxx
Günlüklerinizde maskelenmiş değerler bulursanız, kimlik bilgisi sızıntısını ortadan kaldırmak için uygulama kodunuzu güncelleştirdiğinizden emin olun.
Ölçümler
Ölçümlerin tam listesi için Azure Spring Apps için Ölçümler'in Kullanıcı ölçümleri seçenekleri bölümüne bakın.
Başlamak için bu hizmetlerden birinin verileri almasını etkinleştirin. Log Analytics'i yapılandırma hakkında bilgi edinmek için bkz . Azure İzleyici'de Log Analytics'i kullanmaya başlama.
Tanılama ayarlarını yapılandırma
Azure portalında Azure Spring Apps örneğine gidin.
Tanılama ayarları seçeneğini belirleyin ve ardından Tanılama ayarı ekle'yi seçin.
Ayar için bir ad girin ve günlükleri nereye göndermek istediğinizi seçin. Aşağıdaki seçeneklerin herhangi bir bileşimini seçebilirsiniz:
- Depolama hesabında arşivle
- Olay hub’ına akış yapma
- Log Analytics’e gönderme
- İş ortağı çözümüne gönder
İzlemek istediğiniz günlük kategorisini ve ölçüm kategorisini seçin ve bekletme süresini (gün olarak) belirtin. Bekletme süresi yalnızca depolama hesabına uygulanır.
Kaydet'i seçin.
Not
Günlüklerin veya ölçümlerin ne zaman yayılacağı ve bunların depolama hesabınızda, olay hub'ında veya Log Analytics'te görünmesi arasında 15 dakikaya kadar bir boşluk olabilir. Azure Spring Apps örneği silinir veya taşınırsa işlem tanılama ayarları kaynaklarına art arda gelmez. Tanılama ayarları kaynaklarının, üst öğesi olan Azure Spring Apps örneğine karşı işlemden önce el ile silinmesi gerekir. Aksi takdirde, yeni bir Azure Spring Apps örneği silinmiş olanla aynı kaynak kimliğiyle sağlanırsa veya Azure Spring Apps örneği geri taşınırsa, önceki tanılama ayarları kaynakları bunu genişletmeye devam eder.
Günlükleri ve ölçümleri görüntüleme
Aşağıdaki başlıklar altında açıklandığı gibi günlükleri ve ölçümleri görüntülemek için çeşitli yöntemler vardır.
Günlükler bölmesini kullanma
Azure portalında Azure Spring Apps örneğine gidin.
Günlük Araması bölmesini açmak için Günlükler'i seçin.
Tablolar arama kutusunda aşağıdaki sorgulardan birini kullanın:
Günlükleri görüntülemek için aşağıdaki örnek gibi bir sorgu girin:
AppPlatformLogsforSpring | limit 50
Ölçümleri görüntülemek için aşağıdaki örnek gibi bir sorgu girin:
AzureMetrics | limit 50
Arama sonucunu görüntülemek için Çalıştır'ı seçin.
Log Analytics kullanma
Azure portalının sol bölmesinde Log Analytics'i seçin.
Tanılama ayarlarınızı eklerken seçtiğiniz Log Analytics çalışma alanını seçin.
Günlük Araması bölmesini açmak için Günlükler'i seçin.
Tablolar arama kutusunda aşağıdaki sorgulardan birini kullanın:
Günlükleri görüntülemek için aşağıdaki örnek gibi bir sorgu girin:
AppPlatformLogsforSpring | limit 50
Ölçümleri görüntülemek için aşağıdaki örnek gibi bir sorgu girin:
AzureMetrics | limit 50
Arama sonucunu görüntülemek için Çalıştır'ı seçin.
Aşağıdaki örnekte gösterildiği gibi bir filtre koşulu ayarlayarak belirli bir uygulamanın veya örneğin günlüklerinde arama yapabilirsiniz:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Not
==
büyük/küçük harfe duyarlıdır, ancak=~
değildir.
Log Analytics'te kullanılan sorgu dili hakkında daha fazla bilgi edinmek için bkz . Azure İzleyici günlük sorguları. Merkezi bir istemciden tüm Log Analytics günlüklerinizi sorgulamak için Bkz. Azure Veri Gezgini.
Depolama hesabınızı kullanma
- Azure portalında, sol gezinti panelinde veya arama kutusunda Depolama hesaplarını bulun.
- Tanılama ayarlarınızı eklerken seçtiğiniz depolama hesabını seçin.
- Blob Kapsayıcısı bölmesini açmak için Bloblar'ı seçin.
- Uygulama günlüklerini gözden geçirmek için insights-logs-applicationconsole adlı kapsayıcıyı arayın.
- Uygulama ölçümlerini gözden geçirmek için insights-metrics-pt1m adlı kapsayıcıyı arayın.
Depolama hesabına tanılama bilgileri gönderme hakkında daha fazla bilgi edinmek için bkz . Azure Depolama'da tanılama verilerini depolama ve görüntüleme.
Olay hub'ınızı kullanma
Azure portalında, sol gezinti panelinde veya arama kutusunda Event Hubs'ı bulun.
Tanılama ayarlarınızı eklerken seçtiğiniz olay hub'ını arayın ve seçin.
Olay Hub'ı Listesi bölmesini açmak için Event Hubs'ı seçin.
Uygulama günlüklerini gözden geçirmek için insights-logs-applicationconsole adlı bir olay hub'ı arayın.
Uygulama ölçümlerini gözden geçirmek için insights-metrics-pt1m adlı bir olay hub'ı arayın.
Tanılama bilgilerini bir olay hub'ına gönderme hakkında daha fazla bilgi edinmek için bkz. Event Hubs kullanarak sık erişimli yolda veri akışı Azure Tanılama.
Günlükleri analiz etme
Azure Log Analytics bir Kusto altyapısıyla çalıştığından, günlüklerinizi analiz için sorgulayabilirsiniz. Kusto kullanarak günlükleri sorgulamaya hızlı bir giriş için Log Analytics öğreticisini gözden geçirin.
Uygulama günlükleri, uygulamanızın durumu, performansı ve daha fazlası hakkında kritik bilgiler ve ayrıntılı günlükler sağlar. Sonraki bölümlerde, uygulamanızın geçerli ve geçmiş durumlarını anlamanıza yardımcı olacak bazı basit sorgular yer alır.
Azure Spring Apps'ten uygulama günlüklerini gösterme
Azure Spring Apps'ten uygulama günlüklerinin listesini gözden geçirmek için, önce gösterilen en son günlüklerle zamana göre sıralanmış olarak aşağıdaki sorguyu çalıştırın:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc
Hatalar veya özel durumlar içeren günlük girdilerini göster
Hata veya özel durumdan bahseden sıralanmamış günlük girdilerini gözden geçirmek için aşağıdaki sorguyu çalıştırın:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"
Hataları bulmak için bu sorguyu kullanın veya belirli hata kodlarını veya özel durumları bulmak için sorgu terimlerini değiştirin.
Uygulamanız tarafından son bir saat içinde bildirilen hata ve özel durum sayısını gösterme
Uygulamanız tarafından son saatte günlüğe kaydedilen hata ve özel durum sayısını görüntüleyen bir pasta grafik oluşturmak için aşağıdaki sorguyu çalıştırın:
AppPlatformLogsforSpring
| where TimeGenerated > ago(1h)
| where Log contains "error" or Log contains "exception"
| summarize count_per_app = count() by AppName
| sort by count_per_app desc
| render piechart
Belirli bir konağı içeren giriş günlüğü girdilerini gösterme
Belirli bir konak tarafından oluşturulan günlük girdilerini gözden geçirmek için aşağıdaki sorguyu çalıştırın:
AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and Host == "ingress-asc.test.azuremicroservices.io"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Bu sorguyu, bu konağın giriş günlüklerinin yanıtını Status
, RequestTime
ve diğer özelliklerini bulmak için kullanın.
Belirli bir requestId için giriş günlüğü girdilerini gösterme
Belirli requestId
bir değer <request_ID> günlük girdilerini gözden geçirmek için aşağıdaki sorguyu çalıştırın:
AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Belirli bir uygulama için derleme günlüğü girdilerini gösterme
Derleme işlemi sırasında belirli bir uygulamanın günlük girdilerini gözden geçirmek için aşağıdaki sorguyu çalıştırın:
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated
Belirli bir derleme aşamasında belirli bir uygulama için derleme günlüğü girdilerini gösterme
Belirli bir derleme aşamasındaki belirli bir uygulamanın günlük girdilerini gözden geçirmek için aşağıdaki sorguyu çalıştırın. Yer tutucuyu <app-name>
uygulama adınız ile değiştirin. Yer tutucuyu <build-stage>
, derleme işleminin aşamalarını temsil eden aşağıdaki değerlerden biriyle değiştirin: prepare
, detect
, restore
, analyze
, build
, export
veya completion
.
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated
Kurumsal planda VMware Spring Cloud Gateway günlüklerini gösterme
Enterprise planında VMware Spring Cloud Gateway günlüklerinin günlük girdilerini gözden geçirmek için aşağıdaki sorguyu çalıştırın:
AppPlatformSystemLogs
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Spring Cloud Gateway Operatörü adlı başka bir bileşen, Spring Cloud Gateway'in ve yolların yaşam döngüsünü denetler. Rotanın etkin olmamasıyla ilgili herhangi bir sorunla karşılaşırsanız, bu bileşenin günlüklerini denetleyin. Enterprise planında VMware Spring Cloud Gateway Operatörünün günlük girdilerini gözden geçirmek için aşağıdaki sorguyu çalıştırın:
AppPlatformSystemLogs
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Kurumsal planda Tanzu günlükleri için Uygulama Yapılandırma Hizmeti'ni gösterme
Kurumsal plandaki Tanzu için Uygulama Yapılandırma Hizmeti günlük girişlerini gözden geçirmek için aşağıdaki sorguyu çalıştırın:
AppPlatformSystemLogs
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Kurumsal planda Tanzu Service Registry günlüklerini gösterme
Kurumsal plandaki Tanzu Service Registry günlüklerinin günlük girdilerini gözden geçirmek için aşağıdaki sorguyu çalıştırın:
AppPlatformSystemLogs
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Enterprise planında VMware Tanzu günlükleri için API portalını gösterme
Enterprise planında VMware Tanzu günlükleri için API portalı günlük girişlerini gözden geçirmek için aşağıdaki sorguyu çalıştırın:
AppPlatformSystemLogs
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Uygulama günlüklerini sorgulama hakkında daha fazla bilgi edinin
Azure İzleyici, Log Analytics kullanarak uygulama günlüklerini sorgulamak için kapsamlı destek sağlar. Bu hizmet hakkında daha fazla bilgi edinmek için bkz . Azure İzleyici'de günlük sorgularını kullanmaya başlama. Uygulama günlüklerinizi analiz etmek için sorgu oluşturma hakkında daha fazla bilgi için bkz . Azure İzleyici'de günlük sorgularına genel bakış.
Azure portalında uygun giriş noktaları
Önceden tanımlanmış sorgularla Log Analytics bölmesine gitmek için aşağıdaki adımları kullanın:
Azure Spring Apps hizmet örneğinizin Genel Bakış sayfasına gidin ve gezinti bölmesinde Uygulamalar'ı seçin.
Hedef uygulamanızı bulun ve bağlam menüsünü seçin.
Açılır bağlam menüsünde Günlükleri görüntüle'yi seçin.
Bu eylem, önceden tanımlanmış sorgular içeren Log Analytics bölmesine gider.
Günlükleri görüntülemek için başka giriş noktaları da vardır. Derleme Hizmeti ve Hizmet Kayıt Defteri gibi yönetilen bileşenler için Günlükleri görüntüle düğmesini de bulabilirsiniz.
Sık sorulan sorular (SSS)
Çok satırlı Java yığını izlemelerini tek bir satıra dönüştürmek Nasıl yaparım??
Çok satırlı yığın izlemelerinizi tek bir satıra dönüştürmek için geçici bir çözüm vardır. Java günlük çıkışını değiştirerek yeni satır karakterlerini belirteçle değiştirerek yığın izleme iletilerini yeniden biçimlendirebilirsiniz. Java Logback kitaplığı kullanıyorsanız, aşağıdaki gibi ekleyerek %replace(%ex){'[\r\n]+', '\\n'}%nopex
yığın izleme iletilerini yeniden biçimlendirebilirsiniz:
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
level: %level, message: "%logger{36}: %msg", exceptions: "%replace(%ex){'[\r\n]+', '\\n'}%nopex"%n
</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
Ardından, aşağıdaki örnekte gösterildiği gibi belirteci Log Analytics'te yeni satır karakterleriyle değiştirebilirsiniz:
AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')
Diğer Java günlük kitaplıkları için aynı stratejiyi kullanabilirsiniz.