La integración de PostgreSQL recopila métricas de uso de la base de datos, como el tamaño de la base de datos, la cantidad de backends o de operaciones. La integración también recopila registros de PostgreSQL y los analiza en una carga útil de JSON. Este resultado incluye campos para el rol, el usuario, el nivel y el mensaje.
Para obtener más información acerca de PostgreSQL, consulta la documentación de PostgreSQL.
Requisitos previos
Para recopilar la telemetría de PostgreSQL, debes instalar el agente de operaciones:
- Para las métricas, instala la versión 2.9.0 o una posterior. Se agregaron métricas adicionales en la versión 2.21.0.
- Para los registros, instala la versión 2.9.0 o una posterior.
Esta integración es compatible con la versión 10.18+ de PostgreSQL.
Configura tu instancia de PostgreSQL
El receptor postgresql
se conecta de forma predeterminada a un servidor postgresql
local con un socket Unix y la autenticación Unix como el usuario root
.
Configura el agente de operaciones para PostgreSQL
Mediante la guía Configura el Agente de operaciones, agrega los elementos necesarios para recopilar la telemetría de las instancias de PostgreSQL y reinicia el agente.
Configuración de ejemplo
Los siguientes comandos crean la configuración para recopilar y transferir la telemetría para PostgreSQL y reinician el agente de operaciones.
Configura la recopilación de registros
A fin de transferir registros desde PostgreSQL, debes crear receptores para los registros que produce PostgreSQL y, luego, crear una canalización para los receptores nuevos.
A fin de configurar un receptor para tus registros postgresql_general
, especifica los siguientes campos:
Campo | Predeterminada | Descripción |
---|---|---|
exclude_paths |
Una lista de patrones de ruta de acceso del sistema de archivos que se excluirán del conjunto que coincide con include_paths . |
|
include_paths |
[/var/log/postgresql/postgresql*.log, /var/lib/pgsql/data/log/postgresql*.log, /var/lib/pgsql/*/data/log/postgresql*.log] |
Una lista de rutas de acceso del sistema de archivos que se leerán mediante la visualización del final de cada archivo. Se puede usar un comodín (* ) en las rutas. |
record_log_file_path |
false |
Si se configura como true , la ruta al archivo específico desde el que se obtuvo el registro aparece en la entrada de registro de salida como el valor de la etiqueta agent.googleapis.com/log_file_path . Cuando se usa un comodín, solo se registra la ruta de acceso del archivo del que se obtuvo el registro. |
type |
El valor debe ser postgresql_general . |
|
wildcard_refresh_interval |
60s |
El intervalo en el que se actualizan las rutas de acceso de archivos comodín en include_paths. Se proporciona como una duración de tiempo que se puede analizar mediante time.ParseDuration, por ejemplo, 30s o 2m . Esta propiedad puede ser útil en el caso de una capacidad de procesamiento de registro alta en la que los archivos de registro se rotan más rápido que el intervalo predeterminado. |
¿Qué se registra?
logName
se deriva de los ID de receptor especificados en la configuración. Los campos detallados dentro de LogEntry
son los siguientes.
Los registros postgresql_general
contienen los siguientes campos en LogEntry
:
Campo | Tipo | Descripción |
---|---|---|
jsonPayload.level |
string | Gravedad del registro o tipo del tipo de interacción de la base de datos para algunos registros |
jsonPayload.message |
string | Registro de la acción de la base de datos |
jsonPayload.role |
string | Rol autenticado para la acción que se registra cuando es relevante |
jsonPayload.tid |
número | ID de subproceso en el que se originó el registro |
jsonPayload.user |
string | Usuario autenticado para la acción que se registra cuando es relevante |
severity |
string (LogSeverity ) |
Nivel de entrada de registro (traducido). |
Configura la recopilación de métricas
A fin de transferir métricas desde PostgreSQL, debes crear receptores para las métricas que produce PostgreSQL y, luego, una canalización para los receptores nuevos.
A fin de configurar un receptor para las métricas de postgresql
, especifica los siguientes campos:
Campo | Predeterminada | Descripción |
---|---|---|
ca_file |
Ruta al certificado de CA. Como cliente, esto verifica el certificado del servidor. Si está vacío, el receptor usa la CA raíz del sistema. | |
cert_file |
Ruta de acceso al certificado TLS que se usará para las conexiones requeridas por mTLS. | |
collection_interval |
60s |
Un valor time.Duration, como 30s o 5m . |
endpoint |
/var/run/postgresql/.s.PGSQL.5432 |
La ruta hostname:port o del socket que comienza con / se usa para conectarse al servidor postgresql . |
insecure |
true |
Establece si se debe usar o no una conexión TLS segura. Si se configura como false , TLS está habilitado. |
insecure_skip_verify |
false |
Establece si se debe omitir la verificación del certificado. Si insecure se configura como true , no se usa el valor insecure_skip_verify . |
key_file |
Ruta de acceso a la clave TLS que se usará para las conexiones requeridas por mTLS. | |
password |
La contraseña usada para conectarse al servidor. | |
type |
Este valor debe ser postgresql . |
|
username |
El nombre de usuario usado para conectarse al servidor. |
Qué se supervisa
En la siguiente tabla, se proporciona una lista de métricas que el agente de operaciones recopila de la instancia PostgreSQL.
Tipo de métrica | |
---|---|
Categoría, tipo Recursos supervisados |
Etiquetas |
workload.googleapis.com/postgresql.backends
|
|
GAUGE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.bgwriter.buffers.allocated
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/postgresql.bgwriter.buffers.writes
|
|
CUMULATIVE , INT64 gce_instance |
source
|
workload.googleapis.com/postgresql.bgwriter.checkpoint.count
|
|
CUMULATIVE , INT64 gce_instance |
type
|
workload.googleapis.com/postgresql.bgwriter.duration
|
|
CUMULATIVE , INT64 gce_instance |
type
|
workload.googleapis.com/postgresql.bgwriter.maxwritten
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/postgresql.blocks_read
|
|
CUMULATIVE , INT64 gce_instance |
database table source
|
workload.googleapis.com/postgresql.commits
|
|
CUMULATIVE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.connection.max
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/postgresql.database.count
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/postgresql.db_size
|
|
GAUGE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.index.scans
|
|
CUMULATIVE , INT64 gce_instance |
database table index
|
workload.googleapis.com/postgresql.index.size
|
|
GAUGE , INT64 gce_instance |
database table index
|
workload.googleapis.com/postgresql.operations
|
|
CUMULATIVE , INT64 gce_instance |
database table operation
|
workload.googleapis.com/postgresql.replication.data_delay
|
|
GAUGE , INT64 gce_instance |
replication_client
|
workload.googleapis.com/postgresql.rollbacks
|
|
CUMULATIVE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.rows
|
|
GAUGE , INT64 gce_instance |
database state table
|
workload.googleapis.com/postgresql.table.count
|
|
GAUGE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.table.size
|
|
GAUGE , INT64 gce_instance |
database table
|
workload.googleapis.com/postgresql.table.vacuum.count
|
|
CUMULATIVE , INT64 gce_instance |
database table
|
workload.googleapis.com/postgresql.wal.age
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/postgresql.wal.lag
|
|
GAUGE , INT64 gce_instance |
operation replication_client
|
Panel de muestra
Para ver tus métricas de PostgreSQL, debes tener configurado un gráfico o un panel. Cloud Monitoring proporciona una biblioteca de paneles de muestra para integraciones, que contienen gráficos preconfigurados. Para obtener información sobre la instalación de estos paneles, consulta Instala paneles de muestra.
Verifica la configuración
En esta sección, se describe cómo verificar que hayas configurado correctamente el receptor de PostgreSQL. El agente de operaciones puede tardar uno o dos minutos en comenzar a recopilar telemetría.
Para verificar que se transfieran los registros, ve a Explorador de registros y ejecuta la siguiente consulta a fin de ver los registros de PostgreSQL:
resource.type="gce_instance"
log_id("postgresql_general")
Para verificar que las métricas se transfieran, ve a Explorador de métricas y ejecuta la siguiente consulta en la pestaña MQL:
fetch gce_instance
| metric 'workload.googleapis.com/postgresql.backends'
| every 1m
¿Qué sigue?
Para obtener una explicación sobre cómo usar Ansible a fin de instalar el agente de operaciones, configurar una aplicación de terceros y, luego, instalar un panel de muestra, consulta el video Instala el agente de operaciones para solucionar problemas de apps de terceros.