Apache APISIX Terintegrasi dengan Google Cloud Logging untuk Meningkatkan Pemrosesan Log

API7.ai

December 22, 2021

Ecosystem

Apache APISIX-Google Cloud Logging cover

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

  1. Buka browser Anda dan kunjungi Halaman Beranda Google Cloud.
  2. Masukkan nama pengguna dan kata sandi Anda untuk masuk ke konsol Google Cloud.
  3. Klik menu kiri konsol Google Cloud dan pilih "IAM & Admin > Buat Proyek" untuk mulai membuat proyek. buat proyek
  4. Masukkan nama proyek, pilih nama organisasi, dan klik "BUAT" untuk membuat proyek. buat proyek-2
  5. Saat proyek berhasil dibuat, pojok kanan atas konsol menunjukkan bahwa pembuatan berhasil. pemberitahuan proyek
  6. 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. lihat proyek Anda
  7. 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. mulai membuat akun layanan
  8. Klik "BUAT AKUN LAYANAN" untuk membuat akun layanan. buat akun layanan
  9. Masukkan nama akun layanan dan ID (ID biasanya mengikuti pembuatan akun), lalu klik "BUAT DAN LANJUTKAN". buat akun layanan-2
  10. Klik pada "Peran" dan ketik "Logging Admin" di kotak pencarian untuk mencari peran ini dan pilih "Logging Admin" sebagai peran. buat akun layanan-3
  11. 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. informasi akun layanan
  12. Klik "Kelola kunci" di kolom terakhir akun layanan untuk masuk ke antarmuka manajemen kunci rahasia. masuk ke antarmuka manajemen kunci rahasia
  13. Klik "TAMBAHKAN KUNCI > Buat kunci baru" untuk mulai membuat kunci rahasia baru. buat kunci rahasia baru
  14. Pilih jenis kunci rahasia sebagai "JSON" di halaman pop-up, lalu klik "BUAT" untuk membuat kunci rahasia baru. buat kunci rahasia baru-2
  15. 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. Unduh kunci Anda

Mengkonfigurasi Apache APISIX

Mengaktifkan plugin google-cloud-logging

Opsi 1: Unggah file kunci konfigurasi

  1. Unggah file kunci pribadi ke server node Apache APISIX.
  2. 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

  1. Buka file kunci pribadi.
  2. Konfigurasikan nilai project_id ke google-cloud-logging.auth_config.project_id.
  3. Konfigurasikan nilai private_key ke google-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

NamaDiperlukanNilai DefaultDeskripsi
auth_configTidakn/aFile Kunci Pribadi Google Cloud Logging. Baik auth_config atau auth_file harus dikonfigurasi.
auth_config.private_keyYan/aKunci Pribadi Google Cloud Logging.
auth_config.project_idYan/aID Proyek dari Akun Layanan Google.
auth_config.token_uriTidakoauth2.googleapis.com/tokenURI token yang meminta akun layanan Google.
auth_config.entries_uriTidaklogging.googleapis.com/v2/entries
API Menulis Entri Log Google Log Service.
auth_config.scopesTidak["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_fileTidakn/aJalur ke file JSON akun layanan Google (baik auth_config atau auth_file harus dikonfigurasi)
ssl_verifyTidakTRUEAktifkan autentikasi SSL, dikonfigurasi sesuai dengan dokumentasi OpenResty options.
resourceTidak{"type": "global"}Sumber Daya yang Dipantau Google, silakan lihat MonitoredResource.
log_idTidakapisix.apache.org%2FlogsID Log Google, referensi: LogEntry.
max_retry_countTidak0Jumlah maksimum percobaan ulang sebelum dihapus dari pipeline pemrosesan.
retry_delayTidak1Jumlah detik yang harus ditunda eksekusi proses jika eksekusi gagal.
buffer_durationTidak60Durasi maksimum (dalam detik) dari entri tertua dalam batch yang harus diproses terlebih dahulu.
inactive_timeoutTidak10Waktu maksimum untuk menyegarkan buffer dalam detik.
batch_max_sizeTidak100Waktu maksimum untuk menyegarkan buffer dalam detik.

Verifikasi plugin berjalan normal

  1. 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
  2. Buka browser Anda dan kunjungi Halaman Beranda Google Cloud.

  3. Masukkan nama pengguna dan kata sandi Anda untuk masuk ke konsol Google Cloud.

  4. Lihat log permintaan yang dikirim melalui browser log, dan hasil yang dikembalikan ditunjukkan di bawah ini. Lihat log

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

Tags: