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 la función, el usuario, el nivel y el mensaje.
Para obtener más información sobre PostgreSQL, consulta postgresql.org.
Requisitos previos
Para recopilar y transferir registros y métricas de PostgreSQL, debes instalar el agente de operaciones versión 2.9.0 o posterior.
Este receptor es compatible con las versiones 10.18 y posteriores 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 registros y métricas de tus instancias de PostgreSQL y reinicia el agente.
Configuración de ejemplo
El siguiente comando crea el archivo de configuración a fin de recopilar y transferir registros y métricas para PostgreSQL, y reiniciar el agente de operaciones en Linux.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
receivers:
postgresql_general:
type: postgresql_general
service:
pipelines:
postgresql:
receivers:
- postgresql_general
metrics:
receivers:
postgresql:
type: postgresql
collection_interval: 60s
username: usr
password: pwd
service:
pipelines:
postgresql_pipeline:
receivers:
- postgresql
EOF
sudo service google-cloud-ops-agent restart
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 los registros postgresql_general
, especifica los siguientes campos:
Campo | Predeterminada | Descripción |
---|---|---|
type |
El valor debe ser postgresql_general . |
|
include_paths |
[/var/log/postgresql/postgresql*.log, /var/lib/pgsql/data/log/postgresql*.log, /var/lib/pgsql/*/data/log/postgresql*.log] |
Los archivos de registro que se leerán. |
exclude_paths |
Los archivos de registro que se excluirán si include_paths contiene un glob o un directorio. |
¿Qué se registra?
Los logName
de los registros postgresql_general
derivan de los ID de receptor especificados en la configuración. Los campos detallados dentro de LogEntry
son los siguientes.
postgresql_general
Estos registros contienen los siguientes campos en
LogEntry
:
Campo | Tipo | Descripción |
---|---|---|
jsonPayload.tid |
número | ID de subproceso en el que se originó el registro |
jsonPayload.role |
string | Función autenticada para la acción que se registra cuando es relevante |
jsonPayload.user |
string | Usuario autenticado para la acción que se registra cuando es relevante |
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 |
severity |
string (LogSeverity ) |
Nivel de entrada de registro (traducido) |
timestamp |
string (Timestamp ) |
Hora en la que se registró la entrada |
Configura la recopilación de métricas
A fin de recopilar métricas de PostgreSQL, debes crear un receptor para las métricas de PostgreSQL y, luego, crear una canalización destinada al receptor nuevo. A fin de configurar un receptor para las métricas de PostgreSQL, especifica los siguientes campos:
Campo | Predeterminada | Descripción |
---|---|---|
type |
El valor debe ser postgresql . |
|
endpoint |
/var/run/postgresql/.s.PGSQL.5432 |
La ruta hostname:port o del socket que comienza con / se usa para conectarse al servidor postgresql . |
collection_interval |
60s |
Un valor time.Duration, como 30s o 5m . |
username |
El nombre de usuario usado para conectarse al servidor. | |
password |
La contraseña usada para conectarse al servidor. | |
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 . |
cert_file |
Ruta de acceso al certificado TLS que se usará para las conexiones requeridas por TLS. | |
key_file |
Ruta de acceso a la clave TLS que se usará para las conexiones requeridas por TLS. | |
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. |
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.commits
|
|
CUMULATIVE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.db_size
|
|
GAUGE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.rollbacks
|
|
CUMULATIVE , INT64 gce_instance |
database
|
Verifica la configuración
Puedes usar el explorador de registros y el explorador de métricas para verificar que configuraste de forma correcta el receptor de PostgreSQL. El agente de operaciones puede tardar uno o dos minutos en comenzar a recopilar los registros y las métricas.
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"
logName=("projects/PROJECT_ID/logs/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.operations'
| align rate(1m)
| every 1m