Bu konu, Simple Log Service konsolunda SQL Server sorgu sonuçlarını toplamak için Logtail yapılandırmasının nasıl oluşturulacağını açıklar.
Önkoşullar
-
Logtail yüklü olmalıdır. Linux için 0.16.0 veya sonraki bir sürümü, Windows için ise 1.0.0.8 veya sonraki bir sürümü kullanın. Daha fazla bilgi için bkz. Linux sunucusuna Logtail yükleme veya Windows sunucusuna Logtail yükleme.
ÖnemliLogtail sunucusunun hedef veritabanına bağlanabildiğinden emin olun.
-
Logtail sunucusunun IP adresini SQL Server veritabanı izin listenize ekleyin.
Örneğin, bir ApsaraDB RDS for SQL Server örneği için izin listesini yapılandırmak amacıyla bkz. IP adresi izin listesi yapılandırma.
Özellikler
SQL Server veritabanlarından sorgu sonuçlarını toplama.
Sayfalandırma yapılandırma.
Saat dilimleri yapılandırma.
Zaman aşımları yapılandırma.
Kontrol noktası durumlarını kaydetme.
Her senkronizasyonda toplanan kayıt sayısını sınırlama.
Yordam
Simple Log Service konsoluna giriş yapın.
Import Data bölümünde, Custom Data Plug-in seçeneğini tıklayın.
Hedef proje ve Logstore'u seçin ve ardından Next düğmesini tıklayın.
-
Machine Group Configurations adımında bir makine grubu yapılandırın.
-
Senaryo ve Yükleme Ortamı parametrelerini gerektiği gibi yapılandırın.
ÖnemliBir makine grubunun mevcut olup olmadığından bağımsız olarak Senaryo ve Yükleme Ortamı parametrelerini yapılandırmanız gerekir. Parametre ayarları sonraki yapılandırmaları etkiler.
-
Applied Server Groups bölümünde bir makine grubunun görüntülendiğinden emin olun ve Next düğmesini tıklayın.
Makine grubu mevcut
Source Machine Group bölümünden bir makine grubu seçin.

