Topik ini menjelaskan cara membuat konfigurasi Logtail di Konsol Simple Log Service untuk mengumpulkan hasil kueri PostgreSQL.
Prasyarat
-
Logtail versi 0.16.0 atau lebih baru untuk Linux, atau Logtail versi 1.0.0.8 atau lebih baru untuk Windows, telah diinstal pada server. Untuk informasi selengkapnya, lihat Install Logtail (Linux) atau Install Logtail (Windows).
PentingPastikan server tempat Logtail diinstal dapat terhubung ke database tujuan.
-
Alamat IP server tempat Logtail diinstal telah ditambahkan ke daftar putih database PostgreSQL.
Misalnya, untuk mengonfigurasi daftar putih pada database RDS for PostgreSQL, lihat Configure a whitelist.
Fitur
-
Mendukung pengumpulan hasil kueri dari database PostgreSQL.
-
Mendukung pagination.
-
Mendukung pengaturan zona waktu.
-
Mendukung pengaturan timeout.
-
Mendukung penyimpanan status checkpoint.
-
Mendukung pembatasan jumlah maksimum catatan yang dikumpulkan per eksekusi.
Prosedur
Masuk ke Simple Log Service console.
-
Pada bagian Import Data, pilih Custom Data Plug-in.
-
Pilih proyek dan Logstore tujuan, lalu klik Next.
Pada langkah Machine Group Configurations, konfigurasikan kelompok mesin.
Konfigurasikan parameter Scenario dan Installation Environment sesuai kebutuhan.
PentingAnda harus mengonfigurasi parameter Scenario dan Installation Environment terlepas dari apakah kelompok mesin tersedia atau tidak. Pengaturan parameter ini memengaruhi konfigurasi berikutnya.
Pastikan kelompok mesin ditampilkan di bagian Applied Server Groups, lalu klik Next.
Machine group available
Pilih kelompok mesin dari bagian Source Machine Group.

