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
- Azure Spring Apps uzantısı, sürüm 1.0.0 veya üzeri olan Azure CLI . Uzantıyı yüklemek için aşağıdaki komutu kullanabilirsiniz:
az extension add --name spring
- Çalışan bir uygulama ile Azure Spring Apps örneği. Daha fazla bilgi için bkz . Hızlı Başlangıç: İlk uygulamanızı Azure Spring Apps'e dağıtma.
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-service
uygulama 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:
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
- Hızlı Başlangıç: Azure Spring Apps uygulamalarını günlükler, ölçümler ve izleme ile izleme
- Tanılama ayarlarıyla günlükleri ve ölçümleri analiz etme
- Azure Spring Apps iş günlüklerini gerçek zamanlı olarak akışla aktarma
- Azure Spring Apps yönetilen bileşen günlüklerini gerçek zamanlı olarak akışla aktarma
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin