PostgreSQL

La integración de PostgreSQL recopila métricas de uso de bases de datos, como el tamaño de las bases de datos y la cantidad de backends o de operaciones. 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 sobre PostgreSQL, consulta la documentación de PostgreSQL.

Requisitos

Para recopilar los datos de telemetría de PostgreSQL, debes instalar el Agente de operaciones:

  • Para las métricas, instala la versión 2.21.0 o una posterior.
  • 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 la 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

Sigue la guía para configurar el Agente de operaciones, agrega los elementos necesarios para recopilar los datos de 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 los datos de telemetría de PostgreSQL:

# Configures Ops Agent to collect telemetry from the app. You must restart the agent for the configuration to take effect.

set -e

# Check if the file exists
if [ ! -f /etc/google-cloud-ops-agent/config.yaml ]; then
  # Create the file if it doesn't exist.
  sudo mkdir -p /etc/google-cloud-ops-agent
  sudo touch /etc/google-cloud-ops-agent/config.yaml
fi

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    postgresql:
      type: postgresql
      username: postgres
      password: abc123
      # To use the googlesecretmanager provider to replace plaintext passwords, refer to the example below.
      # password: ${googlesecretmanager:projects/<project-id>/secrets/<secret-id>/versions/<version-id>}
      insecure: true
      endpoint: localhost:5432
  service:
    pipelines:
      postgresql:
        receivers:
        - postgresql
logging:
  receivers:
    postgresql_general:
      type: postgresql_general
  service:
    pipelines:
      postgresql:
        receivers:
          - postgresql_general
EOF

Para que estos cambios se apliquen, debes reiniciar el Agente de operaciones:

Linux

  1. Para reiniciar el agente, ejecuta el siguiente comando en la instancia:
    sudo systemctl restart google-cloud-ops-agent
    
  2. Para confirmar que el Agente se haya reiniciado, ejecuta el siguiente comando y verifica que los componentes “Agente de métricas” y “Agente de Logging” se hayan iniciado:
    sudo systemctl status "google-cloud-ops-agent*"
    

Windows

  1. Conéctate a la instancia a través de RDP o una herramienta similar y accede a Windows.
  2. Haz clic con el botón derecho en el ícono de PowerShell y selecciona Ejecutar como administrador para abrir una terminal de PowerShell con privilegios de administrador.
  3. Para reiniciar el Agente, ejecuta el siguiente comando de PowerShell:
    Restart-Service google-cloud-ops-agent -Force
    
  4. Para confirmar que el agente se haya reiniciado, ejecuta el siguiente comando y verifica que los componentes “Agente de métricas” y “Agente de Logging” se hayan iniciado:
    Get-Service google-cloud-ops-agent*
    

Configura la recopilación de registros

Para transferir registros desde PostgreSQL, debes crear un receptor de los registros que PostgreSQL produce y, luego, crear una canalización destinada al receptor nuevo.

Especifica los siguientes campos y configura un receptor para los registros postgresql_general:

Campo Predeterminado Descripción
exclude_paths Es 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] Es una lista de rutas de acceso del sistema de archivos que se leerán con la visualización de cada archivo. Se puede usar un comodín (*) en las rutas de acceso.
record_log_file_path false Si se establece en true, la ruta de acceso 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 al archivo del que se obtuvo el registro.
type Este valor debe ser postgresql_general.
wildcard_refresh_interval 60s Es el intervalo en el que se actualizan las rutas de acceso a los archivos comodín en include_paths. Se proporciona como una duración de tiempo, 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?

El logName se deriva de los IDs del receptor especificados en la configuración. Los campos detallados en LogEntry son los siguientes.

Los registros postgresql_general contienen los siguientes campos en LogEntry:

Campo Tipo Descripción
jsonPayload.database cadena Es el nombre de la base de datos de la acción que se registra cuando corresponde.
jsonPayload.level cadena Es la gravedad del registro o clase del tipo de interacción de la base de datos para algunos registros.
jsonPayload.message cadena Es el registro de la acción de la base de datos.
jsonPayload.tid número Es el ID del subproceso en el que se originó el registro.
jsonPayload.user cadena Es el usuario autenticado para la acción que se registra cuando corresponde.
severity cadena (LogSeverity) Es el nivel de entrada de registro (traducido).

Configura la recopilación de métricas

