Créez une configuration Logtail dans la console Log Service pour collecter les résultats de requêtes PostgreSQL.
Prérequis
-
Logtail version 0.16.0 ou ultérieure pour Linux, ou version 1.0.0.8 ou ultérieure pour Windows, est installé sur un serveur. Pour plus d'informations, consultez les rubriques Installation de Logtail (Linux) ou Installation de Logtail (Windows).
ImportantAssurez-vous que le serveur sur lequel Logtail est installé peut se connecter à la base de données cible.
-
L'adresse IP du serveur hébergeant Logtail a été ajoutée à la liste d'autorisation de la base de données PostgreSQL.
Par exemple, pour configurer une liste d'autorisation pour une base de données RDS for PostgreSQL, consultez la rubrique Configuration d'une liste d'autorisation.
Fonctionnalités
Collecte des résultats de requêtes depuis une base de données PostgreSQL.
Pagination.
Paramètres de fuseau horaire.
Paramètres de délai d'expiration.
Persistance de l'état des points de contrôle (checkpoint).
Nombre maximal d'enregistrements collectés par exécution configurable.
Procédure
Connectez-vous à la console Simple Log Service.
Dans la section Import Data, sélectionnez Custom Data Plug-in.
Sélectionnez le projet et le Logstore cibles, puis cliquez sur Next.
-
À l'étape Machine Group Configurations, configurez un groupe de machines.
-
Définissez les paramètres Scenario et Installation Environment selon vos besoins.
ImportantVous devez configurer les paramètres Scenario et Installation Environment, qu'un groupe de machines soit disponible ou non. Ces paramètres influencent les configurations suivantes.
-
Vérifiez qu'un groupe de machines s'affiche dans la section Applied Server Groups, puis cliquez sur Next.
Groupe de machines disponible
Sélectionnez un groupe de machines dans la section Source Machine Group.

