全部产品
Search
文档中心

Simple Log Service:Kumpulkan Hasil Kueri SQL Server

更新时间:Jul 06, 2025

Topik ini menjelaskan cara membuat konfigurasi Logtail di konsol Layanan Log Sederhana untuk mengumpulkan hasil kueri SQL Server.

Prasyarat

  • Logtail V0.16.0 atau lebih baru terpasang pada Server Linux, atau Logtail V1.0.0.8 atau lebih baru terpasang pada Server Windows. Untuk informasi lebih lanjut, lihat Pasang Logtail pada Server Linux atau Pasang Logtail pada Server Windows.

    Penting

    Pastikan server tempat Logtail dipasang dapat terhubung ke database dari mana Anda ingin mengumpulkan hasil kueri SQL Server.

  • Alamat IP server tempat Logtail dipasang ditambahkan ke daftar putih database SQL Server dari mana Anda ingin mengumpulkan hasil kueri SQL Server.

    Untuk informasi lebih lanjut tentang cara mengonfigurasi daftar putih alamat IP untuk instance ApsaraDB RDS for SQL Server, 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 kolom CheckPoint dalam hasil ke server Logtail. Lain kali Logtail mengeksekusi pernyataan SELECT, Logtail menambahkan nilai kolom CheckPoint ke pernyataan SELECT tersebut. Dengan cara ini, Logtail dapat mengumpulkan data tambahan.

Penting

Jika Anda menggunakan titik pemeriksaan selama pengumpulan data, Anda harus mengurutkan nilai kolom CheckPoint dalam pernyataan SELECT. Jika tidak, mungkin terjadi duplikasi data atau masalah lainnya.

Fitur

  • Anda dapat mengumpulkan hasil kueri dari database SQL Server.

  • Anda dapat mengonfigurasi pengaturan kueri berhalaman.

  • Anda dapat menentukan zona waktu.

  • Anda dapat menentukan periode timeout.

  • Anda dapat menyimpan nilai kolom CheckPoint.

  • Anda dapat menentukan jumlah maksimum log yang dapat dikumpulkan sekaligus.

Skenario

  • Kumpulkan data tambahan berdasarkan tanda seperti ID otomatis atau titik waktu.

  • Sinkronkan data berdasarkan kondisi filter.

