Prometheus Getting Started

Prometheus: Getting Started

Esta guía muestra cómo instalar, configurar y usar una instancia simple de Prometheus. Descargarás y ejecutarás Prometheus localmente, lo configurarás para que se monitoree a sí mismo y a una aplicación de ejemplo, luego trabajarás con consultas, reglas y gráficos para usar los datos de series temporales recopilados.

Ins

Installing and running Prometheus using binaries

Descarga la última versión de Prometheus para tu plataforma, luego extráela y ejecútala:

tar xvfz prometheus-*.tar.gz
cd prometheus-*

Configuring Prometheus to monitor itself

Prometheus recopila métricas de los “targets” mediante la recopilación de métricas a traves de endpoints Http. Dado que Prometheus expone datos sobre sí de esta manera, también se puede recopilar y monitorear su propio estado.

Aunque un servidor Prometheus que solo recopila datos sobre sí mismo no es muy útil, es un buen ejemplo inicial. Guarda la siguiente configuración básica de Prometheus en un archivo llamado prometheus.yml:

global:
  scrape_interval:     15s # Intervalo de tiempo entre obtención de datos

	# Incluye este label cuando se comunica con sistemas externos
	# (federation, remote storage, AlertManager)
  external_labels:
    monitor: 'codelab-monitor'

# Una configuración de scraping que contiene exactamente un endpoint
# desde el cual recopilar:
# En este ejemplo Prometheus mismo

scrape_configs:
	# El nombre del job es añadido como etiqueta a cualquier timeserie obtenida con esta config
  - job_name: 'prometheus'

    # Sobreescribe la config global y este job recupera los datos de los "targets" cada 5 segundos 
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:9090']

Starting Prometheus

Para iniciar Prometheus con tu archivo de configuración recién creado, cambia al directorio que contiene el binario de Prometheus y ejecuta:

# Start Prometheus.
# By default, Prometheus stores its database in ./data (flag --storage.tsdb.path).
./prometheus --config.file=prometheus.yml

Prometheus debería iniciarse. También deberías poder acceder a una página de estado sobre sí mismo en localhost:9090. Dale unos segundos para que recoja datos sobre sí mismo desde su propio endpoint HTTP de métricas.

También puedes verificar que Prometheus está sirviendo métricas sobre sí mismo navegando a su endpoint de métricas en: localhost:9090/metrics (este es el endpoint que genera sus métricas)

Installing using docker

Todos los servicios de Prometheus están disponibles como imágenes de Docker en Quay.io o Docker Hub.

Ejecutar Prometheus en Docker es tan simple como usar el comando docker run -p 9090:9090 prom/prometheus. Esto inicia Prometheus con una configuración de muestra y lo expone en el puerto 9090.

La imagen de Prometheus utiliza un volumen para almacenar las métricas reales. Para implementaciones en producción, se recomienda encarecidamente utilizar un volumen con nombre para facilitar la gestión de los datos durante las actualizaciones de Prometheus.

prometheus.yml

Para proporcionar tu propia configuración, hay varias opciones. Aquí tienes dos ejemplos:

  • Montar el archivo prometheus.yml desde el host, usando bind-mount con Docker.
docker run \
    -p 9090:9090 \
    -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
    prom/prometheus
  • O monta el directorio que contiene prometheus.yml en /etc/prometheus ejecutando:
docker run \
    -p 9090:9090 \
    -v /path/to/config:/etc/prometheus \
    prom/prometheus

Volume Prometheus data for persisting on restarts

Los datos de Prometheus se almacenan en el directorio /prometheus dentro del contenedor, por lo que los datos se borran cada vez que se reinicia el contenedor. Para conservar tus datos, necesitas configurar almacenamiento persistente (o montajes de enlace) para tu contenedor.

Ejecuta el contenedor de Prometheus con almacenamiento persistente:

# Create persistent volume for your data
docker volume create prometheus-data
# Start Prometheus container
docker run \
    -p 9090:9090 \
    -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
    -v prometheus-data:/prometheus \
    prom/prometheus

Custom image

Para evitar la gestión de un archivo en el host y montarlo como un enlace, la configuración puede incorporarse en la imagen de Docker. Esto es útil si la configuración en sí es bastante estática y es la misma en todos los entornos.

Para hacer esto, crea un nuevo directorio con una configuración de Prometheus y un Dockerfile como este:

FROM prom/prometheus
ADD prometheus.yml /etc/prometheus/

Now build and run it:

docker build -t my-prometheus .
docker run -p 9090:9090 my-prometheus

Una opción más avanzada es renderizar la configuración dinámicamente al iniciar el contenedor utilizando alguna herramienta o incluso tener un daemon que actualice la configuración periódicamente.