Crear alarmas y paneles de control de supervisión de OCI personalizados de PostgreSQL mediante Container Instances

Introducción

En este tutorial se proporcionan instrucciones paso a paso para desplegar una solución de supervisión personalizada para PostgreSQL mediante una aplicación Java basada en Docker en Oracle Cloud Infrastructure (OCI). Demostraremos cómo crear alertas y paneles de control personalizados para ranuras de replicación inactivas y retraso de replicación en OCI mediante un contenedor basado en máquina virtual (VM). Si bien la configuración actual se centra en la supervisión de la demora de replicación PostgreSQL y las ranuras de replicación inactivas, el diseño es flexible y se puede ampliar fácilmente para realizar un seguimiento de las métricas de base de datos adicionales mediante la modificación del código de aplicación.

Objetivos

Tarea 1: Descarga y configuración del servicio de supervisión

  1. Descargue el archivo Postgres-monitoring-services.zip desde aquí: Postgres-monitoring-services.zip.

  2. Descomprímalo y siga las instrucciones del archivo README.md para crear y ejecutar la aplicación.

  3. Las instrucciones de creación y despliegue de Docker se incluyen en el repositorio.

    Nota: Las instrucciones para crear y transferir la imagen de Docker ya están disponibles en README.md del repositorio de proyectos.

Tarea 2: Creación de un grupo Dinámico

Los grupos dinámicos permiten a su máquina virtual de contenedor acceder a servicios de OCI como OCI Monitoring, OCI Vault y OCI Registry sin utilizar credenciales codificadas y sin almacenar credenciales en su imagen.

Utilice la siguiente información:

Nota: compartment.id es el OCID del compartimento en el que se creará la instancia de contenedor.

Tarea 3: Configuración de la red (VCN y gateway de servicio)

Para garantizar una comunicación perfecta, coloque la máquina virtual de contenedor en la misma subred privada que el sistema de base de datos PostgreSQL. Activar el acceso a los servicios de OCI mediante un gateway de servicios.

Reglas de lista de seguridad:

Asegúrese de que las siguientes reglas se agregan a la lista de seguridad de su subred privada, si aún no están presentes.

Tipo CIDR de origen Protocolo Puerto Finalidad
Ingress Private-subnet-CIDR TCP 5.432 PostgreSQL Acceso
Salida 0.0.0.0/0 Todas Todas Acceder a servicios de OCI

Tarea 4: Uso de OCI Vault para el almacenamiento seguro de contraseñas

Utilice OCI Vault para el almacenamiento seguro de contraseñas para evitar la codificación de credenciales de la base de datos.

  1. Cree un almacén y agregue un secreto que contenga la contraseña PostgreSQL.

  2. Registre el OCID de secreto de almacén.

  3. Vuelva a utilizar el secreto si ya existe.

Tarea 5: Definición de las políticas de Oracle Cloud Infrastructure Identity and Access Management

Asocie estas políticas de IAM de OCI.

Allow dynamic-group psql_monitoring_with_container_vm_dg to read vaults in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read secret-bundles in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to use metrics in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read repos in compartment <your-tenancy-id>

Tarea 6: Inicio de Container Instances

Vaya a la consola de OCI, vaya a Servicios para desarrolladores, Artefacto de contenedor, Instancias de contenedor, Crear instancia e introduzca la siguiente información:

Nota: El acceso se otorga sin credenciales a través del grupo dinámico de OCI IAM.

image

Tarea 7: Comprobación de logs en la consola de OCI

Vaya a la consola de OCI, vaya a Servicios para desarrolladores, Artefacto de contenedor, Instancias de contenedor, seleccione la instancia y haga clic en el separador Contenedores para inspeccionar los logs y el estado del tiempo de ejecución.

Tarea 8: Visualización de métricas en el explorador de métricas

Vaya a la consola de OCI, vaya a Observability & Management, Metrics Explorer e introduzca la siguiente información:

Consulta de ejemplo:

replication_lag_metric[1m]{DBSystemId = "<your-db-system-ocid>"}.mean()

Tarea 9: Configuración de un tema y suscripciones de OCI Notifications

  1. Vaya a la consola de OCI, vaya a Application Integration y haga clic en Notifications.

  2. Cree un tema. Por ejemplo, PostgresCustomMonitoringAlerts.

  3. Agregue Suscripciones (correo electrónico, webhook, etc.).

  4. Enlace este tema a las alarmas para obtener alertas en tiempo real.

Tarea 10: Configuración de alarmas de supervisión de OCI para métricas clave

image

image

Tarea 11: Creación de un panel de control personalizado

  1. Vaya a la consola de OCI, vaya a Observability & Management y haga clic en Dashboards.

  2. Haga clic en Nuevo panel de control.

  3. Agregue widgets mediante Gráfico de métricas o Generador de consultas.

  4. Introduzca la siguiente información.

    • Espacio de nombres: introduzca postgres_monitor_with_container_vm.
    • Métricas: seleccione replication_lag_metric y inactive_slot_metric.
  5. Personalizar tipos de gráficos, filtros e intervalos de tiempo.

image

Tabla de Resumen

Componente Finalidad
Grupo Dinámico Otorga acceso a OCI a la máquina virtual de contenedor
OCI Vault Almacenamiento seguro de credenciales de base de datos
OCI Registry Repositorio de imágenes de Docker de host
Agente de Control Recopila métricas PostgreSQL personalizadas
Alarmas Alertas de demora, ranuras, datos faltantes
VM de contenedor Ejecuta la herramienta de supervisión basada en Java
Panel de control Visualiza métricas en tiempo real

Aspectos destacados de la arquitectura sin servidor y resistente

Solución de problemas y problemas

Acuses de recibo

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.