
Aprenderemos los primeros conceptos: mensaje de log, archivo de log, marca de tiempo, nivel de mensaje, prefijo de la línea del log, etc.
Provocaremos a propósito un error para ver, en directo, cómo se registra en el log de nuestro servidor PostgreSQL.
Y hablaremos sobre la utilidad del log del servidor y el uso que debería hacerse de él.
En esta clase, a través de 4 situaciones distintas y reales, veremos cómo influye la forma en que iniciamos el servidor PostgreSQL con el destino del log y cómo localizarlo en cada una de esas situaciones.
Se puede configurar el log para establecer su destino final con el parámetro log_destination.
En esta clase configuraremos el servidor PostgreSQL, variando esos destinos, para llegar a conocerlos en profundidad.
Y ahora que lo sabemos todo sobre el destino del log, veremos un procedimiento muy sencillo, y muy esquemático, que recordarás con facilidad cada vez que te enfrentes a la tarea de localizar el log de un servidor PostgreSQL que no hayas configurado por ti mismo.
El proceso logger es levantado en segundo plano cuando el servidor inicia y detecta que el parámetro logging_collector está habilitado.
Esto condiciona el modo y la forma en que se registran los mensajes de log y en esta clase aprenderemos todo sobre él de forma teórica y práctica.
Aprenderemos a modificar el directorio donde se aloja el log, el nombre del log y a configurar los permisos que queramos que tenga el fichero de log.
La configuración adecuada del nombre del log condiciona otros aspectos muy importantes como la capacidad de rotación de los ficheros de log así que esta clase, que a priori parece muy básica, verás lo interesante que es en realidad.
Si el log se destina al syslog del sistema (en entornos Unix), o al registro de eventos (para sistemas Windows), podemos configurar ciertas opciones que veremos en esta clase.
El log de nuestro servidor de bases de datos se puede rotar de muchas maneras posibles. Con utilidades de rotación externas por ejemplo, pero también haciendo uso de las que propociona PostgreSQL como es la rotación basada en el tiempo y la rotación basada en el tamaño.
¿Quieres saber cómo rotar los logs para que no se acumulen y, con el paso del tiempo, acaben llenando el disco?
En esta clase lo explico todo.
En esta clase vamos a ver los niveles de gravedad posibles que puede tener un mensaje de log y aprenderemos a configurar convenientemente el servidor para que registre todo aquello que nos interesa.
Como siempre, haremos numerosas pruebas para que los conceptos teóricos queden bien respaldados con los resultados prácticos.
Los mensajes de error también pueden tener varios niveles de severidad. Hasta qué nivel de error queremos registrar es algo que podemos configurar.
¡Vamos a ver cómo!
¿Qué nivel de sentencias quieres que se registren en el log? ¿Ninguna, todas, sólo sentencias DDL? ¿También las sentencias DML?
Y sobre las transacciones ¿todas, ninguna, o una fracción de ellas?
Explicaremos todas las opciones posibles y las pondremos a prueba en demostraciones prácticas.
La configuración de log más adecuada dependerá del servidor del que se trate.
Si estamos ante un servidor cuyo uso principal es el desarrollo de aplicaciones quizás sea interesante registrar resultados de depuración como parse, rewritten y plan.
En esta clase vemos cómo habilitarlos y haremos, como siempre, pruebas, pruebas, y más pruebas.
El tiempo que tardan en ejecutarse las sentencias se pueden registrar en el log.
Registrar la duración de las sentencias permiten identificar las que más tardan en ejecutarse y es una buena forma de descubrir aquellas que necesitan pasar por un proceso de optimización.
El prefijo de la línea del log es altamente configurable.
Elegir la cadena de valores adecuada proporciona mucha y muy útil información en cada uno de los mensajes del log.
Esta clase estará dedicada a ver todo aquello que podemos registrar en el log si lo configuramos convenientemente: checkpoints, conexiones y desconexiones, bloqueos, comandos de replicación, ficheros temporales, etc.
PostgreSQL brinda la posibilidad de disponer del log del servidor en formato CSV.
Esto nos da la posibilidad de cargar los mensajes de log en una tabla y, a través de consultas SQL estándar, generar informes, monitorizar para detectar errores, obtener estadísticas que nos permitan la toma de decisiones, seguir las trazas de un usuario, etc. etc. etc.
En esta clase vamos a explicarlo más profundamente y a ponerlo en práctica para que lo veas funcionar.
La solución que hemos visto en la clase anterior se puede mejorar aún más.
En esta clase veremos cómo:
Acceder al log en formato CSV a través de SQL, sin tener que cargar el log en una tabla ordinaria.
Proporcionar acceso a los usuarios para que cada uno pueda visualizar sus propias trazas registradas por el log.
PostgreSQL 15 salió el pasado 13 de octubre de 2022 con muchas mejoras y nuevas características como por ejemplo, la que nos atañe en este curso, y es que se puede elegir el formato JSON para guardar los registros del log. En esta clase te lo explico todo.
A menudo acudimos al log de PostgreSQL de forma reactiva, cuando somos conocedores de un problema en nuestro servidor y queremos saber qué mensaje o mensajes ha emitido antes de ocurrir el fallo en el sistema.
Debemos saber que el log del servidor puede servir para mucho más. Un uso proactivo del log es una herramienta estupenda si forma parte de nuestras rutinas de control y monitorización.
En este curso expongo todas las posibilidades de configuración que tiene el log y te muestro cómo sacar el máximo partido a cada una de ellas.
La configuración perfecta del log no existe, todo depende del servidor del que se trate ¿es un servidor en producción o se utiliza en entornos de desarrollo? ¿es un sistema muy ocupado? ¿sobre qué sistema operativo?..
Conocer bien todas las opciones posibles y plantearse preguntas de este tipo harán que encuentres la configuración óptima para cada caso y eso, junto con el uso proactivo que hablábamos antes, harán que el log se convierta en el gran aliado del DBA.
Echa un vistazo al temario y a los aspectos que se cubren en cada tema. Descubrirás que el log tiene muchas más posibilidades de las que pensabas.
Administración PostgreSQL: El Log del servidor.
Descubre el medio por el cual el servidor Postgres se comunica contigo y aprende todas sus opciones de configuración.