PostgreSQL sorgu sonuçlarını toplamak için Log Service konsolunda bir Logtail yapılandırması oluşturun.
Önkoşullar
-
Bir sunucuya Linux için Logtail 0.16.0 veya sonraki bir sürüm ya da Windows için Logtail 1.0.0.8 veya sonraki bir sürüm yüklenmiştir. Daha fazla bilgi için bkz. Logtail'i yükleme (Linux) veya Logtail'i yükleme (Windows).
ÖnemliLogtail'in yüklü olduğu sunucunun hedef veritabanına bağlanabildiğinden emin olun.
-
Logtail'in yüklü olduğu sunucunun IP adresi, PostgreSQL veritabanının izin listesine eklenmiştir.
Örneğin, bir RDS for PostgreSQL veritabanı için izin listesi yapılandırmak üzere bkz. İzin listesi yapılandırma.
Özellikler
PostgreSQL veritabanından sorgu sonuçlarını toplama.
Sayfalama desteği.
Saat dilimi ayarları.
Zaman aşımı ayarları.
Checkpoint durumunun kalıcı olarak saklanması.
Her çalıştırmada toplanacak maksimum kayıt sayısının yapılandırılabilmesi.
Yordam
Simple Log Service konsoluna giriş yapın.
Import Data bölümünde Custom Data Plug-in seçeneğini belirleyin.
Hedef project ve Logstore öğelerini seçin, ardından Next düğmesine tıklayın.
-
Machine Group Configurations adımında bir makine grubu yapılandırın.
-
Scenario ve Installation Environment parametrelerini ihtiyaçlarınıza göre yapılandırın.
ÖnemliBir makine grubunun mevcut olup olmadığından bağımsız olarak Scenario ve Installation Environment 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üğmesine 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 düğmesine tıklayın. Create Machine Group panelinde parametreleri yapılandırın. Machine Group Identifier 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 hizmetine bağlanmamış olmasından kaynaklanır. Sorunu çözmek için Automatic Retry seçeneğine tıklayabilirsiniz. Sorun devam ederse bkz. Logtail'de heartbeat bağlantısı algılanmıyor ise ne yapmalıyım?
-
-
Configure Data Source sekmesinde Configuration Name ve Plug-in Configuration alanlarını ayarlayın, ardından Next düğmesine tıklayın.
-
inputs zorunludur ve Logtail yapılandırması için veri kaynağı ayarlarını yapılandırmak amacıyla 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 üzere Logtail yapılandırması için veri işleme ayarlarını yapılandırmak amacıyla kullanılır. Bir veya daha fazla işleme yöntemi belirtebilirsiniz.
Günlükleriniz yalnızca inputs ayarıyla ayrıştırılamıyorsa veri işlemek için eklentiler eklemek amacıyla Plug-in Configuration alanında processors yapılandırabilirsiniz. Örneğin; alan çıkarma, günlük zamanını çıkarma, veri maskeleme ve günlük filtreleme işlemlerini yapabilirsiniz. Daha fazla bilgi için bkz. Veri işleme için Logtail eklentileri.
{ "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 } } ] } -
-
true: Her sayfadan sonra checkpoint değerini kaydet.
-
false: Her toplama döngüsünden sonra checkpoint değerini kaydet.
-
Dizinleri oluşturun ve verileri ön izleyin. Ardından Next düğmesine tıklayın. Simple Log Service hizmetinde varsayılan olarak tam metin dizini oluşturma etkindir. Toplanan günlükler için manuel olarak alan dizinleri oluşturabilir veya Automatic Index Generation düğmesine tıklayabilirsiniz. Simple Log Service hizmeti ardından 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ı öneririz. Bu yaklaşım dizin 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 için Query & Analysis sayfasına gitmek üzere Query Log düğmesine tıklayın.
Dizinlerin etkili olması yaklaşık bir dakika sürebilir. 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ıç.
|
Parameter |
Type |
Required |
Description |
|
type |
string |
Yes |
Veri kaynağı türü. Değeri service_pgsql olarak ayarlayın. |
|
Address |
string |
No |
PostgreSQL veritabanı uç noktası. Örnek: Varsayılan değer: 127.0.0.1:5432. |
|
User |
string |
No |
PostgreSQL veritabanı kullanıcı adı. Varsayılan değer: root. |
|
Password |
string |
No |
Belirtilen kullanıcı adı için parola. Yapılandırılmazsa parola kullanılmaz. Hassas kimlik bilgileri için kullanıcı adı ve parolayı Önemli
Bu parametreyi konsolda değiştirirseniz değişiklik, senkronizasyon sırasında yerel yapılandırmanın üzerine yazılır. |
|
DataBase |
string |
No |
PostgreSQL veritabanı adı. |
|
DialTimeOutMs |
int |
No |
PostgreSQL veritabanı bağlantı zaman aşımı. Birim: milisaniye (ms). Varsayılan değer: 5.000 ms. |
|
ReadTimeOutMs |
int |
No |
PostgreSQL veritabanından sorgu sonuçlarını okuma zaman aşımı. Birim: ms. Varsayılan değer: 5.000 ms. |
|
StateMent |
string |
No |
SELECT ifadesi. CheckPoint parametresini true olarak ayarlarsanız StateMent içindeki SELECT ifadesinin WHERE yan tümcesi checkpoint sütununu (CheckPointColumn parametresi) içermeli ve değerini $1 olarak ayarlamalıdır. Örnek: CheckPointColumn parametresini id olarak ayarlarsanız StateMent parametresini |
|
Limit |
boolean |
No |
Sayfalama için LIMIT kullanımının etkinleştirilip etkinleştirilmeyeceği. Varsayılan değer: false (sayfalama devre dışı). Sayfalamayı etkinleştirmenizi öneririz. Limit parametresini true olarak ayarlarsanız SQL sorgusu yürütüldüğünde StateMent ifadesine otomatik olarak bir LIMIT yan tümcesi eklenir. |
|
PageSize |
int |
No |
Sayfa boyutu. Limit parametresi true olarak ayarlandığında gereklidir. |
|
MaxSyncSize |
int |
No |
Her çalıştırmada toplanacak maksimum kayıt sayısı. Varsayılan değer: 0 (sınır yok). |
|
CheckPoint |
boolean |
No |
Checkpoint kullanımının etkinleştirilip etkinleştirilmeyeceği. Varsayılan değer: false. |
|
CheckPointColumn |
string |
No |
Checkpoint sütun adı. CheckPoint parametresi true olarak ayarlandığında bu parametre gereklidir. Uyarı
Bu sütundaki değerler artan sırada olmalıdır. Aksi takdirde toplama sırasında veri kaybı yaşanabilir. Her sorgu sonucundaki maksimum değer, sonraki sorgu için giriş olarak kullanılır. |
|
CheckPointColumnType |
string |
No |
Checkpoint sütununun veri türü. Geçerli değerler: CheckPoint parametresi true olarak ayarlandığında bu parametre gereklidir. |
|
CheckPointStart |
string |
No |
İlk checkpoint değeri. CheckPoint parametresi true olarak ayarlandığında bu parametre gereklidir. |
|
CheckPointSavePerPage |
boolean |
No |
Her sayfa toplandıktan sonra checkpoint değerinin kaydedilip kaydedilmeyeceği. |
|
IntervalMs |
int |
Yes |
Toplama aralığı. Birim: ms. |
Yerel yapılandırmayı değiştirme
Plug-in Configuration alanında Address, User ve Password gibi parametreler için gerçek değerler girmediyseniz Logtail yapılandırması sunucuya uygulandıktan sonra bu değerleri 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_pgsql ifadesini arayın ve ardından 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_pgsql ifadesini arayın ve ardından Address, User ve Password gibi alanları 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:
yolunu izleyin.
-
Services iletişim kutusunda yönetmek istediğiniz hizmeti seçin.
Logtail V0.x.x.x sürümü için LogtailWorker seçeneğini belirleyin.
Logtail V1.0.0.0 veya sonraki bir sürüm için LogtailDaemon seçeneğini belirleyin.
Hizmete sağ tıklayın ve Start, Stop veya Restart seçeneğini belirleyin.
Sorun giderme
Günlükleri toplamak üzere Logtail'i yapılandırdıktan sonra ön izleme veya sorgu sayfasında veri görünmüyorsa bkz. Logtail toplama hatalarını giderme.
Örnek veritabanı tablosu ve günlükler
Aşağıdaki örnekte örnek bir PostgreSQL tablo şeması ve Logtail tarafından toplanan günlükler gösterilmektedir.
-
Örnek tablo şeması
// Create a table. 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) ); // Insert 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); Örnek günlükler: Verileri ekledikten sonra bir günlük sorgusu,
iddeğerleri 14, 15 ve 16 olan;countdeğerleri 1, 2 ve 3 olan;alarmtypedeğerleriNO_ALARMolan veipdeğeri10.10.***.***olan üç kayıt döndürür.