Apache APISIX Terintegrasi dengan Google Cloud Logging untuk Meningkatkan Pemrosesan Log
API7.ai
December 22, 2021

Logging adalah infrastruktur penting untuk sistem terdistribusi. Ini dapat membantu pengembang mengamati status operasi layanan, meningkatkan efisiensi pemecahan masalah dan diagnosis layanan, serta melakukan analisis multi-dimensi untuk meningkatkan stabilitas dan efisiensi operasional sistem secara keseluruhan.
Google Cloud Logging adalah layanan manajemen log real-time yang disediakan oleh Google Cloud, menawarkan penyimpanan, pencarian, analisis, dan layanan peringatan tingkat EB. Browser log Google Cloud Logging memungkinkan Anda mencari, mengurutkan, dan menganalisis log dengan mudah dan efisien, dan Google Cloud Logging juga menyediakan kueri yang disimpan dan fitur grafis yang kaya untuk membuat hasil penyaringan log dapat diambil dan lebih intuitif.
Apache APISIX sebelumnya telah mendukung integrasi HTTP Logger, TCP Logger, Kafka Logger, UDP Logger, RocketMQ Logger, SkyWalking Logger, Aliyun Cloud Logging(SLS) dan banyak solusi layanan logging open source dan cloud lainnya.
Baru-baru ini, Apache APISIX juga menambahkan dukungan untuk Google Cloud Logging, memberikan pengguna solusi logging baru saat menggunakan Apache APISIX sebagai gateway: menggunakan google-cloud-logging untuk meneruskan log permintaan Apache APISIX ke layanan Google Cloud Logging untuk analisis dan penyimpanan.
Saat plugin diaktifkan, Apache APISIX akan mengambil informasi konteks permintaan dalam Log Phase dan mengubahnya menjadi LogEntry Google Cloud Logging, kemudian mengirimkan data log yang telah diserialisasi ke antrian batch, dan ketika antrian batch memicu batas waktu atau entri yang ditetapkan pengguna, data log akan diteruskan ke layanan Google Cloud Logging melalui Google Cloud API ke layanan Google Cloud Logging.
Artikel ini akan menjelaskan cara mengkonfigurasi dan menggunakan layanan Google Cloud Logging di Apache APISIX.
Mengkonfigurasi Google Cloud
- Buka browser Anda dan kunjungi Halaman Beranda Google Cloud.
- Masukkan nama pengguna dan kata sandi Anda untuk masuk ke konsol Google Cloud.
- Klik menu kiri konsol Google Cloud dan pilih "IAM & Admin > Buat Proyek" untuk mulai membuat proyek.

- Masukkan nama proyek, pilih nama organisasi, dan klik "BUAT" untuk membuat proyek.

- Saat proyek berhasil dibuat, pojok kanan atas konsol menunjukkan bahwa pembuatan berhasil.

- Klik di jendela untuk memilih proyek, atau pilih jalur operasi proyek di bilah navigasi atas halaman beranda konsol. Setelah memilih proyek, Anda akan dialihkan ke halaman beranda konsol, di mana Anda sudah dapat melihat data tentang proyek saat ini di bilah navigasi atas dan informasi proyek di pusat informasi.

- Setelah Anda selesai membuat proyek, Anda perlu membuat akun layanan untuk proyek tersebut. Silakan kembali ke halaman beranda konsol Google Cloud dan klik "IAM & Admin > Akun Layanan" di menu kiri untuk mulai membuat akun layanan.

- Klik "BUAT AKUN LAYANAN" untuk membuat akun layanan.

- Masukkan nama akun layanan dan ID (ID biasanya mengikuti pembuatan akun), lalu klik "BUAT DAN LANJUTKAN".

- Klik pada "Peran" dan ketik "Logging Admin" di kotak pencarian untuk mencari peran ini dan pilih "Logging Admin" sebagai peran.

- Klik "SELESAI" untuk menyelesaikan pembuatan akun layanan dan beralih ke halaman beranda akun layanan. Saat ini Anda dapat melihat akun yang baru saja dibuat dan detailnya dalam daftar.

- Klik "Kelola kunci" di kolom terakhir akun layanan untuk masuk ke antarmuka manajemen kunci rahasia.

- Klik "TAMBAHKAN KUNCI > Buat kunci baru" untuk mulai membuat kunci rahasia baru.

- Pilih jenis kunci rahasia sebagai "JSON" di halaman pop-up, lalu klik "BUAT" untuk membuat kunci rahasia baru.

- Informasi kunci pribadi akan secara otomatis diunduh ke direktori Unduhan default sistem melalui browser Anda. Saat Anda mengaktifkan plugin google-cloud-logging, Anda perlu menggunakan informasi dalam kunci pribadi ini, jadi harap simpan file kunci pribadi.

