Bagikan melalui


Streaming log konsol aplikasi Azure Spring Apps secara real time

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

Artikel ini berlaku untuk: ✔️ Java ✔️ C#

Artikel ini berlaku untuk: ✔️ Basic/Standard ✔️ Enterprise

Artikel ini menjelaskan cara mengaktifkan streaming log di Azure CLI untuk mendapatkan log konsol aplikasi real time untuk pemecahan masalah. Anda juga dapat menggunakan pengaturan diagnostik untuk menganalisis data diagnostik di Azure Spring Apps. Untuk informasi selengkapnya, lihat Menganalisis log dan metrik dengan pengaturan diagnostik. Untuk informasi selengkapnya tentang log streaming, lihat Mengalirkan log pekerjaan Azure Spring Apps secara real time dan Mengalirkan log komponen terkelola Azure Spring Apps secara real time.

Prasyarat

Menggunakan Azure CLI untuk menghasilkan log ekor

Bagian ini menyediakan contoh penggunaan Azure CLI untuk menghasilkan log ekor. Untuk menghindari menentukan grup sumber daya dan nama instans layanan Anda berulang kali, gunakan perintah berikut untuk mengatur nama grup sumber daya default dan nama kluster Anda:

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

Grup sumber daya dan nama layanan dihilangkan dalam contoh berikut.

Menampilkan log ekor untuk aplikasi dengan satu instans

Jika aplikasi bernama auth-service hanya memiliki satu instans, Anda dapat melihat log instans aplikasi dengan perintah berikut:

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

Perintah mengembalikan log yang mirip dengan contoh berikut, di mana auth-service adalah nama aplikasi.

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

...

Menampilkan log ekor untuk aplikasi dengan beberapa instans

Jika terdapat beberapa instans untuk aplikasi bernama auth-service, Anda dapat melihat log instans tersebut menggunakan opsi -i/--instance.

Pertama, jalankan perintah berikut untuk mendapatkan nama instans aplikasi:

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

Perintah menghasilkan hasil yang mirip dengan output berikut:

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

Kemudian, Anda dapat melakukan streaming log instans aplikasi menggunakan -i/--instance opsi , sebagai berikut:

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

Anda juga bisa mendapatkan detail instans aplikasi dari portal Azure. Setelah memilih Aplikasi di panel navigasi kiri layanan Azure Spring Apps Anda, pilih Instans Aplikasi.

Streaming log baru secara berkelanjutan

Secara default, az spring app logs hanya mencetak log yang ada yang di-streaming ke konsol aplikasi kemudian keluar. Jika Anda ingin melakukan streaming log baru, tambahkan argumen, seperti yang -f/--follow diperlihatkan dalam contoh berikut:

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

Saat Anda menggunakan --follow argumen untuk membuntuti log instan, layanan streaming log Azure Spring Apps mengirimkan log heartbeat ke klien setiap menit kecuali aplikasi Anda menulis log terus-menerus. Pesan log heartbeat menggunakan format berikut: 2020-01-15 04:27:13.473: No log from server.

Gunakan perintah berikut untuk memeriksa semua opsi pengelogan yang didukung:

az spring app logs --help

Log terstruktur format JSON

Catatan

Memformat log terstruktur JSON memerlukan ekstensi spring versi 2.4.0 atau yang lebih baru.

Log aplikasi terstruktur ditampilkan dalam format JSON, yang mungkin sulit dibaca. Anda dapat menggunakan --format-json argumen untuk memformat log dalam format JSON ke dalam format yang lebih mudah dibaca. Untuk informasi selengkapnya, lihat Log aplikasi terstruktur untuk Azure Spring Apps.

Contoh berikut menunjukkan cara menggunakan --format-json argumen:

# 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

Argumen --format-json juga menerima format yang dikustomisasi opsional menggunakan sintaks string format. Untuk informasi selengkapnya, lihat Format Sintaks String.

Contoh berikut menunjukkan cara menggunakan sintaks string format:

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

Format default yang digunakan adalah:

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

Melakukan streaming log aplikasi Azure Spring Apps dalam instans injeksi jaringan virtual

Untuk instans Azure Spring Apps yang disebarkan di jaringan virtual kustom, Anda dapat mengakses streaming log secara default dari jaringan privat. Untuk informasi selengkapnya, lihat Menyebarkan Azure Spring Apps dalam jaringan virtual

Azure Spring Apps juga memungkinkan Anda mengakses log aplikasi real time dari jaringan publik menggunakan portal Azure atau Azure CLI.

Catatan

Mengaktifkan titik akhir streaming log di jaringan publik menambahkan IP masuk publik ke jaringan virtual Anda. Pastikan untuk berhati-hati jika ini menjadi perhatian Anda.

Gunakan langkah-langkah berikut untuk mengaktifkan titik akhir streaming log di jaringan publik:

  1. Pilih instans layanan Azure Spring Apps yang disebarkan di jaringan virtual Anda lalu pilih Jaringan di menu navigasi.

  2. Pilih tab injeksi Vnet.

  3. Alihkan status sumber daya Dataplane di jaringan publik untuk mengaktifkan mengaktifkan titik akhir streaming log di jaringan publik. Proses ini memakan waktu beberapa menit.

    Cuplikan layar portal Azure yang memperlihatkan halaman Jaringan dengan tab injeksi Vnet dipilih dan bagian Pemecahan Masalah disorot.

Setelah mengaktifkan titik akhir publik aliran log, Anda dapat mengakses log aplikasi dari jaringan publik sama seperti Anda akan mengakses instans normal.

Mengamankan lalu lintas ke titik akhir publik streaming log

Streaming log menggunakan kunci yang sama dengan titik akhir pengujian yang dijelaskan dalam Menyiapkan lingkungan penahapan di Azure Spring Apps untuk mengautentikasi koneksi ke penyebaran Anda. Akibatnya, hanya pengguna yang memiliki akses baca ke kunci pengujian yang dapat mengakses streaming log.

Untuk memastikan keamanan aplikasi saat Mengekspos titik akhir publik untuk aplikasi tersebut, amankan titik akhir dengan memfilter lalu lintas jaringan ke layanan Anda dengan grup keamanan jaringan. Untuk informasi selengkapnya, lihat Tutorial: Memfilter lalu lintas jaringan dengan grup keamanan jaringan menggunakan portal Azure. Kelompok keamanan jaringan berisi aturan keamanan yang memungkinkan atau menolak lalu lintas jaringan masuk ke, atau, lalu lintas jaringan keluar dari, beberapa jenis sumber daya Azure. Untuk setiap aturan, Anda dapat menentukan sumber dan tujuan, port, dan protokol.

Catatan

Jika Anda tidak dapat mengakses log aplikasi di instans injeksi jaringan virtual dari internet setelah mengaktifkan titik akhir publik aliran log, periksa grup keamanan jaringan Anda untuk melihat apakah Anda mengizinkan lalu lintas masuk tersebut.

Tabel berikut ini memperlihatkan contoh aturan dasar yang kami rekomendasikan. Anda dapat menggunakan perintah seperti nslookup dengan titik <service-name>.private.azuremicroservices.io akhir untuk mendapatkan alamat IP target layanan.

Prioritas Nama Port Protokol Sumber Tujuan Tindakan
100 Nama aturan 80 TCP Internet Alamat IP layanan Izinkan
110 Nama aturan 443 TCP Internet Alamat IP layanan Izinkan

Langkah berikutnya