Noticias
New Serverspace Centro de datos en Uzbekistán: Tashkent
Serverspace Black Friday
BS
Junio ​​24 2025
Actualizado el 24 de junio de 2025

Monitoreo de bases de datos con Prometheus Configure métricas para MySQL además PostgreSQL en entornos virtuales

Las bases de datos son el corazón de las aplicaciones y sus fallos pueden tener graves consecuencias. Las herramientas de monitorización tradicionales suelen pasar por alto problemas internos del DBMS. Prometheus es un sistema que recopila y analiza métricas en tiempo real, lo que ayuda a los SRE a prevenir y diagnosticar problemas. Esta guía le mostrará cómo configurar la monitorización para PostgreSQL además MySQL con Prometeo.

 

Prometeo: un solucionador de problemas en el mundo de las bases de datos

No sólo monitoreo, sino un detective en tiempo real:

Prometheus es un sistema de código abierto diseñado para diagnosticar sistemas distribuidos complejos. Su filosofía: «Cada métrica es una pista. Cada gráfico cuenta la historia de un problema».

Cómo trabaja el detective:

  • Modelo de tracción:
    • Prometheus recopila activamente métricas de los sistemas monitoreados.
  • Multidimensionalidad:
    • Cada métrica tiene etiquetas (base de datos, tabla, usuario).
  • PromQL:
    • Un lenguaje de consulta para investigar relaciones entre eventos.
  • Almacenamiento de series temporales:
    • Todos los datos se almacenan para el análisis post mortem.
  • Analogía del mundo real:
    • Si Zabbix es un radar policial (que rastrea la velocidad), Prometheus es vigilancia satelital, que muestra *por qué* el conductor aceleró, hacia dónde se dirigía y qué riesgos le aguardaban.

¿Por qué Prometeo? Las crudas verdades

Ventajas:

  • Diagnóstico de nivel experto:
    • Ve dentro del DBMS como un cirujano ve los órganos.
  • Investigación de causa raíz:
    • Vincula fallas de la base de datos con acciones de la aplicación.
  • Paz mental:
    • Alertas automáticas de problemas *antes* de que se vuelvan catastróficos.
  • Ecosistema de código abierto:
    • Grafana para visualización, Alertmanager para notificaciones.

Desventajas:

  • Curva de aprendizaje:
    • Requiere un conocimiento profundo de los aspectos internos del DBMS.
  • El uso de recursos:
    • El almacenamiento métrico crece como una bola de nieve.
  • Sin almacenamiento a largo plazo:
    • De forma predeterminada, conserva los datos solo durante 15 días.

Hecho duro:

  • El 68% de las empresas que utilizan Prometheus para la monitorización de bases de datos descubrieron problemas ocultos que desconocían desde hacía años.

Características únicas: por qué es un cambio radical

1. Métricas asesinas:

  • Tiempo de ejecución de la transacción con desgloses de percentiles 95 y 99.
  • Eficiencia del caché de búfer, no como un porcentaje, sino como una predicción del tiempo hasta el colapso.

2. Investigación de relaciones:

// Find users whose queries cause locks

pg_blocked_processes

* on (instance) group_left (usename)

pg_stat_activity{state="active"}

3. Análisis predictivo:

// Predict when tablespace will run out

predict_linear(pg_tablespace_size[24h], 86400 * 30)

Implementar Prometheus: no es una batalla, solo 5 minutos de trabajo

Paso 1: Instalar a través de Helm (Kubernetes):

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

helm install prometheus prometheus-community/kube-prometheus-stack

Paso 2: Configuración para servidores físicos (docker-compose):

version: '3'

services:

prometheus:

image: prom/prometheus

ports:

- "9090:9090"

volumes:

- ./prometheus.yml:/etc/prometheus/prometheus.yml

Paso 3 – Configurar `prometheus.yml` (fragmento):

scrape_configs:

- job_name: 'postgres'