Prosedur

  1. Masuk ke konsol Layanan Log Sederhana.

  2. Di bagian Quick Data Import, klik Impor Data. Di kotak dialog yang muncul, temukan dan klik Custom Data Plug-in.

  3. Pilih proyek dan penyimpanan log. Lalu, klik Next.

  4. Di langkah Machine Group Configurations, konfigurasikan grup mesin.

    1. Konfigurasikan parameter Skenario dan Lingkungan Instalasi berdasarkan kebutuhan bisnis Anda.

      Penting

      Anda harus mengonfigurasi parameter Skenario dan Lingkungan Instalasi terlepas dari apakah grup mesin tersedia atau tidak. Pengaturan parameter ini memengaruhi konfigurasi selanjutnya.

    2. Pastikan grup mesin ditampilkan di bagian Applied Server Groups dan klik Next.

      Grup mesin tersedia

      Pilih grup mesin dari bagian Source Machine Group.

      image

      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.

      Penting

      Jika Anda menerapkan grup mesin segera setelah 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?

  5. Di langkah Configure Data Source, konfigurasikan parameter Configuration Name dan Plug-in Configuration. Lalu, klik Next.

      {
        "inputs": [
          {
            "type": "service_mssql",
            "detail": {
              "Address": "rm-****.sqlserver.rds.aliyuncs.com",
              "User": "****",
              "Password": "*******",
              "DataBase": "****",
              "Limit": true,
              "PageSize": 100,
              "StateMent": "select * from LogtailTestTable where id > ? 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_mssql.

      Address

      string

      Tidak

      Alamat database SQL Server. Contoh: rm-****.sqlserver.rds.aliyuncs.com.

      Nilai default: 127.0.0.1:1433.

      User

      string

      Tidak

      Nama pengguna akun yang digunakan untuk masuk ke database SQL Server.

      Nilai default: root.

      Password

      string

      Tidak

      Kata sandi akun yang digunakan untuk masuk ke database SQL Server. Parameter ini kosong secara default.

      Jika Anda memiliki persyaratan tinggi untuk keamanan data, kami sarankan Anda atur 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 pada server Logtail.

      Penting

      Jika Anda memodifikasi parameter ini di konsol Layanan Log Sederhana, pengaturan parameter dalam konfigurasi Logtail pada server Logtail akan tertimpa setelah modifikasi disinkronkan ke server.

      DataBase

      string

      Tidak

      Nama database SQL Server.

      DialTimeOutMs

      int

      Tidak

      Periode timeout untuk koneksi ke database SQL Server. Unit: milidetik.

      Nilai default: 5000.

      ReadTimeOutMs

      int

      Tidak

      Periode timeout untuk pembacaan dari database SQL Server. Unit: milidetik.

      Nilai default: 5000.

      StateMent

      string

      Tidak

      Pernyataan SELECT.

      Jika Anda mengatur parameter CheckPoint menjadi true, Anda harus menyertakan kolom yang ditentukan untuk parameter CheckPointColumn dalam klausa WHERE dari pernyataan SELECT yang Anda tentukan untuk parameter StateMent. Anda juga harus mengatur nilai untuk kolom tersebut menjadi tanda tanya (?). Sebagai contoh, jika Anda mengatur parameter CheckPointColumn menjadi id, Anda harus menentukan nilai parameter StateMent dalam format SELECT * from ... where id > ?.

      Limit

      boolean

      Tidak

      Menentukan apakah menggunakan klausa LIMIT untuk membagi halaman hasil kueri.

      Nilai default: false. Nilai ini menunjukkan bahwa tidak ada klausa LIMIT yang digunakan.

      Kami sarankan Anda mengatur parameter Limit menjadi true. Jika Anda mengatur parameter Limit menjadi true, klausa LIMIT secara otomatis ditambahkan ke pernyataan SELECT yang Anda tentukan untuk parameter StateMent saat 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 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.

      Peringatan

      Nilai dalam kolom titik pemeriksaan harus bertambah. Jika tidak, beberapa data mungkin tidak dikumpulkan. 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 date, datetime, atau time yang didukung oleh SQL Server.

      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 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. Unit: milidetik.

    • Create indexes dan preview data. Lalu, klik Next. Secara default, pengindeksan teks penuh 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.

      Penting

      Jika Anda ingin menanyakan semua bidang dalam log, kami sarankan Anda menggunakan indeks teks penuh. 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 pada server Logtail

    Jika Anda tidak memasukkan nilai aktual untuk parameter seperti Address, User, dan Password di bidang Plug-in Configuration saat Anda membuat konfigurasi Logtail, Anda dapat memodifikasi parameter tersebut setelah konfigurasi Logtail dikirimkan ke server Logtail.

    Linux

    1. Masuk ke server Logtail.

    2. Temukan kata kunci service_mssql di file /usr/local/ilogtail/user_log_config.json dan modifikasi parameter seperti Address, User, dan Password.

    3. Jalankan perintah berikut untuk memulai ulang Logtail:

      sudo /etc/init.d/ilogtaild stop; sudo /etc/init.d/ilogtaild start

    Windows

    1. Masuk ke server Logtail.

    2. Temukan kata kunci service_mssql di file C:\Program Files\Alibaba\Logtail\user_log_config.json dan modifikasi parameter seperti Address, User, dan Password.

      Jalur file berbeda antara sistem operasi Windows 64-bit dan Windows 32-bit. Untuk informasi lebih lanjut, lihat Jalur File.

    3. Jalankan perintah berikut untuk memulai ulang Logtail:

      1. Pilih Start Menu > Control Panel > Administrative Tools > Services.

      2. Di 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.

      3. Klik kanan layanan dan pilih 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 mendiagnosis kesalahan berdasarkan instruksi yang diberikan di Apa yang harus saya lakukan jika terjadi kesalahan saat saya menggunakan Logtail untuk mengumpulkan log?

    Tabel database sampel dan log sampel

    Berikut ini adalah tabel sampel dari database SQL Server dan log sampel yang dikumpulkan oleh Logtail.

    • Tabel database sampel

      IF NOT EXISTS(SELECT * FROM sys.databases WHERE name = 'LogtailTest')
      BEGIN
      CREATE DATABASE [LogtailTest]
      END
      GO
      USE [LogtailTest]
      GO
      
      IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='LogtailTestTable' and xtype='U')
      BEGIN
      CREATE TABLE LogtailTestTable (
            id INT PRIMARY KEY IDENTITY (1, 1),
            name NVARCHAR(50),
            quantity INT
          )
      END
      GO
      
      INSERT INTO LogtailTestTable (name, quantity) values('banana', 1);
      INSERT INTO LogtailTestTable (name, quantity) values('banana', 2);
      INSERT INTO LogtailTestTable (name, quantity) values('banana', 3);
      INSERT INTO LogtailTestTable (name, quantity) values('banana', 4);
      SELECT * FROM LogtailTestTable;
      GO
    • Log sampel日志样例