En brefCollectez et visualisez les logs du serveur PostgreSQL (format CSV) dans ClickStack avec le receiver OTel
filelog. Inclut un jeu de données de démonstration et un tableau de bord préconfiguré.Intégration avec un PostgreSQL existant
Prérequis
- Une instance ClickStack opérationnelle
- Une installation PostgreSQL existante (version 9.6 ou ultérieure)
- Un accès permettant de modifier les fichiers de configuration de PostgreSQL
- Suffisamment d’espace disque pour les fichiers journaux
Configurer la journalisation de PostgreSQL
PostgreSQL prend en charge plusieurs formats de journalisation. Pour une analyse structurée avec OpenTelemetry, nous recommandons le format CSV, qui fournit une sortie cohérente et facile à analyser.Le fichierpostgresql.conf se trouve généralement à l’emplacement suivant :- Linux (apt/yum) :
/etc/postgresql/{version}/main/postgresql.conf - macOS (Homebrew) :
/usr/local/var/postgres/postgresql.confou/opt/homebrew/var/postgres/postgresql.conf - Docker : la configuration est généralement définie via des variables d’environnement ou un fichier de configuration monté
postgresql.conf :Ce guide utilise le format
csvlog de PostgreSQL pour un parsing structuré fiable. Si vous utilisez les formats stderr ou jsonlog, vous devrez ajuster la configuration du collecteur OpenTelemetry en conséquence.Créer une configuration personnalisée de l’OTel collector
ClickStack vous permet d’étendre la configuration de base de l’OpenTelemetry Collector en montant un fichier de configuration personnalisé et en définissant une variable d’environnement. Cette configuration personnalisée est fusionnée avec la configuration de base gérée par HyperDX via OpAMP.Créez un fichier nommépostgres-logs-monitoring.yaml avec la configuration suivante :- Lit les logs CSV de PostgreSQL à leur emplacement standard
- Gère les entrées de log sur plusieurs lignes (les erreurs s’étalent souvent sur plusieurs lignes)
- Analyse le format CSV avec tous les champs standard des logs PostgreSQL
- Extrait les timestamps afin de préserver l’horodatage d’origine des logs
- Ajoute l’attribut
source: postgresqlpour le filtrage dans HyperDX - Achemine les logs vers l’exporter ClickHouse via un pipeline dédié
- Vous ne définissez que de nouveaux receivers et pipelines dans la configuration personnalisée
- Les processors (
memory_limiter,transform,batch) et les exporters (clickhouse) sont déjà définis dans la configuration de base de ClickStack ; il vous suffit de les référencer par leur nom - L’operator
csv_parserextrait tous les champs standard des logs CSV PostgreSQL dans des attributs structurés - Cette configuration utilise
start_at: endpour éviter de réingérer les logs lors des redémarrages du collector. Pour les tests, remplacez-le parstart_at: beginningafin d’afficher immédiatement les logs historiques. - Ajustez le chemin
includepour qu’il corresponde à l’emplacement du répertoire des logs PostgreSQL
Configurer ClickStack pour charger une configuration personnalisée
Pour activer une configuration personnalisée du collecteur dans votre déploiement ClickStack existant, vous devez :- Monter le fichier de configuration personnalisé à l’emplacement
/etc/otelcol-contrib/custom.config.yaml - Définir la variable d’environnement
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - Monter le répertoire des logs PostgreSQL afin que le collecteur puisse les lire
Option 1 : Docker Compose
Mettez à jour la configuration de votre déploiement ClickStack :Option 2 : Docker Run (image tout-en-un)
Si vous utilisez l’image tout-en-un avecdocker run :Assurez-vous que le collecteur ClickStack dispose des autorisations nécessaires pour lire les fichiers journaux de PostgreSQL. En production, utilisez des montages en lecture seule (
:ro) et respectez le principe du moindre privilège.Vérification des logs dans HyperDX
Une fois la configuration terminée, connectez-vous à HyperDX et vérifiez que les logs sont bien ingérés :- Accédez à la vue Search
- Sélectionnez Logs comme source
- Filtrez sur
source:postgresqlpour afficher les logs spécifiques à PostgreSQL - Vous devriez voir des entrées de logs structurées avec des champs tels que
user_name,database_name,error_severity,message,query, etc.
Jeu de données de démonstration
Créer une configuration de collecteur de test
Créez un fichier nommépostgres-logs-demo.yaml avec la configuration suivante :Exécuter ClickStack avec la configuration de démonstration
Exécutez ClickStack avec les logs et la configuration de démonstration :Vérifier les logs dans HyperDX
Une fois ClickStack en cours d’exécution :- Ouvrez HyperDX et connectez-vous à votre compte (vous devrez peut-être d’abord en créer un)
- Accédez à la vue Search et définissez la source sur
Logs - Définissez la plage horaire sur 2025-11-09 00:00:00 - 2025-11-12 00:00:00
Affichage du fuseau horaireHyperDX affiche les horodatages dans le fuseau horaire local de votre navigateur. Les données de démonstration couvrent 2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC). Cette large plage horaire vous garantit de voir les logs de démonstration, quel que soit l’endroit où vous vous trouvez. Une fois les logs visibles, vous pouvez réduire la plage à une période de 24 heures pour obtenir des visualisations plus claires.
Tableaux de bord et visualisations
la configuration du tableau de bord
Importer le tableau de bord préconfiguré
- Ouvrez HyperDX et accédez à la section Tableaux de bord
- Cliquez sur Importer un tableau de bord dans le coin supérieur droit, dans le menu à points de suspension
- Téléversez le fichier
postgresql-logs-dashboard.jsonet cliquez sur Terminer l’importation
Afficher le tableau de bord
Le tableau de bord sera créé avec toutes les visualisations déjà configurées :Pour le jeu de données de démonstration, définissez la plage horaire sur 2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC) (à ajuster selon votre fuseau horaire local). Le tableau de bord importé n’aura pas de plage horaire définie par défaut.
Dépannage
La configuration personnalisée ne se charge pas
Aucun log n’apparaît dans HyperDX
Étapes suivantes
- Configurez des alertes pour les événements critiques (échecs de connexion, requêtes lentes, pics d’erreurs)
- Corrélez les logs avec les métriques PostgreSQL pour une supervision complète de la base de données
- Créez des tableaux de bord personnalisés pour les modèles de requêtes propres à votre application
- Configurez
log_min_duration_statementpour identifier les requêtes lentes en fonction de vos exigences de performance