Topik ini menjelaskan cara membuat konfigurasi Logtail di konsol Layanan Log Sederhana untuk mengumpulkan hasil kueri PostgreSQL.
Prasyarat
Logtail V0.16.0 atau yang lebih baru terpasang di Server Linux Anda, atau Logtail V1.0.0.8 atau yang lebih baru terpasang di Server Windows Anda. Untuk informasi lebih lanjut, lihat Pasang Logtail pada Server Linux atau Pasang Logtail pada Server Windows.
PentingPastikan server tempat Logtail dipasang dapat terhubung ke database dari mana Anda ingin mengumpulkan hasil kueri PostgreSQL.
Alamat IP server tempat Logtail dipasang telah ditambahkan ke daftar putih database PostgreSQL dari mana Anda ingin mengumpulkan hasil kueri PostgreSQL.
Untuk informasi lebih lanjut tentang cara mengonfigurasi daftar putih alamat IP untuk instance ApsaraDB RDS for PostgreSQL, lihat Konfigurasikan Daftar Putih Alamat IP.
Prinsip
Logtail mengeksekusi pernyataan SELECT yang ditentukan dalam konfigurasi Logtail secara berkala, lalu mengunggah hasil kueri ke Layanan Log Sederhana.
Setelah Logtail memperoleh hasil kueri, Logtail menyimpan nilai bidang CheckPoint dalam hasil ke server Logtail. Lain kali Logtail mengeksekusi pernyataan SELECT, Logtail menambahkan nilai bidang CheckPoint ke pernyataan SELECT. Dengan cara ini, Logtail dapat mengumpulkan data inkremental.
Jika Anda menggunakan titik pemeriksaan selama pengumpulan data, Anda harus mengurutkan nilai bidang CheckPoint dalam pernyataan SELECT. Jika tidak, mungkin terjadi duplikasi data atau masalah lainnya.
Fitur
Anda dapat mengumpulkan hasil kueri dari database PostgreSQL.
Anda dapat mengonfigurasi pengaturan kueri berhalaman.
Anda dapat menentukan zona waktu.
Anda dapat menentukan periode timeout.
Anda dapat menyimpan nilai bidang CheckPoint.
Anda dapat menentukan jumlah maksimum log yang dapat dikumpulkan sekaligus.
Skenario
Kumpulkan data inkremental berdasarkan tanda seperti ID auto-increment atau titik waktu.
Sinkronkan data berdasarkan kondisi filter.
Prosedur
Masuk ke konsol Layanan Log Sederhana.
Di bagian Import Data, pilih Custom Data Plug-in.
Pilih proyek dan penyimpanan log, lalu klik Next.
Pada langkah Machine Group Configurations, konfigurasikan grup mesin.
Konfigurasikan parameter Skenario dan Lingkungan Instalasi berdasarkan kebutuhan bisnis Anda.
PentingAnda harus mengonfigurasi parameter Skenario dan Lingkungan Instalasi terlepas dari apakah grup mesin tersedia. Pengaturan parameter memengaruhi konfigurasi selanjutnya.
Pastikan bahwa grup mesin ditampilkan di bagian Applied Server Groups dan klik Next.
Grup mesin tersedia
Pilih grup mesin dari bagian Source Machine Group.

