Configura el tamaño de retención de almacenamiento en Prometheus con GitLab y evita llenar el disco

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Prometheus, el sistema de monitorización y alertas de código abierto, permite ajustar el tiempo y tamaño de retención de sus datos locales mediante flags personalizados. Esta capacidad es especialmente útil para optimizar el uso del almacenamiento en entornos con recursos limitados o requisitos específicos de retención de datos.

Parámetros de retención de almacenamiento en Prometheus

Prometheus dispone de dos flags clave para configurar la retención de datos en disco:

  • storage.tsdb.retention.time: define el tiempo máximo que se conservarán los datos. El valor predeterminado es 15 días. Si se establece explícitamente, anula cualquier configuración anterior de storage.tsdb.retention.
  • storage.tsdb.retention.size (experimental): especifica el tamaño máximo (en bytes) de los bloques de almacenamiento que se deben conservar. Los datos más antiguos se eliminan primero cuando se alcanza este límite. Por defecto está deshabilitado (0). Soporta unidades como B, KB, MB, GB, TB, PB, EB (por ejemplo, 512MB).

¿Por qué es importante configurar esto?

Prometheus almacena sus datos en el directorio:

/var/opt/gitlab/prometheus

Si este directorio se llena, Prometheus puede dejar de funcionar correctamente, afectando a la recolección de métricas y alertas. Para evitar que esto ocurra, es fundamental establecer límites tanto por tiempo como por tamaño en la retención de datos.

Cómo configurar la retención en GitLab

Para personalizar estos parámetros en una instancia de GitLab que utiliza Prometheus, sigue los siguientes pasos:

  1. Edita el archivo de configuración:
    Abre /etc/gitlab/gitlab.rb y agrega o modifica la sección correspondiente a Prometheus con los parámetros deseados:

    prometheus['flags'] = {
    'storage.tsdb.path' => "/var/opt/gitlab/prometheus/data",
    'storage.tsdb.retention.time' => "7d",
    'storage.tsdb.retention.size' => "2GB",
    'config.file' => "/var/opt/gitlab/prometheus/prometheus.yml"
    }
  2. Reconfigura GitLab:
    Aplica los cambios ejecutando:

    sudo gitlab-ctl reconfigure

Otra solución alternativa

Si prefieres una configuración más simple y directa, también puedes establecer solo el parámetro de retención por tiempo (por ejemplo, 1 día) sin necesidad de definir ruta ni archivo de configuración, como en el siguiente ejemplo:

prometheus['flags'] = {
# 'storage.tsdb.path' => "/var/opt/gitlab/prometheus/data",
'storage.tsdb.retention.time' => "1d",
# 'config.file' => "/var/opt/gitlab/prometheus/prometheus.yml"
}

Esta configuración también es válida y funcional. Establecer un tiempo de retención más corto puede ser una solución eficaz para evitar que el disco se llene, especialmente en entornos donde se puede tolerar una pérdida frecuente de métricas históricas.

Conclusión

Si el disco donde Prometheus almacena sus datos comienza a llenarse (/var/opt/gitlab/prometheus), existen dos soluciones efectivas:

  • Limitar el tiempo y tamaño de retención de datos mediante las flags storage.tsdb.retention.time y storage.tsdb.retention.size.
  • Reducir exclusivamente el tiempo de retención, como en el ejemplo anterior, para minimizar el uso de disco sin mayor complejidad.

Ambas soluciones ayudan a mantener el sistema de monitorización funcionando correctamente y a evitar interrupciones por falta de espacio.

Nota: El parámetro storage.tsdb.retention.size es experimental y podría modificarse en futuras versiones de Prometheus. Se recomienda revisar la documentación oficial al actualizar.

Binario 0
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.