En resumenRecopila y visualiza los logs del servidor PostgreSQL (formato CSV) en ClickStack con el receiver
filelog de OTel. Incluye un conjunto de datos de demostración y un dashboard preconfigurado.Integración con PostgreSQL existente
Requisitos previos
- Instancia de ClickStack en ejecución
- Una instalación existente de PostgreSQL (versión 9.6 o posterior)
- Acceso para modificar los archivos de configuración de PostgreSQL
- Espacio suficiente en disco para los archivos de registro
Configurar el registro de PostgreSQL
PostgreSQL admite varios formatos de registro. Para el análisis estructurado con OpenTelemetry, recomendamos el formato CSV, que proporciona una salida uniforme y fácil de procesar.El archivopostgresql.conf normalmente se encuentra en:- Linux (apt/yum):
/etc/postgresql/{version}/main/postgresql.conf - macOS (Homebrew):
/usr/local/var/postgres/postgresql.confo/opt/homebrew/var/postgres/postgresql.conf - Docker: La configuración suele establecerse mediante variables de entorno o un archivo de configuración montado
postgresql.conf:Esta guía usa el formato
csvlog de PostgreSQL para un análisis estructurado fiable. Si usas los formatos stderr o jsonlog, tendrás que ajustar la configuración del OpenTelemetry Collector en consecuencia.Crear una configuración personalizada del OTel collector
ClickStack permite ampliar la configuración base de OpenTelemetry Collector montando un archivo de configuración personalizado y estableciendo una variable de entorno. La configuración personalizada se fusiona con la configuración base administrada por HyperDX mediante OpAMP.Cree un archivo llamadopostgres-logs-monitoring.yaml con la siguiente configuración:- Lee los logs CSV de PostgreSQL desde su ubicación predeterminada
- Gestiona entradas de log multilínea (los errores suelen abarcar varias líneas)
- Analiza el formato CSV con todos los campos estándar del log de PostgreSQL
- Extrae las marcas de tiempo para conservar la hora original de los logs
- Añade el atributo
source: postgresqlpara filtrar en HyperDX - Envía los logs al exporter de ClickHouse mediante un pipeline dedicado
- En la configuración personalizada solo defines nuevos receivers y pipelines
- Los processors (
memory_limiter,transform,batch) y exporters (clickhouse) ya están definidos en la configuración base de ClickStack; solo tienes que referenciarlos por nombre - El operador
csv_parserextrae todos los campos estándar del log CSV de PostgreSQL como atributos estructurados - Esta configuración usa
start_at: endpara evitar volver a ingestar logs cuando se reinicia el collector. Para hacer pruebas, cámbialo astart_at: beginningpara ver inmediatamente los logs históricos. - Ajusta la ruta
includepara que coincida con la ubicación del directorio de logs de PostgreSQL
Configurar ClickStack para cargar una configuración personalizada
Para habilitar una configuración personalizada del collector en su despliegue actual de ClickStack, debe:- Montar el archivo de configuración personalizado en
/etc/otelcol-contrib/custom.config.yaml - Establecer la variable de entorno
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - Montar el directorio de logs de PostgreSQL para que el collector pueda leerlos
Opción 1: Docker Compose
Actualice la configuración del despliegue de ClickStack:Opción 2: Docker Run (imagen todo en uno)
Si usas la imagen todo en uno con docker run:Asegúrese de que el ClickStack collector tenga los permisos adecuados para leer los archivos de registro de PostgreSQL. En producción, use montajes de solo lectura (
:ro) y siga el principio de privilegio mínimo.Verificación de logs en HyperDX
Una vez configurado, inicie sesión en HyperDX y compruebe que los logs estén fluyendo:- Vaya a la vista de búsqueda
- Configure
sourcecomo Logs - Filtre por
source:postgresqlpara ver los logs específicos de PostgreSQL - Debería ver entradas de log estructuradas con campos como
user_name,database_name,error_severity,message,query, etc.
Conjunto de datos de demostración
Crea una configuración de collector de prueba
Crea un archivo llamadopostgres-logs-demo.yaml con la siguiente configuración:Ejecuta ClickStack con la configuración de demostración
Ejecuta ClickStack con los logs de demostración y esta configuración:Verifica los logs en HyperDX
Una vez que ClickStack esté en ejecución:- Abre HyperDX e inicia sesión en tu cuenta (puede que primero tengas que crear una cuenta)
- Ve a la Search view y establece
Logscomo source - Configura el intervalo de tiempo en 2025-11-09 00:00:00 - 2025-11-12 00:00:00
Visualización de la zona horariaHyperDX muestra los timestamps en la zona horaria local de tu navegador. Los datos de demostración abarcan 2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC). Este intervalo de tiempo amplio garantiza que verás los logs de demostración independientemente de tu ubicación. Una vez que veas los logs, puedes reducir el intervalo a un período de 24 horas para obtener visualizaciones más claras.
Dashboards y visualización
la configuración del dashboard
Importar el dashboard preconfigurado
- Abre HyperDX y ve a la sección Dashboards
- Haz clic en Import Dashboard en la esquina superior derecha, dentro del menú de puntos suspensivos
- Sube el archivo
postgresql-logs-dashboard.jsony haz clic en Finish Import
Ver el dashboard
El dashboard se creará con todas las visualizaciones preconfiguradas:Para el conjunto de datos de demostración, establece el intervalo de tiempo en 2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC) (ajústalo según tu zona horaria local). El dashboard importado no tendrá un intervalo de tiempo especificado de forma predeterminada.
Solución de problemas
La configuración personalizada no se carga
No aparecen logs en HyperDX
Próximos pasos
- Configure alertas para eventos críticos (fallos de conexión, consultas lentas, picos de errores)
- Correlacione los logs con las métricas de PostgreSQL para supervisar la base de datos de forma integral
- Cree dashboards personalizados para patrones de consultas específicos de la aplicación
- Configure
log_min_duration_statementpara identificar consultas lentas según sus requisitos de rendimiento