Instalación de Prometheus

DockerBeginner
Practicar Ahora

Introducción

Prometheus es un potente kit de herramientas de monitorización y alerta de código abierto, originalmente desarrollado en SoundCloud. Se ha convertido en un estándar para la monitorización en entornos cloud-native. Sus características principales incluyen un modelo de datos multidimensional, un lenguaje de consulta flexible (PromQL) y una variedad de opciones de visualización.

En este laboratorio, aprenderá la forma más sencilla de poner en marcha una instancia de Prometheus utilizando Docker. Este enfoque evita pasos de instalación complejos y le permite empezar a explorar Prometheus rápidamente. Descargará la imagen oficial de Docker, la ejecutará como un contenedor e interactuará con su interfaz web.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 86%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Descargar Imagen de Prometheus Docker

En este paso, descargará la imagen oficial de Docker de Prometheus desde Docker Hub. Docker Hub es un registro público de imágenes de Docker, y prom/prometheus es la imagen oficial mantenida por el equipo de Prometheus.

El comando docker pull descarga la imagen especificada a su máquina local, poniéndola a disposición para ser ejecutada como un contenedor.

Ejecute el siguiente comando en su terminal para descargar la última versión de la imagen de Prometheus:

docker pull prom/prometheus

Verá una salida que indica que las capas de la imagen se están descargando. Una vez completado, la imagen se almacenará localmente.

Salida esperada (los números de versión pueden variar):

Using default tag: latest
latest: Pulling from prom/prometheus
a4ca46b05734: Pull complete
542b5806d2b7: Pull complete
...
Digest: sha256:2c785d4e9af2224941598d142337931a5f8333065916938c6444294020b45f50
Status: Downloaded newer image for prom/prometheus
docker.io/prom/prometheus

Ejecutar Contenedor de Prometheus en el Puerto 9090

En este paso, ejecutará el contenedor de Prometheus utilizando la imagen que acaba de descargar. Usaremos el comando docker run para crear e iniciar el contenedor.

Aquí tiene un desglose de las opciones de comando que utilizaremos:

  • -d: Ejecuta el contenedor en modo "detached" (en segundo plano).
  • -p 9090:9090: Mapea el puerto 9090 de la máquina anfitriona al puerto 9090 del contenedor. La interfaz web de Prometheus se ejecuta en el puerto 9090 por defecto.
  • --name prometheus: Asigna un nombre fácil de recordar, prometheus, al contenedor para facilitar su referencia.
  • prom/prometheus: Especifica la imagen a utilizar para crear el contenedor.

Ejecute el siguiente comando para iniciar su contenedor de Prometheus:

docker run -d -p 9090:9090 --name prometheus prom/prometheus

El comando mostrará un largo ID de contenedor, confirmando que el contenedor se ha iniciado.

Para verificar que el contenedor se está ejecutando, puede usar el comando docker ps, que lista todos los contenedores en ejecución.

docker ps

Debería ver el contenedor prometheus en la lista, con su estado como "Up".

Salida esperada:

CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                    NAMES
a1b2c3d4e5f6   prom/prometheus   "/bin/prometheus --c…"   A few seconds ago   Up a few seconds   0.0.0.0:9090->9090/tcp   prometheus

Acceder a la Interfaz Web de Prometheus en localhost:9090

En este paso, accederá a la interfaz web de Prometheus, que ahora se está ejecutando y está expuesta en el puerto 9090. El entorno de LabEx proporciona una forma conveniente de acceder a los servicios web que se ejecutan dentro de la máquina virtual.

Haga clic en el botón + (Nueva pestaña) ubicado en la parte superior de la interfaz del laboratorio.

Seleccione la opción Web Service e introduzca 9090 como puerto.

Entrada del puerto del servicio web de Prometheus

Esto abrirá una nueva pestaña del navegador conectada a los servicios que se ejecutan en su entorno de laboratorio.

Dado que hemos mapeado el puerto 9090, la interfaz de usuario de Prometheus estará disponible. Debería ver el Navegador de Expresiones de Prometheus (Prometheus Expression Browser), que es la página principal. Esta interfaz le permite escribir y ejecutar consultas PromQL para explorar métricas.

Página de inicio del Navegador de Expresiones de Prometheus

La presencia de esta página confirma que su contenedor de Prometheus se está ejecutando correctamente y es accesible.

Verificar el Estado del Servicio Prometheus

En este paso, utilizará la interfaz de usuario de Prometheus para verificar el estado y la información de ejecución del propio servicio Prometheus.

En la interfaz de usuario web de Prometheus que abrió en el paso anterior, navegue a la página de estado haciendo clic en el menú Status en la barra de navegación superior y luego seleccionando Runtime & Build Information.

Esta página muestra información detallada sobre la instancia de Prometheus en ejecución, incluida su versión, fecha de compilación y la versión de Go con la que se compiló. Esta es una buena manera de confirmar que el servicio está completamente operativo.

Otra forma de comprobar el estado y las métricas del servidor Prometheus es accediendo a su endpoint /metrics. Este endpoint expone una gran cantidad de métricas internas sobre el propio Prometheus. Puede ver estos datos utilizando curl en su terminal.

curl http://localhost:9090/metrics

La salida será una larga lista de métricas en formato de exposición de Prometheus. Busque una métrica como prometheus_build_info para confirmar que el endpoint está funcionando.

Salida esperada parcial:

## HELP prometheus_build_info A metric with a constant '1' value labeled with the version, revision, branch, and goversion from which prometheus was built.
## TYPE prometheus_build_info gauge
prometheus_build_info{branch="HEAD",goversion="go1.19.5",revision="233d305681c0da67c694b01d832131d173a0552b",version="2.41.0"} 1
...

Explorar los Destinos Predeterminados en la Interfaz de Prometheus

En este paso, explorará el concepto de "objetivos" (targets) en Prometheus. Un objetivo es un endpoint del que Prometheus extrae (scrape) métricas. Por defecto, el servidor Prometheus está configurado para monitorizarse a sí mismo.

En la interfaz de usuario web de Prometheus, navegue a la página de objetivos haciendo clic en el menú Status y luego seleccionando Targets.

En esta página, verá una lista de todos los objetivos de extracción (scrape targets) configurados. Debería ver un grupo de objetivos llamado prometheus con un único endpoint: http://localhost:9090/metrics. Este es el endpoint de métricas del propio servidor Prometheus.

Interfaz de usuario de Prometheus mostrando el objetivo de auto-monitorización UP

Preste atención a la columna State. Debería mostrar UP en verde. Esto indica que Prometheus se está conectando correctamente al objetivo y extrayendo sus métricas. Si hubiera un problema al conectarse al objetivo, el estado sería "DOWN". Esta página es crucial para diagnosticar problemas con la recopilación de métricas.

Resumen

¡Felicitaciones! Ha instalado y ejecutado correctamente una instancia de Prometheus utilizando Docker. Este laboratorio le ha proporcionado una introducción práctica para comenzar con una de las herramientas de monitorización más populares de la industria.

En este laboratorio, ha aprendido a:

  • Descargar la imagen oficial de Docker de Prometheus desde Docker Hub.
  • Ejecutar un contenedor de Prometheus y mapear su puerto al host.
  • Acceder y navegar por la interfaz de usuario web de Prometheus.
  • Verificar el estado del servicio a través de la interfaz de usuario y el endpoint de métricas.
  • Explorar la configuración del objetivo de monitorización predeterminado.

Ahora tiene una comprensión fundamental de cómo desplegar Prometheus. Los próximos pasos en su camino podrían implicar aprender a crear un archivo de configuración personalizado para monitorizar otras aplicaciones y servicios.