Aracılığıyla paylaş


Azure Spring Apps uygulama konsolu günlüklerini gerçek zamanlı olarak akışla aktarma

Not

Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.

Bu makale şunlar için geçerlidir: ✔️ Java ✔️ C#

Bu makale şunlar için geçerlidir: ✔️ Temel/Standart ✔️ Kurumsal

Bu makalede, sorun giderme için gerçek zamanlı uygulama konsolu günlüklerini almak için Azure CLI'da günlük akışının nasıl etkinleştirileceği açıklanır. Azure Spring Apps'te tanılama verilerini analiz etmek için tanılama ayarlarını da kullanabilirsiniz. Daha fazla bilgi için bkz . Tanılama ayarlarıyla günlükleri ve ölçümleri analiz etme. Akış günlükleri hakkında daha fazla bilgi için bkz . Azure Spring Apps iş günlüklerini gerçek zamanlı olarak akışla aktarma ve Azure Spring Apps yönetilen bileşen günlüklerini gerçek zamanlı olarak akışla aktarma.

Önkoşullar

Kuyruk günlükleri oluşturmak için Azure CLI'yi kullanma

Bu bölümde kuyruk günlükleri oluşturmak için Azure CLI'yi kullanma örnekleri verilmiştir. Kaynak grubunuzun ve hizmet örneği adınızın tekrar tekrar belirtilmesinden kaçınmak için aşağıdaki komutları kullanarak varsayılan kaynak grubu adınızı ve küme adınızı ayarlayın:

az config set defaults.group=<service-group-name>
az config set defaults.spring=<service-instance-name>

Kaynak grubu ve hizmet adı aşağıdaki örneklerde atlanmıştır.

Tek bir örneği olan bir uygulamanın kuyruk günlüğünü görüntüleme

Adlı auth-service bir uygulamanın yalnızca bir örneği varsa, aşağıdaki komutla uygulama örneğinin günlüğünü görüntüleyebilirsiniz:

az spring app logs --name <application-name>

komutu aşağıdaki örneklere benzer günlükleri döndürür ve burada auth-service uygulama adıdır.

...
2020-01-15 01:54:40.481  INFO [auth-service,,,] 1 --- [main] o.apache.catalina.core.StandardService  : Starting service [Tomcat]
2020-01-15 01:54:40.482  INFO [auth-service,,,] 1 --- [main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.22]
2020-01-15 01:54:40.760  INFO [auth-service,,,] 1 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/uaa]  : Initializing Spring embedded WebApplicationContext
2020-01-15 01:54:40.760  INFO [auth-service,,,] 1 --- [main] o.s.web.context.ContextLoader  : Root WebApplicationContext: initialization completed in 7203 ms

...

Birden çok örneği olan bir uygulamanın kuyruk günlüğünü görüntüleme

adlı auth-serviceuygulama için birden çok örnek varsa, seçeneğini kullanarak -i/--instance örnek günlüğünü görüntüleyebilirsiniz.

İlk olarak, uygulama örneği adlarını almak için aşağıdaki komutu çalıştırın:

az spring app show --name auth-service --query properties.activeDeployment.properties.instances --output table

komutu aşağıdaki çıkışa benzer sonuçlar üretir:

Name                                         Status    DiscoveryStatus
-------------------------------------------  --------  -----------------
auth-service-default-12-75cc4577fc-pw7hb  Running   UP
auth-service-default-12-75cc4577fc-8nt4m  Running   UP
auth-service-default-12-75cc4577fc-n25mh  Running   UP

Ardından, aşağıdaki seçeneği kullanarak bir uygulama örneğinin günlüklerini akışla -i/--instance aktarabilirsiniz:

az spring app logs --name auth-service --instance auth-service-default-12-75cc4577fc-pw7hb

Azure portalından uygulama örneklerinin ayrıntılarını da alabilirsiniz. Azure Spring Apps hizmetinizin sol gezinti bölmesinde Uygulamalar'ı seçtikten sonra Uygulama Örnekleri'ni seçin.

Yeni günlükleri sürekli akışla aktarma

Varsayılan olarak, az spring app logs yalnızca uygulama konsoluna akışı yapılan mevcut günlükleri yazdırır ve sonra çıkar. Yeni günlüklerin akışını yapmak istiyorsanız, aşağıdaki örnekte gösterildiği gibi bağımsız değişkenini ekleyin -f/--follow :

az spring app logs --name auth-service --follow

Anlık günlükleri takip etmek için bağımsız değişkenini --follow kullandığınızda, uygulamanız günlükleri sürekli yazmadığı sürece Azure Spring Apps günlük akışı hizmeti dakikada bir istemciye sinyal günlükleri gönderir. Sinyal günlüğü iletileri şu biçimi kullanır: 2020-01-15 04:27:13.473: No log from server.

Desteklenen tüm günlük seçeneklerini denetlemek için aşağıdaki komutu kullanın:

az spring app logs --help

JSON yapılandırılmış günlüklerini biçimlendirme

Not

JSON yapılandırılmış günlüklerinin biçimlendirılması için spring extension sürüm 2.4.0 veya üzeri gerekir.

Yapılandırılmış uygulama günlükleri, okunması zor olabilecek JSON biçiminde görüntülenir. Günlükleri JSON biçiminde daha okunabilir bir biçimde biçimlendirmek için bağımsız değişkenini --format-json kullanabilirsiniz. Daha fazla bilgi için bkz . Azure Spring Apps için yapılandırılmış uygulama günlüğü.