static_configs:

- targets: ['postgres-host:9187']

- job_name: 'mysql'

static_configs:

- targets: ['mysql-host:9104']

Configuración de la recopilación de métricas: herramientas para obtener información detallada

Para PostgreSQL:

Instalar postgres_exporter:

docker run -d --name postgres_exporter \

-e DATA_SOURCE_NAME="postgresql://user:pass@host:5432/?sslmode=disable" \

quay.io/prometheuscommunity/postgres-exporter

Métricas clave en PromQL:

// Deadlocks

pg_deadlocks_total

// Cache efficiency

pg_stat_database_blks_hit / (pg_stat_database_blks_read + pg_stat_database_blks_hit)

Para MySQL:

Implementar mysqld_exporter:

docker run -d --name mysql_exporter \

-e DATA_SOURCE_NAME="user:pass@(host:3306)/" \

prom/mysqld-exporter

Métricas detalladas:

// Replication queue

mysql_slave_status_seconds_behind_master

// Temporary table issues

mysql_global_status_created_tmp_tables

Métricas para SRE: No solo números, sino señales de socorro

PostgreSQL¿Qué vuelve locos a los administradores?

Asesino Silencioso: pg_stat_actividad_en_espera

Qué significa:Número de consultas "atascadas".

Umbral de alerta: > 5 durante más de 2 minutos.

Bomba de tiempo: bloqueos de la base de datos pg_stat

Cómo analizar:

rate(pg_stat_database_deadlocks[5m]) > 0.1

Colapso inminente: relación de uso de caché de búfer pg

Valor crítico: 0.95 (requiere atención inmediata) RAM expansión).

MySQL:Señales de un ataque cardíaco en la base de datos

Síntoma fatal: segundos de retraso del esclavo mysql

Por qué da miedo:

  • Retraso de réplica > 30 segundos = riesgo de pérdida de datos.

Amenaza oculta: tiempo promedio de bloqueo de fila de mysql_innodb

Diagnóstico:

mysql_innodb_row_lock_time_avg > 500

- Precursor de fallo: subprocesos mysql en ejecución

Acción de emergencia:

  • Si es > 100, detenga inmediatamente las consultas de ejecución prolongada.

Asesinos universales del rendimiento:

// Transaction cannibals

rate(pg_stat_database_xact_commit[1m]) / rate(pg_stat_database_xact_rollback[1m]) < 10 // Disk apocalypse rate(node_disk_io_time_seconds_total[1m]) > 0.8

La vida después de la implementación: cómo cambia tu realidad

Antes de Prometeo:

  • La base de datos está lenta otra vez. Reiniciemos y recemos.

Después de Prometeo:

  • "La consulta del usuario `id=1347` en la tabla `orders` está bloqueando 5 transacciones.

Causa: Unión de bucle anidado sin índice. Solución: Optimice la consulta o agregue un índice.

Estadísticas del mundo real:

Equipos que utilizan Prometheus para la monitorización de DBMS:

  • Reducción del tiempo de diagnóstico en un 83%.
  • Se redujeron los incidentes P1/P0 en un 40%.
  • Se redujo la carga de trabajo del DBA en un 65%.

Prometheus no solo muestra métricas. Te convierte en un visionario que:

  • Ve lo invisible:
    • Cómo la larga consulta de un usuario podría hacer colapsar el sistema para miles de personas.
  • Predice el futuro:
    • Cuando el espacio en disco se acabe en tres semanas.
  • Entiende el pasado:
    • ¿Por qué el rendimiento cayó ayer a las 14:23?
Votar:
5 de 5
Calificación promedio: 5
Calificado por: 1
1101 CT Ámsterdam Países Bajos, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

También le podría interesar...

Utilizamos cookies para hacer que su experiencia en el Serverspace mejor. Al continuar navegando en nuestro sitio web, usted acepta nuestros
Uso de Cookies además Política de privacidad.