Para transferir métricas desde PostgreSQL, debes crear un receptor de las métricas que PostgreSQL produce y, luego, crear una canalización destinada al receptor nuevo.

Este receptor no admite el uso de varias instancias en la configuración, por ejemplo, para supervisar varios extremos. Todas estas instancias escriben en las mismas series temporales, y Cloud Monitoring no tiene forma de distinguirlas.

Para configurar un receptor destinado a las métricas de postgresql, especifica los siguientes campos:

Campo Predeterminado Descripción
ca_file Es la ruta de acceso al certificado de la AC. Como cliente, esto verifica el certificado del servidor. Si está vacío, el receptor usa la AC raíz del sistema.
cert_file Es la ruta de acceso al certificado TLS que se usará para las conexiones que requiere mTLS.
collection_interval 60s Es un valor de duración de tiempo, como 30s o 5m.
endpoint /var/run/postgresql/.s.PGSQL.5432 Es la ruta de acceso al socket hostname:port o al socket Unix que empieza con / y que se usa para conectarse al servidor de PostgreSQL.
insecure true Determina si se debe usar o no una conexión TLS segura. Si se establece en false, se habilita TLS.
insecure_skip_verify false Determina si se debe omitir o no la verificación del certificado. Si insecure se establece en true, el valor insecure_skip_verify no se usa.
key_file Es la ruta de acceso a la clave TLS que se usará para las conexiones que requiere mTLS.
password Es la contraseña que se usa para conectarse al servidor.
type Este valor debe ser postgresql.
username Es el nombre de usuario que se usa 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 de PostgreSQL.

Tipo de métrica
Categoría, tipo
Recursos supervisados
Etiquetas
workload.googleapis.com/postgresql.backends
GAUGEINT64
gce_instance
database
workload.googleapis.com/postgresql.bgwriter.buffers.allocated
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/postgresql.bgwriter.buffers.writes
CUMULATIVEINT64
gce_instance
source
workload.googleapis.com/postgresql.bgwriter.checkpoint.count
CUMULATIVEINT64
gce_instance
type
workload.googleapis.com/postgresql.bgwriter.duration
CUMULATIVEINT64
gce_instance
type
workload.googleapis.com/postgresql.bgwriter.maxwritten
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/postgresql.blocks_read
CUMULATIVEINT64
gce_instance
database
source
table
workload.googleapis.com/postgresql.commits
CUMULATIVEINT64
gce_instance
database
workload.googleapis.com/postgresql.connection.max
GAUGEINT64
gce_instance
 
workload.googleapis.com/postgresql.database.count
GAUGEINT64
gce_instance
 
workload.googleapis.com/postgresql.db_size
GAUGEINT64
gce_instance
database
workload.googleapis.com/postgresql.index.scans
CUMULATIVEINT64
gce_instance
database
index
table
workload.googleapis.com/postgresql.index.size
GAUGEINT64
gce_instance
database
index
table
workload.googleapis.com/postgresql.operations
CUMULATIVEINT64
gce_instance
database
operation
table
workload.googleapis.com/postgresql.replication.data_delay
GAUGEINT64
gce_instance
replication_client
workload.googleapis.com/postgresql.rollbacks
CUMULATIVEINT64
gce_instance
database
workload.googleapis.com/postgresql.rows
GAUGEINT64
gce_instance
database
state
table
workload.googleapis.com/postgresql.table.count
GAUGEINT64
gce_instance
database
workload.googleapis.com/postgresql.table.size
GAUGEINT64
gce_instance
database
table
workload.googleapis.com/postgresql.table.vacuum.count
CUMULATIVEINT64
gce_instance
database
table
workload.googleapis.com/postgresql.wal.age
GAUGEINT64
gce_instance
 
workload.googleapis.com/postgresql.wal.lag
GAUGEINT64
gce_instance
operation
replication_client

Verifica la configuración

En esta sección, se describe cómo debes verificar que hayas configurado de forma correcta el receptor de PostgreSQL. El Agente de operaciones puede tardar uno o dos minutos en empezar a recopilar los datos de telemetría.

Para verificar que los registros de PostgreSQL se envíen a Cloud Logging, haz lo siguiente:

  1. En la consola de Google Cloud , accede a la página Explorador de registros:

    Acceder al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. Ingresa la siguiente consulta en el editor y, luego, haz clic en Ejecutar consulta:
    resource.type="gce_instance"
    log_id("postgresql_general")
    