Aucun groupe de machines disponible
Cliquez sur Create Machine Group. Dans le panneau Create Machine Group, définissez les paramètres. Vous pouvez définir le paramètre Machine Group Identifier sur IP Address ou Custom Identifier. Pour plus d'informations, consultez les rubriques Création d'un groupe de machines basé sur un identifiant personnalisé ou Création d'un groupe de machines basé sur une adresse IP.
ImportantSi vous appliquez un groupe de machines immédiatement après sa création, son statut de heartbeat peut afficher FAIL. Ce problème survient car le groupe de machines n'est pas encore connecté à Simple Log Service. Pour le résoudre, cliquez sur Automatic Retry. Si le problème persiste, consultez la rubrique Que faire si aucune connexion heartbeat n'est détectée sur Logtail ?
-
-
Dans l'onglet Configure Data Source, définissez les champs Configuration Name et Plug-in Configuration, puis cliquez sur Next.
-
Le champ inputs est obligatoire ; il permet de configurer les paramètres de la source de données pour la configuration Logtail.
ImportantVous ne pouvez spécifier qu'un seul type de source de données dans le champ inputs.
-
Le champ processors est facultatif ; il sert à configurer les paramètres de traitement des données pour analyser les journaux via la configuration Logtail. Vous pouvez spécifier une ou plusieurs méthodes de traitement.
Si vos journaux ne peuvent pas être analysés uniquement avec les paramètres du champ inputs, configurez des processeurs dans le champ Plug-in Configuration afin d'ajouter des plugins de traitement des données. Par exemple, extraction de champs, extraction de l'horodatage des journaux, masquage des données et filtrage des journaux. Pour plus d'informations, consultez la rubrique Plugins Logtail pour le traitement des données.
{ "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 } } ] }Paramètre
Type
Obligatoire
Description
type
string
Oui
Type de source de données. Définissez la valeur sur service_pgsql.
Address
string
Non
Endpoint de la base de données PostgreSQL. Exemple :
pgm-****.pg.rds.aliyuncs.com.Valeur par défaut : 127.0.0.1:5432.
User
string
Non
Nom d'utilisateur de la base de données PostgreSQL.
Valeur par défaut : root.
Password
string
Non
Mot de passe associé au nom d'utilisateur spécifié. S'il n'est pas configuré, aucun mot de passe n'est utilisé.
Pour les identifiants sensibles, nous vous recommandons de définir le nom d'utilisateur et le mot de passe sur
xxx. Une fois la configuration Logtail synchronisée sur la machine locale, localisez-la dans le fichier local /usr/local/ilogtail/user_log_config.json et mettez-la à jour. Pour plus d'informations, consultez la rubrique Modification d'une configuration locale.ImportantSi vous modifiez ce paramètre dans la console, la modification écrasera la configuration locale lors de la synchronisation.
DataBase
string
Non
Nom de la base de données PostgreSQL.
DialTimeOutMs
int
Non
Délai d'expiration de la connexion à la base de données PostgreSQL. Unité : millisecondes (ms).
Valeur par défaut : 5 000 ms.
ReadTimeOutMs
int
Non
Délai d'expiration de lecture des résultats de requête depuis la base de données PostgreSQL. Unité : ms.
Valeur par défaut : 5 000 ms.
StateMent
string
Non
Instruction SELECT.
Si vous définissez le paramètre CheckPoint sur true, la clause WHERE de l'instruction SELECT dans le champ StateMent doit inclure la colonne de point de contrôle (paramètre CheckPointColumn) et définir sa valeur sur $1. Exemple : si vous définissez le paramètre CheckPointColumn sur id, définissez le champ StateMent sur
SELECT * from ... where id > $1.Limit
boolean
Non
Indique s'il faut utiliser LIMIT pour la pagination.
Valeur par défaut : false (pagination désactivée).
Nous vous recommandons d'activer la pagination. Si vous définissez le paramètre Limit sur true, une clause LIMIT est automatiquement ajoutée au champ StateMent lors de l'exécution de la requête SQL.
PageSize
int
Non
Taille de la page. Obligatoire lorsque le paramètre Limit est défini sur true.
MaxSyncSize
int
Non
Nombre maximal d'enregistrements collectés par exécution.
Valeur par défaut : 0 (aucune limite).
CheckPoint
boolean
Non
Indique s'il faut utiliser un point de contrôle.
Valeur par défaut : false.
CheckPointColumn
string
Non
Nom de la colonne de point de contrôle.
Ce paramètre est obligatoire lorsque le paramètre CheckPoint est défini sur true.
AvertissementLes valeurs de cette colonne doivent être incrémentales. Sinon, une perte de données peut survenir lors de la collecte. La valeur maximale de chaque résultat de requête est utilisée comme entrée pour la requête suivante.
CheckPointColumnType
string
Non
Type de données de la colonne de point de contrôle. Valeurs valides :
intettime. Le typeintest stocké sous forme int64. Le typetimeprend en charge les types de données temporelles PostgreSQL.Ce paramètre est obligatoire lorsque le paramètre CheckPoint est défini sur true.
CheckPointStart
string
Non
Valeur initiale du point de contrôle.
Ce paramètre est obligatoire lorsque le paramètre CheckPoint est défini sur true.
CheckPointSavePerPage
boolean
Non
Indique s'il faut enregistrer le point de contrôle après la collecte de chaque page.
-
true : enregistre le point de contrôle après chaque page.
-
false : enregistre le point de contrôle après chaque cycle de collecte.
IntervalMs
int
Oui
Intervalle de collecte. Unité : ms.
-
-
Créez des index et prévisualisez les données. Ensuite, cliquez sur Next. Par défaut, l'indexation en texte intégral est activée dans Simple Log Service. Vous pouvez également créer manuellement des index de champ pour les journaux collectés ou cliquer sur Automatic Index Generation. Simple Log Service générera alors les index de champ. Pour plus d'informations, consultez la rubrique Création d'index — Instructions de modification.
ImportantSi vous souhaitez interroger tous les champs des journaux, nous vous recommandons d'utiliser des index en texte intégral. Si vous ne souhaitez interroger que des champs spécifiques, privilégiez les index de champ afin de réduire le trafic lié aux index. Pour analyser des champs, vous devez créer des index de champ et inclure une instruction SELECT dans votre requête d'analyse.
-
Cliquez sur Query Log pour accéder à la page Query & Analysis du Logstore.
Il peut être nécessaire d'attendre environ une minute pour que les index deviennent effectifs. Vous pourrez ensuite consulter les journaux collectés dans l'onglet Raw Logs. Pour plus d'informations, consultez la rubrique Démarrage rapide pour l'interrogation et l'analyse des journaux.
Modification d'une configuration locale
Si vous n'avez pas saisi les valeurs réelles pour des paramètres tels que Address, User et Password dans le champ Plug-in Configuration, vous pouvez les modifier manuellement après l'application de la configuration Logtail au serveur.
Linux
Connectez-vous au serveur sur lequel Logtail est installé.
Ouvrez le fichier /usr/local/ilogtail/user_log_config.json, recherchez service_pgsql, puis modifiez les champs tels que Address, User et Password.
-
Exécutez la commande suivante pour redémarrer Logtail.
sudo /etc/init.d/ilogtaild stop; sudo /etc/init.d/ilogtaild start
Windows
Connectez-vous au serveur sur lequel Logtail est installé.
-
Ouvrez le fichier C:\Program Files\Alibaba\Logtail\user_log_config.json, recherchez service_pgsql, puis modifiez les champs tels que Address, User et Password.
Le chemin d'accès au fichier diffère selon que le système d'exploitation Windows est en 64 bits ou en 32 bits. Pour plus d'informations, consultez la rubrique Chemins d'accès aux fichiers.
-
Redémarrez Logtail :
Choisissez .
-
Dans la boîte de dialogue Services, sélectionnez le service à gérer.
Pour Logtail V0.x.x.x, sélectionnez LogtailWorker.
Pour Logtail V1.0.0.0 ou version ultérieure, sélectionnez LogtailDaemon.
Faites un clic droit sur le service et sélectionnez Start, Stop ou Restart.
Dépannage
Si aucune donnée n'apparaît sur la page de prévisualisation ou d'interrogation après avoir configuré Logtail pour la collecte des journaux, consultez la rubrique Résolution des échecs de collecte Logtail.
Exemple de table de base de données et de journaux
L'exemple suivant présente un schéma de table PostgreSQL type ainsi que les journaux collectés par Logtail.
-
Exemple de schéma de table
// 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); Exemple de journaux : après l'insertion des données, une requête de journal renvoie trois enregistrements dont les valeurs
idsont 14, 15 et 16 ; les valeurscountsont 1, 2 et 3 ; les valeursalarmtypesontNO_ALARM; et la valeuripest10.10.***.***.