No machine group available
Klik Create Machine Group. Pada panel Create Machine Group, konfigurasikan parameter. Anda dapat mengatur parameter Machine Group Identifier menjadi IP Address atau Custom Identifier. Untuk informasi selengkapnya, lihat Create a custom identifier-based machine group atau Create an IP address-based machine group.
PentingJika Anda menerapkan kelompok mesin segera setelah membuatnya, status heartbeat kelompok mesin mungkin menunjukkan FAIL. Masalah ini terjadi karena kelompok mesin belum terhubung ke Simple Log Service. Untuk mengatasinya, Anda dapat mengklik Automatic Retry. Jika masalah tetap berlanjut, lihat What do I do if no heartbeat connections are detected on Logtail?
-
Pada tab Configure Data Source, atur Configuration Name dan Plug-in Configuration, lalu klik Next.
-
inputs wajib diisi dan digunakan untuk mengonfigurasi pengaturan sumber data dalam konfigurasi Logtail.
PentingAnda hanya dapat menentukan satu jenis sumber data dalam inputs.
-
processors bersifat opsional dan digunakan untuk mengonfigurasi pengaturan pemrosesan data dalam konfigurasi Logtail guna mengurai data. Anda dapat menentukan satu atau beberapa metode pemrosesan.
Jika log Anda tidak dapat diurai hanya berdasarkan pengaturan inputs, Anda dapat mengonfigurasi processors pada kolom Plug-in Configuration untuk menambahkan plugin guna pemrosesan data. Misalnya, mengekstrak bidang, mengekstrak waktu log, menyamarkan data, dan memfilter log. Untuk informasi selengkapnya, lihat Logtail plugins for data processing.
{ "inputs": [ { "type": "service_pgsql", "detail": { "Address": "pgm-****.pg.rds.aliyuncs.com", "User": "****", "Password": "*******", "DataBase": "****", "Limit": true, "PageSize": 100, "StateMent": "select * from specialalarmtest where id > $1 order by id", "CheckPoint": true, "CheckPointColumn": "id", "CheckPointStart": "0", "CheckPointSavePerPage": true, "CheckPointColumnType": "int", "IntervalMs": 1000 } } ] }Parameter
Tipe
Wajib
Deskripsi
type
string
Ya
Jenis sumber data. Tetapkan nilainya ke service_pgsql.
Address
string
Tidak
Titik akhir database PostgreSQL. Contoh:
pgm-****.pg.rds.aliyuncs.com.Jika Anda tidak mengonfigurasi parameter ini, nilai default 127.0.0.1:5432 akan digunakan.
User
string
Tidak
Username untuk database PostgreSQL.
Jika Anda tidak mengonfigurasi parameter ini, nilai default root akan digunakan.
Password
string
Tidak
Password untuk username yang ditentukan. Jika Anda tidak mengonfigurasi parameter ini, tidak ada password yang digunakan.
Jika Anda memiliki persyaratan keamanan tinggi, kami menyarankan agar Anda menetapkan username dan password ke
xxx. Setelah konfigurasi Logtail disinkronkan ke mesin lokal, temukan konfigurasi tersebut di file lokal /usr/local/ilogtail/user_log_config.json dan perbarui nilainya. Untuk informasi selengkapnya, lihat Modify a local configuration.PentingJika Anda memodifikasi parameter ini di konsol, perubahan tersebut akan menimpa konfigurasi lokal saat sinkronisasi.
DataBase
string
Tidak
Nama database PostgreSQL.
DialTimeOutMs
int
Tidak
Timeout untuk koneksi ke database PostgreSQL. Satuan: milidetik (ms).
Jika Anda tidak mengonfigurasi parameter ini, nilai default 5.000 ms akan digunakan.
ReadTimeOutMs
int
Tidak
Timeout untuk membaca hasil kueri dari database PostgreSQL. Satuan: ms.
Jika Anda tidak mengonfigurasi parameter ini, nilai default 5.000 ms akan digunakan.
StateMent
string
Tidak
Pernyataan SELECT.
Jika Anda menetapkan CheckPoint ke true, klausa WHERE dari pernyataan SELECT dalam StateMent harus mencakup kolom checkpoint (parameter CheckPointColumn) dan menetapkan nilainya ke $1. Contoh: Jika Anda menetapkan CheckPointColumn ke id, tetapkan StateMent ke
SELECT * from ... where id > $1.Limit
boolean
Tidak
Menentukan apakah akan menggunakan LIMIT untuk pagination.
Nilai default adalah false, yang menonaktifkan pagination.
Kami menyarankan agar Anda menggunakan Limit untuk pagination. Jika Anda menetapkan Limit ke true, klausa LIMIT akan secara otomatis ditambahkan ke StateMent saat kueri SQL dieksekusi.
PageSize
int
Tidak
Ukuran halaman. Jika Limit ditetapkan ke true, Anda harus mengonfigurasi parameter ini.
MaxSyncSize
int
Tidak
Jumlah maksimum catatan yang dikumpulkan per eksekusi.
Jika Anda tidak mengonfigurasi parameter ini, nilai default 0 akan digunakan, yang berarti tanpa batas.
CheckPoint
boolean
Tidak
Menentukan apakah akan menggunakan checkpoint.
Nilai default adalah false.
CheckPointColumn
string
Tidak
Nama kolom checkpoint.
Parameter ini wajib diisi jika CheckPoint ditetapkan ke true.
PeringatanNilai dalam kolom ini harus bersifat inkremental. Jika tidak, kehilangan data dapat terjadi selama pengumpulan. Nilai maksimum dari setiap hasil kueri digunakan sebagai input untuk kueri berikutnya.
CheckPointColumnType
string
Tidak
Tipe data kolom checkpoint. Nilai yang valid:
intdantime. Tipeintdisimpan secara internal sebagai int64. Tipetimemendukung tipe data waktu PostgreSQL.Parameter ini wajib diisi jika CheckPoint ditetapkan ke true.
CheckPointStart
string
Tidak
Nilai awal untuk kolom checkpoint.
Parameter ini wajib diisi jika CheckPoint ditetapkan ke true.
CheckPointSavePerPage
boolean
Tidak
Menentukan apakah checkpoint disimpan setelah setiap halaman dikumpulkan.
-
true: Checkpoint disimpan setelah setiap halaman dikumpulkan.
-
false: Checkpoint disimpan setelah setiap siklus pengumpulan selesai.
IntervalMs
int
Ya
Interval pengumpulan. Satuan: ms.
-
Buat indeks dan pratinjau data. Lalu, klik Next. Secara default, indeks teks penuh diaktifkan di Simple Log Service. Anda juga dapat membuat indeks bidang secara manual untuk log yang dikumpulkan atau klik Automatic Index Generation. Kemudian, Simple Log Service akan menghasilkan indeks bidang. Untuk informasi selengkapnya, lihat Create indexes.
PentingJika Anda ingin mengkueri semua bidang dalam log, kami menyarankan agar Anda menggunakan indeks teks penuh. Jika Anda hanya ingin mengkueri bidang tertentu, kami menyarankan agar Anda menggunakan indeks bidang. Hal ini membantu mengurangi traffic indeks. Jika Anda ingin menganalisis bidang, Anda harus membuat indeks bidang. Anda harus menyertakan pernyataan SELECT dalam pernyataan kueri Anda untuk analisis.
-
Klik Query Log untuk membuka halaman Query & Analysis untuk Logstore tersebut.
Anda mungkin perlu menunggu sekitar satu menit hingga indeks berlaku. Anda kemudian dapat melihat log yang dikumpulkan pada tab Raw Logs. Untuk informasi selengkapnya, lihat Quick start for log query and analysis.
Modify a local configuration
Jika Anda tidak memasukkan nilai aktual untuk parameter seperti Address, User, dan Password di Plug-in Configuration, Anda dapat memodifikasinya secara manual setelah konfigurasi Logtail diterapkan ke server.
Linux
-
Masuk ke server tempat Logtail diinstal.
-
Buka file /usr/local/ilogtail/user_log_config.json, cari service_pgsql, lalu modifikasi bidang seperti Address, User, dan Password.
-
Jalankan perintah berikut untuk restart Logtail.
sudo /etc/init.d/ilogtaild stop; sudo /etc/init.d/ilogtaild start
Windows
-
Masuk ke server tempat Logtail diinstal.
-
Buka file C:\Program Files\Alibaba\Logtail\user_log_config.json, cari service_pgsql, lalu modifikasi bidang seperti Address, User, dan Password.
Jalur file berbeda untuk sistem operasi Windows 64-bit dan 32-bit. Untuk informasi selengkapnya, lihat File paths.
-
Restart Logtail:
Pilih .
Pada kotak dialog Services, pilih layanan yang ingin Anda kelola.
Untuk Logtail V0.x.x.x, pilih LogtailWorker.
Untuk Logtail V1.0.0.0 atau lebih baru, pilih LogtailDaemon.
Klik kanan layanan tersebut dan pilih Start, Stop, atau Restart.
Troubleshooting
Jika tidak ada data yang muncul di halaman pratinjau atau kueri setelah Anda mengonfigurasi Logtail untuk mengumpulkan log, lihat Troubleshoot Logtail collection failures.
Contoh tabel database dan log
Contoh berikut menunjukkan skema tabel PostgreSQL dan contoh log yang dikumpulkan oleh Logtail.
-
Skema tabel contoh
// Buat tabel. CREATE TABLE IF NOT EXISTS specialalarmtest ( id BIGSERIAL NOT NULL, time TIMESTAMP NOT NULL, alarmtype varchar(64) NOT NULL, ip varchar(16) NOT NULL, COUNT INT NOT NULL, PRIMARY KEY (id) ); // Masukkan data. insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 0); insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 1); insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 2); insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 3); -
Contoh log: Setelah Anda memasukkan data, kueri log mengembalikan tiga catatan dengan nilai
id14, 15, dan 16; nilaicount1, 2, dan 3; nilaialarmtypeNO_ALARM; dan nilaiip10.10.***.***.