Aşağıdaki örnekte bağımsız değişkenin nasıl kullanılacağı gösterilmektedir --format-json :

# Raw JSON log
$ az spring app logs --name auth-service
{"timestamp":"2021-05-26T03:35:27.533Z","logger":"com.netflix.discovery.DiscoveryClient","level":"INFO","thread":"main","mdc":{},"message":"Disable delta property : false"}
{"timestamp":"2021-05-26T03:35:27.533Z","logger":"com.netflix.discovery.DiscoveryClient","level":"INFO","thread":"main","mdc":{},"message":"Single vip registry refresh property : null"}

# Formatted JSON log
$ az spring app logs --name auth-service --format-json
2021-05-26T03:35:27.533Z  INFO [           main] com.netflix.discovery.DiscoveryClient   : Disable delta property : false
2021-05-26T03:35:27.533Z  INFO [           main] com.netflix.discovery.DiscoveryClient   : Single vip registry refresh property : null

Bağımsız değişken, --format-json biçim dizesi söz dizimini kullanarak isteğe bağlı bir özelleştirilmiş biçimi de kabul eder. Daha fazla bilgi için bkz . Dize Sözdizimini Biçimlendirme.

Aşağıdaki örnekte, biçim dizesi söz diziminin nasıl kullanılacağı gösterilmektedir:

# Custom format
$ az spring app logs --name auth-service --format-json="{message}{n}"
Disable delta property : false
Single vip registry refresh property : null

Kullanılan varsayılan biçim:

{timestamp} {level:>5} [{thread:>15.15}] {logger{39}:<40.40}: {message}{n}{stackTrace}

Sanal ağ ekleme örneğinde Azure Spring Apps uygulama günlüğünün akışını yapma

Özel bir sanal ağda dağıtılan bir Azure Spring Apps örneği için günlük akışına varsayılan olarak özel bir ağdan erişebilirsiniz. Daha fazla bilgi için bkz . Azure Spring Apps'i sanal ağda dağıtma

Azure Spring Apps, Azure portalını veya Azure CLI'yi kullanarak genel bir ağdan gerçek zamanlı uygulama günlüklerine erişmenizi de sağlar.

Not

Genel ağda günlük akışı uç noktasının etkinleştirilmesi, sanal ağınıza genel bir gelen IP ekler. Bu sizin için bir sorunsa dikkatli olun.

Genel ağda günlük akışı uç noktasını etkinleştirmek için aşağıdaki adımları kullanın:

  1. Sanal ağınızda dağıtılan Azure Spring Apps hizmet örneğini seçin ve ardından gezinti menüsünden Ağ'ı seçin.

  2. Sanal ağ ekleme sekmesini seçin.

  3. Genel ağda günlük akışı uç noktasını etkinleştirmek için genel ağdaki Veri Düzlemi kaynaklarının durumunu değiştirin. Bu işlem birkaç dakika sürer.

    Sanal ağ ekleme sekmesinin seçili ve Sorun Giderme bölümünün vurgulandığı Ağ sayfasını gösteren Azure portalının ekran görüntüsü.

Günlük akışı genel uç noktasını etkinleştirdikten sonra, uygulama günlüğüne normal bir örneğe erişdiğiniz gibi genel bir ağdan erişebilirsiniz.

Günlük akışı genel uç noktasına trafiğin güvenliğini sağlama

Günlük akışı, dağıtımlarınıza yönelik bağlantıların kimliğini doğrulamak için Azure Spring Apps'te hazırlama ortamı ayarlama bölümünde açıklanan test uç noktasıyla aynı anahtarı kullanır. Sonuç olarak, yalnızca test anahtarlarına okuma erişimi olan kullanıcılar günlük akışına erişebilir.

Bir genel uç nokta kullanıma sunduğunuzda uygulamalarınızın güvenliğini sağlamak için, bir ağ güvenlik grubuyla hizmetinize yönelik ağ trafiğini filtreleyerek uç noktanın güvenliğini sağlayın. Daha fazla bilgi için bkz . Öğretici: Azure portalını kullanarak ağ güvenlik grubuyla ağ trafiğini filtreleme. Ağ güvenlik grupları, farklı Azure kaynaklarına gelen ya da bu kaynaklardan dışarı giden ağ trafiğine izin veren veya bu trafiği reddeden güvenlik kuralları içerir. Her kural için kaynak, hedef, bağlantı noktası ve protokol belirtebilirsiniz.

Not

Günlük akışı genel uç noktasını etkinleştirdikten sonra sanal ağ ekleme örneğindeki uygulama günlüklerine İnternet'ten erişemiyorsanız, bu tür gelen trafiğe izin verip vermediğinize bakmak için ağ güvenlik grubunuzu denetleyin.

Aşağıdaki tabloda, önerdiğimiz temel bir kural örneği gösterilmektedir. Bir hizmetin hedef IP adresini almak için uç nokta <service-name>.private.azuremicroservices.io ile gibi nslookup komutları kullanabilirsiniz.

Öncelik Name Bağlantı noktası Protokol Kaynak Hedef Eylem
100 Kural adı 80 TCP İnternet Hizmet IP adresi İzin Ver
110 Kural adı 443 TCP İnternet Hizmet IP adresi İzin Ver

Sonraki adımlar