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.ymldesde 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.ymlen/etc/prometheusejecutando:
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.