Para verificar que las métricas de PostgreSQL se envíen a Cloud Monitoring, haz lo siguiente:

  1. En la consola de Google Cloud , accede a la página  Explorador de métricas:

    Acceder al Explorador de métricas

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre es  MQL o  PromQL.
  3. Verifica que MQL esté seleccionado en el botón de activación Lenguaje. El botón de activación de lenguaje se encuentra en la misma barra de herramientas que permite dar formato a la consulta.
  4. Ingresa la siguiente consulta en el editor y, luego, haz clic en Ejecutar consulta:
    fetch gce_instance
    | metric 'workload.googleapis.com/postgresql.backends'
    | every 1m
    

Visualiza el panel

Para ver las métricas de PostgreSQL, debes tener configurado un gráfico o un panel. La integración de PostgreSQL incluye uno o más paneles. Todos los paneles se instalan automáticamente después de que configuras la integración y de que el Agente de operaciones empieza a recopilar datos de métricas.

También puedes obtener vistas previas estáticas de los paneles sin instalar la integración.

Para ver un panel instalado, haz lo siguiente:

  1. En la consola de Google Cloud , accede a la página Paneles :

    Acceder a Paneles

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. Selecciona la pestaña Lista de paneles y, luego, la categoría Integraciones.
  3. Haz clic en el nombre del panel que quieras ver.

Si configuraste una integración, pero el panel no se instaló, comprueba que el Agente de operaciones se esté ejecutando. Cuando no hay datos de métricas para un gráfico en el panel, la instalación del panel falla. Una vez que el Agente de operaciones empieza a recopilar métricas, el panel se instalará por ti.

Para obtener una vista previa estática del panel, haz lo siguiente:

  1. En la consola de Google Cloud , accede a la página Integraciones :

    Acceder a Integraciones

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. Haz clic en el filtro de la plataforma de implementación Compute Engine.
  3. Ubica la entrada para PostgreSQL y haz clic en Ver detalles.
  4. Selecciona la pestaña Paneles para obtener una vista previa estática. Si el panel está instalado, haz clic en Ver panel para acceder a este.

Para obtener más información sobre los paneles de Cloud Monitoring, consulta Paneles y gráficos.

Para obtener más información sobre el uso de la página Integraciones, consulta Administra integraciones.

Instala políticas de alertas

Las políticas de alertas le indican a Cloud Monitoring que te notifique cuando se den condiciones que hayas especificado. La integración de PostgreSQL incluye una o más políticas de alertas para que uses. Puedes ver e instalar estas políticas de alertas en la página Integraciones en Monitoring.

Para ver las descripciones de las políticas de alertas disponibles y, luego, instalarlas, haz lo siguiente:

  1. En la consola de Google Cloud , accede a la página Integraciones :

    Acceder a Integraciones

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. Ubica la entrada para PostgreSQL y haz clic en Ver detalles.
  3. Selecciona la pestaña Alertas. En esta pestaña, se proporcionan descripciones de las políticas de alertas disponibles y una interfaz para instalarlas.
  4. Instala las políticas de alertas. Las políticas de alertas deben saber a dónde deben enviar notificaciones acerca de la activación de la alerta, por lo que requieren que proporciones información para la instalación. Para instalar políticas de alertas, haz lo siguiente:
    1. En la lista de políticas de alertas disponibles, elige las que quieras instalar.
    2. En la sección Configurar notificaciones, elige uno o más canales de notificaciones. Tienes la opción de inhabilitar el uso de los canales de notificaciones, pero si lo haces, las políticas de alertas se activarán de forma silenciosa. Puedes comprobar su estado en Monitoring, pero no recibirás notificaciones.

      Para obtener más información sobre los canales de notificaciones, consulta Administra canales de notificaciones.

    3. Haz clic en Crear políticas.

Para obtener más información sobre las políticas de alertas en Cloud Monitoring, consulta Introducción a las alertas.

Para obtener más información sobre el uso de la página Integraciones, consulta Administra integraciones.

¿Qué sigue?

Para obtener una explicación sobre cómo usar Ansible con el objetivo de instalar el Agente de operaciones, configurar una aplicación de terceros y, luego, instalar un panel de muestra, mira el video Instala el Agente de operaciones para solucionar problemas de aplicaciones de terceros.