Jika Anda menggunakan agen Logging lama dan memiliki konfigurasi yang sangat disesuaikan, sebaiknya lakukan migrasi ke Fluentd open source. Anda dapat mengonfigurasi Fluentd untuk mempertahankan perilaku lingkungan agen Logging Anda tanpa mengganggu pengumpulan log Anda oleh Cloud Logging. Dokumen ini menjelaskan proses migrasi.
Perbandingan fitur
Tabel berikut memberikan perbandingan kesetaraan fungsi utama antara agen Logging lama dan Fluentd upstream.
| Fitur | Agen Logging Lama | Fluentd Upstream |
|---|---|---|
| Penyerapan log ke Cloud Logging | Ya | Ya |
| Log sistem standar (syslog) | Ya | Ya |
| Input aplikasi pihak ketiga yang telah dikonfigurasi sebelumnya | Ya | Ya † |
| Penanganan log terstruktur (JSON) dan tidak terstruktur (teks) | Ya | Ya |
| Penggabungan pengecualian multiline | Ya | Ya |
| Google Cloud pengayaan metadata | Ya | Ya |
| Peningkatan kualitas metadata Kubernetes | Ya | Ya |
| ID entri log unik | Ya | Ya |
| Transformasi kolom log | Ya | Ya |
| Pemetaan tingkat keparahan | Ya | Ya |
| Autentikasi (ADC dan Kunci Akun Layanan) | Ya | Ya |
| Protokol transportasi REST dan gRPC | Ya | Ya |
| Integrasi pemantauan | Ya | Ya |
† Meskipun paket google-fluentd-catch-all- config tidak disertakan dalam penginstalan standar plugin dan Fluentd upstream, Anda dapat mempertahankan fungsi input yang telah dikonfigurasi sebelumnya dengan mengikuti langkah-langkah migrasi yang dijelaskan dalam panduan ini.
Sebelum memulai
Sebelum memulai migrasi, pastikan Anda memiliki hal berikut:
- Instance VM yang didukung dalam project Google Cloud .
- Kredensial pada instance VM yang mengizinkan komunikasi dengan Cloud Logging. Instance VM Compute Engine umumnya memiliki kredensial yang benar secara default. Untuk memeriksa apakah Anda memiliki kredensial yang tepat, jalankan prosedur Mengizinkan agen Logging.
Bermigrasi ke Fluentd
Bagian ini menguraikan langkah-langkah untuk bermigrasi ke versi Fluentd upstream, dengan tetap mempertahankan fungsi utama yang disediakan oleh agen Logging lama.
Untuk memigrasikan penyiapan Anda, selesaikan langkah-langkah berikut:
- Matikan agen Logging lama
- Instal versi stabil fluentd-package
- Menginstal Google Cloud plugin Platform
- Memigrasikan file konfigurasi plugin input Anda
- Perbarui konfigurasi syslog
- Memperbarui file konfigurasi Fluentd
- Memvalidasi bahwa agen Fluentd berjalan dengan benar
- Meng-uninstal agen Logging lama
Matikan agen Logging lama
Sebelum menginstal agen Fluentd upstream, Anda harus menghentikan agen Logging lama untuk menghindari konflik. Untuk menghindari hilangnya log yang tertunda selama migrasi, pastikan Anda menghapus semua log yang di-buffer saat mematikan perangkat.
Untuk menonaktifkan agen Logging lama dengan benar, lakukan langkah berikut:
- Buka koneksi terminal ke instance VM Anda menggunakan SSH atau alat serupa dan pastikan Anda memiliki akses sudo.
Untuk melakukan flush log yang di-buffer sebelum mematikan Agen logging lama, aktifkan opsi
flush_at_shutdown:Perbarui file
/etc/google-fluentd/google-fluentd.confuntuk menyetel flagflush_at_shutdownketrue:# Configure the agent to flush all buffer chunks on shutdown <match **> @type google_cloud flush_at_shutdown true </match>Mulai ulang agen untuk menerapkan perubahan konfigurasi:
sudo service google-fluentd restart
Hentikan agen Logging lama:
sudo service google-fluentd stop
Instal versi stabil fluentd-package
Instal distribusi Fluentd yang stabil (fluentd-package) di instance VM Anda. Untuk mengetahui petunjuknya, lihat dokumentasi Fluentd Install
fluent-package.
Menginstal plugin Google Cloud Platform
Untuk mengaktifkan Fluentd berinteraksi dengan Cloud Logging dan menangani format log tertentu, instal plugin berikut:
Jika belum diinstal, instal alat build untuk kompilasi ekstensi:
Debian atau Ubuntu
Jalankan perintah berikut di Debian atau Ubuntu:
sudo apt-get update sudo apt-get install -y build-essentialCentOS atau RHEL
Jalankan perintah berikut di CentOS atau RHEL:
sudo yum update sudo yum groupinstall -y "Development Tools"Instal plugin
fluent-plugin-google-cloud:sudo fluent-gem install fluent-plugin-google-cloudInstal plugin
fluent-plugin-detect-exceptions:sudo fluent-gem install fluent-plugin-detect-exceptionsOpsional: jika deployment agen Logging lama Anda mengumpulkan log dari aplikasi yang berjalan dalam cluster Kubernetes, instal plugin
fluent-plugin-kubernetes_metadata_filter:sudo fluent-gem install fluent-plugin-kubernetes_metadata_filterOpsional: Jika agen Logging lama Anda mengumpulkan dan mengekspos metrik dalam format Prometheus, instal gem berikut:
sudo fluent-gem install prometheus-client -v 0.9.0 sudo fluent-gem install fluent-plugin-prometheus -v 1.4.0
Memigrasikan file konfigurasi input-plugin
Untuk memigrasikan file posisi dan konfigurasi yang ada untuk penginstalan Fluentd, selesaikan langkah-langkah berikut:
Buat direktori untuk file konfigurasi dan posisi Fluentd:
# Create the destination directory for Fluentd configuration files sudo mkdir -p /etc/fluent/config.d # Create the destination directory for position files sudo mkdir -p /var/lib/fluent/posSalin file konfigurasi
google-fluentdAnda ke direktori konfigurasi untuk Fluentd:sudo cp /etc/google-fluentd/config.d/* /etc/fluent/config.d/Salin semua file posisi (
.pos) yang digunakan olehgoogle-fluentdke direktori position-file untuk Fluentd:sudo cp /var/lib/google-fluentd/pos/*.pos /var/lib/fluent/pos/File posisi digunakan untuk melacak posisi baca dalam file log. Memigrasikan file tersebut memungkinkan Fluentd dimulai pada titik yang sama dengan yang digunakan google-fluentd.
Perbarui jalur
pos_filedi file konfigurasi Fluentd baru untuk mengarah ke direktori file posisi yang baru:sudo sed -i 's#/var/lib/google-fluentd#/var/lib/fluent#g' /etc/fluent/config.d/*.confBerikan akses baca dan tulis kepada pengguna layanan Fluentd ,
_fluentd, ke direktori/var/lib/fluent/:sudo chown -R _fluentd:_fluentd /var/lib/fluent/Memberi pengguna
_fluentdakses baca ke file syslog:sudo usermod -a -G adm _fluentd
Memperbarui konfigurasi syslog
Fluentd upstream berjalan sebagai pengguna tanpa hak istimewa, yang tidak dapat terikat ke port dengan hak istimewa yang bernomor kurang dari 1024. Jika penyiapan agen Logging lama Anda mencakup pengumpulan syslog berbasis jaringan menggunakan @type syslog di port 514, Anda harus menyesuaikan konfigurasi.
Untuk memperbarui konfigurasi port, lakukan hal berikut:
Ganti seluruh konten file
/etc/fluent/config.d/syslog_endpoint.confdengan konfigurasi berikut:sudo tee /etc/fluent/config.d/syslog_endpoint.conf > /dev/null <<EOF <source> @type syslog port 5140 <transport tcp> </transport> bind 127.0.0.1 tag syslog </source> EOFBuat atau ubah file
/etc/rsyslog.d/40-fluentd-forward.confuntuk meneruskan pesan syslog ke port Fluentd baru:sudo tee /etc/rsyslog.d/40-fluentd-forward.conf > /dev/null <<EOF # Forward all syslog messages to Fluentd on localhost:5140 via TCP *.* @@127.0.0.1:5140 EOFMulai ulang layanan
rsysloguntuk menerapkan perubahan:sudo systemctl restart rsyslog.service
Perbarui file konfigurasi Fluentd utama
Konfigurasi agen Fluentd upstream dengan mereplikasi setelan Anda dari
file konfigurasi agen, google-fluentd.conf, ke file konfigurasi Fluentd
utama, yang berada di /etc/fluent/fluentd.conf.
Untuk mengonfigurasi agen Fluentd upstream, selesaikan langkah-langkah berikut:
Salin seluruh konten file
google-fluentd.confuntuk menggantikan file konfigurasi Fluentd upstream default:sudo cp /etc/google-fluentd/google-fluentd.conf /etc/fluent/fluentd.confPerbarui
buffer_pathdi file konfigurasi Fluentd Anda agar mengarah ke direktori Fluentd baru:sudo sed -i 's#/var/log/google-fluentd#/var/log/fluent#g' /etc/fluent/fluentd.confPeriksa file
fluentd.confuntuk mengonfirmasi bahwa konfigurasi mencakup hal berikut:@include config.d/*.confada untuk mengimpor semua konfigurasi plugin input Anda.- Blok
<match **> @type google_clouddikonfigurasi untuk melakukan streaming log ke Cloud Logging. buffer_pathdalam plugin output kini mengarah ke/var/lib/fluent/.- Semua perintah
pos_filedalam plugin input mengarah ke/var/lib/fluent/.
Jalankan uji coba untuk memverifikasi konfigurasi Fluentd Anda:
sudo fluentd -c /etc/fluent/fluentd.conf --dry-runPeriksa output yang dihasilkan untuk melihat apakah ada pemberitahuan
erroratauwarn. Anda harus menyelesaikan masalah yang teridentifikasi sebelum melanjutkan. Untuk mengetahui detail perubahan sintaksis, lihat Kompatibilitas konfigurasi untuk Fluentd upstream.Mulai ulang agen Fluentd:
sudo service fluentd restart
Memastikan bahwa agen Fluentd berjalan dengan benar
Setelah memulai Fluentd, pastikan log berhasil dikirim ke Cloud Logging:
Pastikan Fluentd berjalan tanpa error:
$ sudo service fluentd statusStatus layanan harus aktif (berjalan).
Periksa log Fluentd dan pastikan tidak ada error atau peringatan:
sudo tail -n 100 /var/log/fluent/fluentd.log | grep -iE "error|warn|failed|exception" || trueTidak ada error atau peringatan yang tercantum.
Periksa Cloud Logging untuk mengonfirmasi bahwa log diterima dari instance VM Anda. Untuk mengetahui informasi tentang cara melihat log, lihat Menggunakan Logs Explorer.
Menghapus instalan agen Logging lama
Hanya setelah Anda memvalidasi bahwa Fluentd baru berhasil mengirim log ke Cloud Logging, hapus agen Logging lama dan file konfigurasi:
Debian atau Ubuntu
sudo apt-get remove --purge google-fluentd
CentOS atau RHEL
sudo yum remove google-fluentd