Makine grubu mevcut değil
Create Machine Group seçeneğini tıklayın. Create Machine Group panelinde parametreleri yapılandırın. Makine Grubu Tanımlayıcı parametresini IP Address veya Custom Identifier olarak ayarlayabilirsiniz. Daha fazla bilgi için bkz. Özel tanımlayıcı tabanlı makine grubu oluşturma veya IP adresi tabanlı makine grubu oluşturma.
ÖnemliMakine grubunu oluşturduktan hemen sonra uygularsanız, makine grubunun heartbeat durumu FAIL olarak görünebilir. Bu sorun, makine grubunun Simple Log Service'e bağlı olmamasından kaynaklanır. Sorunu çözmek için Automatic Retry seçeneğini tıklayabilirsiniz. Sorun devam ederse bkz. Logtail'de heartbeat bağlantısı algılanmazsa ne yapmalıyım?
-
-
Configure Data Source sekmesinde, Configuration Name ve Plug-in Configuration alanlarını doldurun ve ardından Next düğmesini tıklayın.
-
inputs zorunludur ve Logtail yapılandırması için veri kaynağı ayarlarını yapılandırmak üzere kullanılır.
Önemliinputs içinde yalnızca bir tür veri kaynağı belirtebilirsiniz.
-
processors isteğe bağlıdır ve verileri ayrıştırmak için Logtail yapılandırmasındaki veri işleme ayarlarını yapılandırmak üzere kullanılır. Bir veya daha fazla işleme yöntemi belirtebilirsiniz.
Günlükleriniz yalnızca inputs ayarına göre ayrıştırılamıyorsa, veri işleme için eklentiler eklemek amacıyla Plug-in Configuration alanında işlemcileri yapılandırabilirsiniz. Örneğin; alanları ayıklama, günlük saatini ayıklama, verileri maskeleme ve günlükleri filtreleme. Daha fazla bilgi için bkz. Veri işleme için Logtail eklentileri.
{ "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 } } ] }Parametre
Tür
Zorunlu
Açıklama
type
string
Evet
Veri kaynağı türü service_mssql olarak ayarlanır.
Address
string
Hayır
SQL Server adresi. Örnek:
rm-****.sqlserver.rds.aliyuncs.com.Bu parametre yapılandırılmazsa varsayılan değer 127.0.0.1:1433 olur.
User
string
Hayır
SQL Server veritabanında oturum açmak için kullanılan kullanıcı adı.
Yapılandırılmazsa varsayılan olarak root kullanılır.
Password
string
Hayır
Kullanıcının parolası. Bu parametre varsayılan olarak boştur.
Yüksek güvenlik gereksinimleriniz varsa, kullanıcı adı ve parolayı
xxxolarak ayarlamanızı öneririz. Logtail yapılandırması yerel makinenize senkronize edildikten sonra, /usr/local/ilogtail/user_log_config.json dosyasındaki ilgili yapılandırmayı bulun ve değiştirin. Daha fazla bilgi için bkz. Yerel yapılandırmaları değiştirme.ÖnemliBu parametreyi konsolda değiştirirseniz, konsol senkronizasyon sırasında yerel yapılandırmanın üzerine yazar.
DataBase
string
Hayır
SQL Server veritabanının adı.
DialTimeOutMs
int
Hayır
SQL Server veritabanına bağlanma zaman aşımı. Birim: milisaniye (ms).
Varsayılan değer: 5000.
ReadTimeOutMs
int
Hayır
SQL Server veritabanından sorgu sonuçlarını okuma zaman aşımı. Birim: ms.
Varsayılan değer: 5000.
StateMent
string
Hayır
SELECT ifadesi.
CheckPoint parametresini true olarak ayarladığınızda, StateMent içindeki
SELECTifadesininWHEREyan tümcesi CheckPointColumn parametresiyle belirtilen sütunu içermeli ve bu sütunun değeri ? olarak ayarlanmalıdır. Örneğin: CheckPointColumn parametresini id olarak ve StateMent parametresiniSELECT * from ... where id > ?olarak ayarlayın.Limit
boolean
Hayır
LIMIT yan tümcesi ile sayfalandırmanın kullanılıp kullanılmayacağını belirtir.
Bu parametre belirtilmezse varsayılan değer false olur; bu da Limit tabanlı sayfalandırmanın kullanılmadığı anlamına gelir.
Sayfalandırma için Limit kullanmanızı öneririz. Limit parametresini true olarak ayarlarsanız, SQL sorgusu çalıştırırken Statement ifadesine otomatik olarak bir LIMIT ifadesi eklenir.
PageSize
int
Hayır
Sayfa boyutu. Limit parametresi true olarak ayarlandığında bu parametre gereklidir.
MaxSyncSize
int
Hayır
Tek seferde senkronize edilecek maksimum kayıt sayısı.
Bu parametre yapılandırılmazsa varsayılan değer 0 olur; bu da sınır olmadığını gösterir.
CheckPoint
boolean
Hayır
Artımlı toplama için kontrol noktasının kullanılıp kullanılmayacağını belirtir.
Yapılandırılmazsa varsayılan değer false olur; bu da Kontrol Noktasının kullanılmadığı anlamına gelir.
CheckPointColumn
string
Hayır
Kontrol noktası sütununun adı.
CheckPoint parametresi true olarak ayarlandığında gereklidir.
UyarıKontrol noktası sütunundaki değerler artımlı olmalıdır. Aksi takdirde, Logtail bir sonraki sorgu için başlangıç noktası olarak son sorgudaki maksimum değeri kullandığından veri kaybı oluşabilir.
CheckPointColumnType
string
Hayır
Kontrol noktası sütununun veri türü. Geçerli değerler:
intvetime. Logtail,inttürünü int64 olarak saklar.timetürü SQL Server'ındate,datetimevetimetürlerini destekler.CheckPoint parametresi true olarak ayarlandığında bu parametre gereklidir.
CheckPointStart
string
Hayır
Kontrol noktası sütununun başlangıç değeri.
CheckPoint parametresi true olarak ayarlandığında bu parametre gereklidir.
CheckPointSavePerPage
boolean
Hayır
Her sayfa toplandıktan sonra kontrol noktasının kaydedilip kaydedilmeyeceğini belirtir.
-
true: Sayfalandırma her gerçekleştiğinde bir Kontrol Noktası kaydeder.
-
false: Her senkronizasyon tamamlandıktan sonra bir Kontrol Noktası kaydeder.
IntervalMs
int
Evet
Senkronizasyon aralığı (ms cinsinden).
-
-
Dizinleri oluşturun ve verileri ön izleyin. Ardından Next düğmesini tıklayın. Simple Log Service'te varsayılan olarak tam metin dizini oluşturulması etkindir. Toplanan günlükler için manuel olarak alan dizinleri oluşturabilir veya Automatic Index Generation seçeneğini tıklayabilirsiniz. Böylece Simple Log Service alan dizinlerini oluşturur. Daha fazla bilgi için bkz. Dizin oluşturma.
ÖnemliGünlüklerdeki tüm alanları sorgulamak istiyorsanız tam metin dizinlerini kullanmanızı öneririz. Yalnızca belirli alanları sorgulamak istiyorsanız alan dizinlerini kullanmanız indeks trafiğini azaltmaya yardımcı olur. Alanları analiz etmek istiyorsanız alan dizinleri oluşturmanız gerekir. Analiz için sorgu ifadenizde bir SELECT ifadesi bulunmalıdır.
-
Logstore'un Sorgulama ve Analiz sayfasına gitmek için Query Log seçeneğini tıklayın.
Dizinlerin etkili olması için yaklaşık bir dakika beklemeniz gerekebilir. Ardından toplanan günlükleri Raw Logs sekmesinde görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Günlük sorgulama ve analizi için hızlı başlangıç.
Yerel yapılandırmayı değiştirme
Plug-in Configuration bölümünde Address, User ve Password gibi parametreler için gerçek değerleri girmediyseniz, Logtail yapılandırması teslim edildikten sonra bunları manuel olarak değiştirebilirsiniz.
Linux
Logtail'in yüklü olduğu sunucuda oturum açın.
/usr/local/ilogtail/user_log_config.json dosyasını açın, service_mssql anahtar kelimesini bulun ve Address, User ve Password gibi alanları değiştirin.
-
Logtail'i yeniden başlatmak için aşağıdaki komutu çalıştırın.
sudo /etc/init.d/ilogtaild stop; sudo /etc/init.d/ilogtaild start
Windows
Logtail'in yüklü olduğu sunucuda oturum açın.
-
C:\Program Files\Alibaba\Logtail\user_log_config.json dosyasını açın, service_mssql anahtar kelimesini bulun ve Address, User ve Password alanlarını değiştirin.
Dosya yolu 64 bit ve 32 bit Windows işletim sistemleri için farklıdır. Daha fazla bilgi için bkz. Dosya yolları.
-
Logtail'i yeniden başlatın.
seçeneklerini seçin.
-
Services iletişim kutusunda yönetmek istediğiniz hizmeti seçin.
Logtail V0.x.x.x için LogtailWorker seçeneğini seçin.
Logtail V1.0.0.0 veya sonraki sürümler için LogtailDaemon seçeneğini seçin.
Hizmete sağ tıklayın ve Start, Stop veya Restart seçeneğini belirleyin.
Sorun giderme
Günlükleri toplamak için Logtail'i yapılandırdıktan sonra ön izleme veya sorgulama sayfasında veri görünmüyorsa bkz. Logtail toplama hatalarını giderme.
Örnek veritabanı tablosu ve günlükler
Bu bölümde bir SQL Server veritabanı tablosu için örnek şema ve Logtail tarafından toplanan örnek günlükler sunulmaktadır.
-
Örnek tablo şeması
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 -
Örnek günlükler
4 10-26 11:51:13 id :4 name :banana quantity :4 5 10-26 11:51:13 id :3 name :banana quantity :3 6 10-26 11:51:12 id :2 name :banana quantity :2 7 10-26 11:51:12 id :1 name :banana quantity :1