Mengkonfigurasi Apache APISIX
Mengaktifkan plugin google-cloud-logging
Opsi 1: Unggah file kunci konfigurasi
- Unggah file kunci pribadi ke server node Apache APISIX.
- Konfigurasikan jalur file ke
google-cloud-logging.auth_file, seperti yang ditunjukkan di bawah ini:
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri":"/logging.do", "upstream":{ "type":"roundrobin", "nodes":{ "127.0.0.1:1980":1 } }, "plugins":{ "google-cloud-logging":{ // File Kunci Pribadi Google Cloud Logging "auth_file":"/path/to/apache-apisix-fcafc68c2f41.json", // Jumlah maksimum entri per antrian batch. "batch_max_size": 1, // Waktu maksimum untuk menyegarkan buffer dalam detik. "inactive_timeout": 10 } } }'
Opsi 2: Deklarasikan konfigurasi dalam JSON
- Buka file kunci pribadi.
- Konfigurasikan nilai
project_idkegoogle-cloud-logging.auth_config.project_id. - Konfigurasikan nilai
private_keykegoogle-cloud-logging.auth_config.private_key. Seperti yang ditunjukkan di bawah ini:
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri":"/logging.do", "upstream":{ "type":"roundrobin", "nodes":{ "127.0.0.1:1980":1 } }, "plugins":{ "google-cloud-logging":{ // File Kunci Pribadi Google Cloud Logging "auth_config":{ "project_id":"apache-apisix", "private_key":"-----BEGIN RSA PRIVATE KEY-----kunci pribadi Anda-----END RSA PRIVATE KEY-----" }, // Jumlah maksimum entri per antrian batch. "batch_max_size": 1, // Waktu maksimum untuk menyegarkan buffer dalam detik. "inactive_timeout": 10 } } }'
Parameter
| Nama | Diperlukan | Nilai Default | Deskripsi |
|---|---|---|---|
| auth_config | Tidak | n/a | File Kunci Pribadi Google Cloud Logging. Baik auth_config atau auth_file harus dikonfigurasi. |
| auth_config.private_key | Ya | n/a | Kunci Pribadi Google Cloud Logging. |
| auth_config.project_id | Ya | n/a | ID Proyek dari Akun Layanan Google. |
| auth_config.token_uri | Tidak | oauth2.googleapis.com/token | URI token yang meminta akun layanan Google. |
| auth_config.entries_uri | Tidak | logging.googleapis.com/v2/entries | API Menulis Entri Log Google Log Service. |
| auth_config.scopes | Tidak | ["https://www.googleapis.com/auth/logging.read","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/logging.admin","https://www.googleapis.com/auth/cloud-platform"] | Lingkup akses akun layanan Google, lihat: OAuth 2.0 Scopes for Google APIs |
| auth_file | Tidak | n/a | Jalur ke file JSON akun layanan Google (baik auth_config atau auth_file harus dikonfigurasi) |
| ssl_verify | Tidak | TRUE | Aktifkan autentikasi SSL, dikonfigurasi sesuai dengan dokumentasi OpenResty options. |
| resource | Tidak | {"type": "global"} | Sumber Daya yang Dipantau Google, silakan lihat MonitoredResource. |
| log_id | Tidak | apisix.apache.org%2Flogs | ID Log Google, referensi: LogEntry. |
| max_retry_count | Tidak | 0 | Jumlah maksimum percobaan ulang sebelum dihapus dari pipeline pemrosesan. |
| retry_delay | Tidak | 1 | Jumlah detik yang harus ditunda eksekusi proses jika eksekusi gagal. |
| buffer_duration | Tidak | 60 | Durasi maksimum (dalam detik) dari entri tertua dalam batch yang harus diproses terlebih dahulu. |
| inactive_timeout | Tidak | 10 | Waktu maksimum untuk menyegarkan buffer dalam detik. |
| batch_max_size | Tidak | 100 | Waktu maksimum untuk menyegarkan buffer dalam detik. |
Verifikasi plugin berjalan normal
-
Jalankan perintah berikut untuk mengirim permintaan ke Google Cloud Logging.
curl -i http://127.0.0.1:9080/logging.do HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Date: Fri, 10 Dec 2021 09:57:52 GMT Server: APISIX/2.11.0 Hello, Google Cloud Logging -
Buka browser Anda dan kunjungi Halaman Beranda Google Cloud.
-
Masukkan nama pengguna dan kata sandi Anda untuk masuk ke konsol Google Cloud.
-
Lihat log permintaan yang dikirim melalui browser log, dan hasil yang dikembalikan ditunjukkan di bawah ini.

Menonaktifkan plugin google-cloud-logging
Anda dapat menghapus blok konfigurasi terkait google-cloud-logging untuk menonaktifkan plugin jika Anda telah selesai menggunakannya.
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri":"/logging.do", "upstream":{ "type":"roundrobin", "nodes":{ "127.0.0.1:1980":1 } }, "plugins":{ } }'
Ringkasan
Artikel ini menjelaskan langkah-langkah detail untuk menghubungkan Apache APISIX dan Google Cloud Logging. Kami berharap artikel ini akan memberikan pemahaman yang lebih jelas tentang penggunaan Google Cloud Logging di Apache APISIX dan memfasilitasi operasi praktis selanjutnya.
Apache APISIX tidak hanya berkomitmen untuk mempertahankan kinerja tingginya, tetapi juga selalu menaruh perhatian besar pada pembangunan ekosistem open source. Saat ini, Apache APISIX memiliki lebih dari 10 plugin terkait logging dan mendukung antarmuka dengan proyek logging open source utama di industri.
Jika Anda memiliki kebutuhan untuk menghubungkan ke log lain, kunjungi GitHub Apache APISIX dan tinggalkan saran Anda melalui issue; atau berlangganan mailing list Apache APISIX dan sampaikan pemikiran Anda melalui email.
Artikel Terkait
Apache APISIX Berintegrasi dengan SkyWalking untuk Membuat Pemrosesan Log Secara Menyeluruh
Apache APISIX & RocketMQ Meningkatkan Kemampuan Pemantauan Log API Pengguna