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, , keypassword, secret, , sigve signature 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=xxxxxxxxxxxxxxhttps://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

  1. Azure portalında Azure Spring Apps örneğine gidin.

  2. Tanılama ayarları seçeneğini belirleyin ve ardından Tanılama ayarı ekle'yi seçin.

  3. 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
  4. İ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.

  5. 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

  1. Azure portalında Azure Spring Apps örneğine gidin.

  2. Günlük Araması bölmesini açmak için Günlükler'i seçin.

  3. 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
      
  4. Arama sonucunu görüntülemek için Çalıştır'ı seçin.

Log Analytics kullanma

  1. Azure portalının sol bölmesinde Log Analytics'i seçin.

  2. Tanılama ayarlarınızı eklerken seçtiğiniz Log Analytics çalışma alanını seçin.

  3. Günlük Araması bölmesini açmak için Günlükler'i seçin.

  4. 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
    
  5. Arama sonucunu görüntülemek için Çalıştır'ı seçin.

  6. 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

  1. Azure portalında, sol gezinti panelinde veya arama kutusunda Depolama hesaplarını bulun.
  2. Tanılama ayarlarınızı eklerken seçtiğiniz depolama hesabını seçin.
  3. Blob Kapsayıcısı bölmesini açmak için Bloblar'ı seçin.
  4. Uygulama günlüklerini gözden geçirmek için insights-logs-applicationconsole adlı kapsayıcıyı arayın.
  5. 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

  1. Azure portalında, sol gezinti panelinde veya arama kutusunda Event Hubs'ı bulun.

  2. Tanılama ayarlarınızı eklerken seçtiğiniz olay hub'ını arayın ve seçin.

  3. Olay Hub'ı Listesi bölmesini açmak için Event Hubs'ı seçin.

  4. Uygulama günlüklerini gözden geçirmek için insights-logs-applicationconsole adlı bir olay hub'ı arayın.

  5. 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, RequestTimeve 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, exportveya 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:

  1. Azure Spring Apps hizmet örneğinizin Genel Bakış sayfasına gidin ve gezinti bölmesinde Uygulamalar'ı seçin.

  2. Hedef uygulamanızı bulun ve bağlam menüsünü seçin.

  3. Açılır bağlam menüsünde Günlükleri görüntüle'yi seçin.

    Günlükleri görüntüle bağlam menüsü öğesinin vurgulandığı Uygulamalar sayfasını gösteren Azure portalının ekran görüntüsü.

    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.

Sonraki adımlar