Serverless App Engine (SAE) memungkinkan Anda mengumpulkan output standar (stdout) dari instans aplikasi dan log dari direktori yang ditentukan ke ApsaraMQ for Kafka. Data dari ApsaraMQ for Kafka dapat dimigrasikan ke database lain, seperti Elasticsearch. Topik ini menjelaskan skenario, prosedur, dan format untuk mengumpulkan log ke ApsaraMQ for Kafka di Konsol SAE.
Sebelum Anda mulai
Untuk SAE:
Pastikan setiap instans aplikasi menyediakan setidaknya 0,25 Core CPU dan 250 MB sumber daya yang tersedia.
Untuk Kafka:
ApsaraMQ for Kafka telah diaktifkan dan sebuah topik telah dibuat. SAE mendukung instans ApsaraMQ for Kafka versi 2.X atau lebih baru.
Jika instans ApsaraMQ for Kafka Anda dibuat dalam jaringan pribadi virtual (VPC) dan tidak dapat mengakses Internet, pastikan berada di VPC yang sama dengan instans SAE.
Daftar putih alamat IP dari instans ApsaraMQ for Kafka telah dikonfigurasi:
Jika instans ApsaraMQ for Kafka dan instans SAE berada di VPC yang sama tetapi terkait dengan vSwitch yang berbeda, tambahkan blok CIDR vSwitch dari instans SAE ke daftar putih alamat IP dari instans ApsaraMQ for Kafka.
Untuk mengaktifkan semua akses dalam VPC yang sama dari instans Kafka, tambahkan 0.0.0.0/0 ke daftar putih.
Latar Belakang
Mengumpulkan log dari aplikasi mikro layanan ke ApsaraMQ for Kafka meningkatkan fitur pengumpulan log dari Layanan Log Sederhana. Fitur ini berlaku untuk skenario di mana Anda tidak dapat mengumpulkan log ke proyek Layanan Log atau Pengguna RAM tidak dapat melihat log di Layanan Log.
Lihat Batasan untuk detail lebih lanjut tentang batasan penggunaan ApsaraMQ for Kafka.
Lihat Ikhtisar Penagihan untuk detail penagihan ApsaraMQ for Kafka.
Konfigurasikan pengumpulan log file
Konfigurasikan pengumpulan log saat membuat aplikasi
Masuk ke Konsol SAE. Di panel navigasi sebelah kiri, pilih . Pada halaman yang muncul, pilih wilayah di bilah navigasi atas dan namespace dari daftar drop-down Namespace, lalu klik Create Application.
Di bagian Basic Information, konfigurasikan informasi aplikasi dan klik Next: Advanced Settings.
Buka bagian Log Settings, aktifkan Activate Kafka, lalu lihat tabel berikut untuk konfigurasi.
Parameter
Deskripsi
Kafka Instance
Pilih instans tujuan.
Collection Log Type
Pilih tipe log. Nilai valid:
File Logs (Log Path In Container): Beberapa aturan koleksi dapat dikonfigurasi.
Container Standard Output Logs: Hanya satu aturan koleksi yang dapat dikonfigurasi. Opsi ini tersedia di daftar drop-down Tipe Log hanya jika vSwitch Anda berada di salah satu zona yang direkomendasikan. Untuk informasi lebih lanjut, lihat Ubah grup keamanan dan vSwitch aplikasi
Log Source
Hanya berlaku untuk Log File. Masukkan direktori tempat file log disimpan. Direktori tersebut harus mencakup nama file log. Contoh: /tmp0/cjsc.log. Ekspresi reguler didukung. Jika direktori berisi banyak file log dengan format yang sama, Anda dapat menentukan sumber log dalam format /xxx/xxx/xxx/*.log.
PentingJangan simpan file penting lainnya di direktori Log Source, untuk menghindari file di direktori tersebut tertimpa.
Kafka Topic Name
Pilih topik ApsaraMQ for Kafka yang ada.
Klik Create Application.
Verifikasi.
Setelah Anda menerapkan aplikasi, SAE mengumpulkan dan mengirimkan log ke direktori yang ditentukan berdasarkan aturan pengumpulan log yang telah dikonfigurasi.
Di panel navigasi sebelah kiri halaman detail aplikasi, pilih . Pada halaman Persistent Logs, klik tab Log collection to Kafka untuk melihat log yang dikumpulkan. Jika log ada, aturan pengumpulan log berlaku.
Konfigurasikan pengumpulan log saat menerapkan aplikasi
Setelah Anda menerapkan ulang aplikasi, aplikasi akan di-restart. Untuk mencegah kesalahan tak terduga seperti gangguan bisnis, kami sarankan Anda menerapkan aplikasi selama jam-jam sepi.
Prosedur yang dapat dilakukan untuk memperbarui aplikasi bervariasi berdasarkan jumlah instans dalam aplikasi. Bagian ini memberikan contoh cara mengonfigurasi fitur yang diperlukan untuk aplikasi di mana jumlah instans lebih besar dari atau sama dengan 1. Untuk informasi tentang cara memperbarui aplikasi di mana jumlah instans adalah 0, lihat Perbarui aplikasi.
Masuk ke Konsol SAE. Di panel navigasi sebelah kiri, pilih . Pada halaman yang muncul, pilih wilayah di bilah navigasi atas dan namespace dari daftar drop-down Namespace, lalu klik nama aplikasi yang diinginkan.
Di halaman Basic Information aplikasi, klik Deploy Application.
Temukan dan buka bagian Log Settings, lalu aktifkan Activate Kafka.
Parameter
Deskripsi
Kafka Instance
Pilih instans tujuan.
Collection Log Type
Pilih tipe log. Nilai valid:
File Logs (Log Path In Container): Beberapa aturan koleksi dapat dikonfigurasi.
Container Standard Output Logs: Hanya satu aturan koleksi yang dapat dikonfigurasi. Opsi ini tersedia di daftar drop-down Tipe Log hanya jika vSwitch Anda berada di salah satu zona yang direkomendasikan. Untuk informasi lebih lanjut, lihat Ubah grup keamanan dan vSwitch aplikasi
Log Source
Hanya berlaku untuk Log File. Masukkan direktori tempat file log disimpan. Direktori tersebut harus mencakup nama file log. Contoh: /tmp0/cjsc.log. Ekspresi reguler didukung. Jika direktori berisi banyak file log dengan format yang sama, Anda dapat menentukan sumber log dalam format /xxx/xxx/xxx/*.log.
PentingJangan simpan file penting lainnya di direktori Log Source, untuk menghindari file di direktori tersebut tertimpa.
Kafka Topic Name
Pilih topik ApsaraMQ for Kafka yang ada.
Setelah mengonfigurasi pengaturan, klik OK.
PentingAnda tidak dapat mengumpulkan file log ke topik ApsaraMQ for Kafka yang berbeda secara bersamaan. Jika Anda menerapkan aplikasi dalam mode rilis bertahap atau mode rilis canary dan mempertahankan sumber log yang telah dikonfigurasi tetapi mengubah topik untuk pengumpulan log, log Anda masih akan dikumpulkan ke topik asli sampai semua konfigurasi aplikasi Anda diterapkan.
Verifikasi.
Setelah Anda menerapkan aplikasi, SAE mengumpulkan dan mengirimkan log ke direktori yang ditentukan berdasarkan aturan pengumpulan log yang telah dikonfigurasi.
Di panel navigasi sebelah kiri halaman detail aplikasi, pilih . Pada halaman Persistent Logs, klik tab Log collection to Kafka untuk melihat log yang dikumpulkan. Jika log ada, aturan pengumpulan log berlaku.
Format
Setelah Anda mengaktifkan Activate Kafka, log yang dikumpulkan berada dalam format berikut:
{
"file":"/home/admin/apache-tomcat-8.5.42/logs/localhost.2022-03-01.log",
"host":"test-kafka-9527eec8-b2c1-4f03-9178-5dac0fe16d07-*****",
"message":"01-Mar-2022 15:09:36.016 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath",
"topic":"test2"
}Referensi parameter:
filemenunjukkan jalur file log yang dikumpulkan.hostmenunjukkan nama instans tempat Anda mengumpulkan log.messagemenunjukkan isi dari log yang dikumpulkan.topicmenunjukkan topik ApsaraMQ for Kafka ke mana log yang dikumpulkan dikirim.
Kumpulkan log multi-baris
Dalam aplikasi Java, kesalahan dilaporkan jika log digabungkan secara otomatis menjadi satu baris. Contoh berikut menunjukkan log pengecualian Java:
java.lang.RuntimeException: testLog at cn.niutong.controller.TestController.heathc(TestController.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at ...Jika pemisah baris
\nterdeteksi, data log ditulis ulang ke baris baru. Kami sarankan Anda membungkus log ke dalam string JSON di program Anda dan mengekspor string sebagai satu baris.
Jika Anda memiliki persyaratan tambahan, seperti menggabungkan beberapa baris log, bergabunglah dengan grup DingTalk 32874633 untuk dukungan teknis.
Tanya Jawab Umum
Apakah karakter wildcard didukung untuk Pengumpulan Log ke Kafka?
Ya, Anda dapat menggunakan asterisk (*) sebagai karakter wildcard untuk mencocokkan semua file dalam folder tertentu. Contoh:
/tmp/logs/*.log.Mengapa log gagal dikumpulkan?
Log mungkin gagal dikumpulkan karena pengecualian jaringan. Untuk memecahkan masalah ini, lakukan langkah-langkah berikut:
Masuk ke Webshell SAE. Jalankan perintah telnet untuk memeriksa alamat instans ApsaraMQ for Kafka sebagai pemeriksaan konektivitas jaringan. Untuk informasi lebih lanjut tentang Webshell, lihat Gunakan fitur webshell untuk memeriksa status kesehatan aplikasi.
Periksa status jaringan.
Periksa apakah aplikasi SAE dan instans ApsaraMQ for Kafka berada di VPC yang sama dan apakah daftar putih alamat IP telah dikonfigurasi.
Jika jaringan bekerja dengan baik, bergabunglah dengan grup DingTalk 32874633 untuk dukungan teknis.