Tidak ada grup mesin tersedia
Klik Create Machine Group. Di panel Create Machine Group, konfigurasikan parameter. Anda dapat mengatur parameter Pengenal Grup Mesin ke IP Address atau Custom Identifier. Untuk informasi lebih lanjut, lihat Buat Grup Mesin Berbasis Pengenal Kustom atau Buat Grup Mesin Berbasis Alamat IP.
PentingJika Anda menerapkan grup mesin segera setelah Anda membuat grup mesin, status denyut jantung grup mesin mungkin menjadi FAIL. Masalah ini terjadi karena grup mesin belum terhubung ke Layanan Log Sederhana. Untuk menyelesaikan masalah ini, Anda dapat mengklik Retry. Jika masalah tetap ada, lihat Apa yang harus saya lakukan jika tidak ada koneksi denyut jantung yang terdeteksi pada Logtail?.
Pada langkah Configure Data Source, atur parameter Configuration Name dan Plug-in Configuration, lalu klik Next.
{ "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
Diperlukan
Deskripsi
type
string
Ya
Tipe sumber data. Atur nilainya menjadi service_pgsql.
Address
string
Tidak
Alamat database PostgreSQL. Contoh:
pgm-****.pg.rds.aliyuncs.com.Nilai default: 127.0.0.1:5432.
User
string
Tidak
Nama pengguna akun yang digunakan untuk masuk ke database PostgreSQL.
Nilai default: root.
Password
string
Tidak
Kata sandi akun yang digunakan untuk masuk ke database PostgreSQL. Parameter ini kosong secara default.
Jika Anda memiliki persyaratan tinggi untuk keamanan data, kami sarankan Anda mengatur nama pengguna dan kata sandi menjadi
xxx. Setelah konfigurasi Anda disinkronkan ke server Logtail, temukan parameter User dan Password di file /usr/local/ilogtail/user_log_config.json dan ubah nilainya sesuai dengan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Ubah konfigurasi Logtail di server Logtail.PentingJika Anda mengubah parameter ini di konsol Layanan Log Sederhana, pengaturan parameter dalam konfigurasi Logtail di server Logtail akan tertimpa setelah modifikasi disinkronkan ke server.
DataBase
string
Tidak
Nama database PostgreSQL.
DialTimeOutMs
int
Tidak
Periode timeout untuk koneksi ke database PostgreSQL. Satuan: milidetik.
Nilai default: 5000.
ReadTimeOutMs
int
Tidak
Periode timeout untuk pembacaan dari database PostgreSQL. Satuan: milidetik.
Nilai default: 5000.
StateMent
string
Tidak
Pernyataan SELECT.
Jika Anda mengatur parameter CheckPoint menjadi true, Anda harus menyertakan kolom yang ditentukan oleh parameter CheckPointColumn dalam klausa WHERE dari pernyataan SELECT yang Anda tentukan untuk parameter StateMent. Anda juga harus mengatur nilai untuk kolom tersebut menjadi $1. Sebagai contoh, jika Anda mengatur parameter CheckPointColumn menjadi id, Anda harus menentukan nilai parameter StateMent dalam format
SELECT * from ... where id > $1.Limit
boolean
Tidak
Menentukan apakah akan menggunakan klausa LIMIT untuk membagi halaman hasil kueri.
Nilai default: false. Nilai ini menunjukkan bahwa klausa LIMIT tidak digunakan.
Kami sarankan Anda mengatur parameter Limit menjadi true. Jika Anda mengatur parameter Limit menjadi true, klausa LIMIT secara otomatis ditambahkan ke pernyataan SQL yang Anda tentukan untuk parameter StateMent ketika Logtail mengeksekusi pernyataan SQL.
PageSize
int
Tidak
Jumlah maksimum log yang dapat dikembalikan di setiap halaman. Jika Anda mengatur parameter Limit menjadi true, Anda harus mengonfigurasi parameter ini.
MaxSyncSize
int
Tidak
Jumlah maksimum log yang dapat disinkronkan sekaligus.
Nilai default: 0. Nilai ini menunjukkan bahwa jumlahnya tidak terbatas.
CheckPoint
boolean
Tidak
Menentukan apakah akan menggunakan titik pemeriksaan selama pengumpulan data.
Nilai default: false. Nilai ini menunjukkan bahwa tidak ada titik pemeriksaan yang digunakan.
CheckPointColumn
string
Tidak
Nama kolom yang menyimpan titik pemeriksaan. Kolom ini juga disebut sebagai kolom titik pemeriksaan.
Jika Anda mengatur parameter CheckPoint menjadi true, Anda harus mengonfigurasi parameter ini.
PeringatanNilai dalam kolom titik pemeriksaan harus bertambah. Jika tidak, beberapa data mungkin tidak terkumpul. Nilai maksimum dalam hasil operasi kueri digunakan sebagai input untuk operasi kueri berikutnya.
CheckPointColumnType
string
Tidak
Tipe kolom titik pemeriksaan. Nilai valid: int dan time. Jika Anda mengatur parameter ini menjadi int, nilai dalam kolom titik pemeriksaan adalah tipe int64. Jika Anda mengatur parameter ini menjadi time, nilai dalam kolom titik pemeriksaan dapat berupa tipe waktu yang didukung oleh PostgreSQL.
Jika Anda mengatur parameter CheckPoint menjadi true, Anda harus mengonfigurasi parameter ini.
CheckPointStart
string
Tidak
Nilai awal kolom titik pemeriksaan.
Jika Anda mengatur parameter CheckPoint menjadi true, Anda harus mengonfigurasi parameter ini.
CheckPointSavePerPage
boolean
Tidak
Menentukan apakah akan menyimpan titik pemeriksaan setiap kali hasil kueri dibagi halaman. Nilai valid:
true: menyimpan titik pemeriksaan setiap kali hasil kueri dibagi halaman.
false: menyimpan titik pemeriksaan setiap kali hasil kueri disinkronkan.
IntervalMs
int
Ya
Interval sinkronisasi. Satuan: milidetik.
Create indexes dan preview data. Lalu, klik Next. Secara default, pengindeksan teks lengkap diaktifkan di Layanan Log Sederhana. Anda juga dapat secara manual membuat indeks bidang untuk log yang dikumpulkan atau klik Automatic Index Generation. Lalu, Layanan Log Sederhana menghasilkan indeks bidang. Untuk informasi lebih lanjut, lihat Buat Indeks.
PentingJika Anda ingin menanyakan semua bidang dalam log, kami sarankan Anda menggunakan indeks teks lengkap. Jika Anda hanya ingin menanyakan bidang tertentu, kami sarankan Anda menggunakan indeks bidang. Ini membantu mengurangi lalu lintas indeks. Jika Anda ingin menganalisis bidang, Anda harus membuat indeks bidang. Anda harus menyertakan pernyataan SELECT dalam pernyataan kueri Anda untuk analisis.
Klik Log Query. Anda akan dialihkan ke halaman kueri dan analisis Logstore Anda.
Anda harus menunggu sekitar 1 menit agar indeks berlaku. Lalu, Anda dapat melihat log yang dikumpulkan di tab Raw Logs. Untuk informasi lebih lanjut, lihat Panduan Kueri dan Analisis Log.
Ubah konfigurasi Logtail di server Logtail
Jika Anda tidak memasukkan informasi nyata untuk parameter seperti Address, User, dan Password di Plug-in Config saat Anda membuat konfigurasi Logtail, Anda dapat mengubah parameter setelah konfigurasi Logtail dikirimkan ke server Logtail.
Linux
Masuk ke server Logtail.
Temukan kata kunci service_pgsql di file /usr/local/ilogtail/user_log_config.json dan ubah parameter seperti Address, User, dan Password.
Jalankan perintah berikut untuk memulai ulang Logtail:
sudo /etc/init.d/ilogtaild stop; sudo /etc/init.d/ilogtaild start
Windows
Masuk ke server Logtail.
Temukan kata kunci service_pgsql dalam file C:\Program Files\Alibaba\Logtail\user_log_config.json, dan ubah parameter seperti Address, User, dan Password.
Lokasi file berbeda antara sistem operasi Windows 64-bit dan Windows 32-bit. Untuk informasi lebih lanjut, lihat File Konfigurasi dan File Rekaman Logtail.
Mulai ulang Logtail.
Pilih Start > Control Panel > Administrative Tools > Services.
Dalam kotak dialog Services, pilih layanan yang sesuai.
Untuk Logtail V0.x.x.x, pilih LogtailWorker.
Untuk Logtail V1.0.0.0 atau yang lebih baru, pilih LogtailDaemon.
Klik kanan dan pilih tindakan yang diinginkan, seperti Start, Stop, atau Restart.
Pemecahan Masalah
Jika tidak ada data yang ditampilkan di halaman pratinjau atau halaman kueri setelah log dikumpulkan menggunakan Logtail, Anda dapat menyelesaikan kesalahan berdasarkan petunjuk yang diberikan di Apa yang harus saya lakukan jika terjadi kesalahan saat saya menggunakan Logtail untuk mengumpulkan log?
Tabel database sampel dan log sampel
Bagian ini menyediakan tabel database sampel dari database PostgreSQL dan log sampel yang dikumpulkan oleh Logtail.
Tabel Database Sampel
// 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);Log Sampel
