Icono del sitio Binario 0

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:

¿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:

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.

Salir de la versión móvil