Instala y configura Grafana con Prometheus en la instancia EC2 de AWS Ubuntu 18.04 LTS.
Introducción
Prometheus: Prometheus es una herramienta de monitorización y alerta de eventos. Es una herramienta de código abierto creada enSoundCloud.
Grafana: Grafana es una herramienta de visualización y análisis de código abierto.
Node-Exporter: Node_Exporter es un exportador de Prometheus para métricas de hardware y sistemas operativos. La instalación de Node_Exporter es bastante sencilla, ya que viene con un único binario.
Detalles de la instalación:
En este artículo utilizaremos 2 instancias EC2 de Ubuntu 18.04 LTS. En un nodo instalaremos Prometheus y en el otro Grafana y Node_Exporter.
- Nodo1 : Prometheus, DNS:ec2-15-188-52-60.eu-west-3.compute.amazonaws.com/
- Nodo2: Grafana, Node_Exporter. DNS:ec2-15-188-50-16.eu-west-3.compute.amazonaws.com/
Node_Exporter exportará las métricas de Node2 a Prometheus en Node1, y Prometheus las raspará. Grafana se configurará con el origen de Prometheus para obtener las métricas y éstas se mostrarán en Grafana.
Este documento te ayudará con la instalación, configuración e integración de Prometheus, Grafana y Node_Exporter para visualizar las métricas en Grafana.
Requisitos previos
- Cuenta de AWS (Crea si no tienes una).
- 2 Máquinas virtuales Ubuntu 18.04 LTS o instancias EC2 (Haz clic aquí para aprender a crear una Instancia EC2).
- Acceso root a los servidores.
Nota: Si utilizas Instancias EC2, es posible que se te cobre por el uso de instancias EC2. Elimina las instancias de tu cuenta si ya no las necesitas.
¿Qué vamos a hacer?
- Instalar Prometheus
- Instalar Grafana
- Instalar Node-Exporter
- IntegrarGrafana con Prometheus
Instalar Prometheus
Instala el paquete:
La instalación de Prometheus es muy sencilla y directa. Utiliza los siguientes comandos para instalarlo
wget https://s3-eu-west-1.amazonaws.com/deb.robustperception.io/41EFC99D.gpg | sudo apt-key add –
sudo apt-get update -y
sudo apt-get install prometheus prometheus-node-exporter prometheus-pushgateway prometheus-alertmanager -y
Inicia Prometheus:
Una vez que la instalación se ha realizado con éxito, ahora puedes iniciar Prometheus con el siguiente comando.
sudo systemctl start prometheus
Activa que Prometheus se inicie al arrancar:
Para asegurarte de que Prometheus se inicia por sí mismo cuando el sistema arranca/se reinicia, habilítalo para que se inicie en el momento del arranque utilizando el siguiente comando.
sudo systemctl enable prometheus
Comprueba el estado de Prometheus:
Para asegurarte de que elPrometheus se ha iniciado comprueba su estado. Consulta la siguiente captura de pantalla para ver el aspecto de la salida.
sudo systemctl status prometheus
Accede a Prometheus:
Una vez que la instalación está hecha y el Prometheus se ha iniciado con éxito, se puede acceder a él en el puerto 9090. Puedes utilizar el DNS público de la instancia EC2 para acceder aPrometheusen el puerto9090, asegúrate de que el puerto 9090 está habilitado en los grupos de seguridad.
URL:http://IP-Of-Prometheus-Instance:9090/
Instalar Grafana
Instala el paquete:
Grafana se puede instalar con los siguientes comandos de forma muy sencilla y directa.
sudo apt-get install -yapt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O – https://packages.grafana.com/gpg.key | sudo apt-key add –
sudo add-apt-repository «deb https://packages.grafana.com/oss/deb stable main»
sudo apt-get update
sudo apt-get install grafana
sudo systemctl daemon-reload
Inicia Grafana:
Utiliza el siguiente comando para iniciar Grafana.
sudo systemctl start grafana-server
Activa el inicio de Grafana en el arranque:
Para permitir que Grafana se inicie en el arranque del sistema, utiliza el siguiente comando.
sudo systemctl enable grafana-server.service
Comprueba el estado de Grafana:
Utiliza el siguiente comando para comprobar el estado y asegurarte de que está en funcionamiento.
sudo systemctl status grafana-server
Accede a Grafana:
Una vez instalada y puesta en marcha correctamente Grafana, puedes acceder a ella en el puerto 3000. Habilita el puerto 3000 en el grupo de seguridad si estás utilizando una instancia EC2.
URL:http://IP-of-Grafana:3000/
La primera vez que accedas a Grafana, introduce admin como nombre de usuario y contraseña.
Se te pedirá que cambies tu nombre de usuario y contraseña.
Podrás ver la siguiente pantalla una vez que cambies el nombre de usuario y la contraseña y te conectes con éxito a Grafana.
Instalar Node-Exporter
Puedes descargar la versión de Node_Exporter que desees desde el siguiente enlace o utilizar los siguientes comandos para descargar node-exporter-1.0.0. Una vez descargado el archivo tar, sólo tienes que extraerlo y copiar el binario a /usr/local/bin/.
Enlace para comprobar las diferentes versiones de node_exporter:
https://prometheus.io/download/#node_exporter
Instala el paquete:
cd /tmp/
wget https://github.com/prometheus/node_exporter/releases/download/v1.0.0-rc.0/node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
tar -zxvf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
cp node_exporter-1.0.0-rc.0.linux-amd64/node_exporter /usr/local/bin/
Configura Node-Exporter:
vim /etc/systemd/system/node_exporter.service
Abre/etc/systemd/system/node_exporter.service con el comando anterior y añade la siguiente configuración en él.
Cambia el Usuario y el Grupo por el que se utilizará para iniciar el Servicio Node_Exporter. Aquí, he especificado root como Usuario y Grupo ya que utilizaré el usuario root para iniciar el servicio.
[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=root
Group=root
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
Vuelve a cargar las configuraciones de Node-Exporter:
Una vez que las configuraciones están en su lugar, necesitamos recargar esas configuraciones para que los cambios puedan seridentificado por el sistema. Utiliza el siguiente comando para recargar los cambios
systemctl daemon-reload
Inicia Node-Exporter:
Utiliza el siguiente comando para iniciar el servicio node_exporter
systemctl start node_exporter.service
Habilita Node-Exporter para que se inicie en el momento del arranque:
systemctl enable node_exporter.service
Comprueba el estado de Node-Exporter:
Para asegurarte de que el servicio se ha iniciado sólo tienes que comprobar su estado ejecutando el siguiente comando Deberías ver la salida tiene la de la siguiente imagen.
systemctl status node_exporter.service
Accede a Node-Exporter:
Node_Exporter se inicia en el puerto 9100, permite este puerto en el grupo de seguridad.
URL:http://IP-of-Node-Exporter:9100/
Integrar Grafana con Prometheus
Para raspar las métricas en Prometheus exportadas por el Node_Exporter, necesitamos añadir la IP del Node_Exporter en el archivo de configuración de Prometheus. En la siguiente captura de pantalla puedes ver que la IP del Node_Exporter se ha añadido en «job_name:grafana_node». Realiza los mismos cambios en tu archivo de configuración
vim /etc/prometheus/prometheus.yml
Reinicia Prometheus:
sudo systemctl start prometheus
Accede a Prometheus:
Accede a Prometheus en tu navegador y en el apartado de ejecutar el historial de consultas escribe la consulta «up» y ejecútala.
URL:http://IP-of-Prometheus:9090/
Una vez ejecutada la consulta puedes ver bajo la consola que, «los elementos up tienen el valor 1». Esto significa que el Prometheus ha podido raspar los valores de localhost y Node_Exporter y encuentra que estos dos elementos están up. Ésta es sólo una de las métricas que ahora tiene Prometheus y a las que se puede acceder desde Grafana.
Configura Grafana y añade Prometheus en él.
URL:http://Ip-of-Grafana:3000/
En la pantalla de bienvenida ahora puedes añadir Prometheus a Grafana en «Añadir fuente de datos». Haz clic en «Añadir fuente de datos».
Selecciona Prometheus.
Añade la URL del servidor Prometheus«http://IP-Of-Prometheus-Instance:9090/» en el campo «HTTP–> URL» y haz clic en «Guardar y probar».
Ejecuta consultas en Grafana para comprobar las métricas exportadas por Node-Exporter a Prometheus
Ahora se puede acceder a las métricas que estaban disponibles en Prometheus desde Grafana.
Ve a explorar e intenta ejecutar esos consultas.
Ejemplos:
- node_cpu_seconds_total{cpu=»0″,mode=»nice»}
- up{instance=»15.188.50.16:9100″,job=»grafana_node»}
Una vez que ejecutes las consultas en Grafana, podrás ver las métricas en formato gráfico como el de las siguientes capturas de pantalla.
Puedes probar diferentes métricas y jugar con ellas
Conclusión
En este artículo hemos visto los pasos en detalle para instalar Prometheus, Grafana y Node_Exporter, la instalación de estas herramientas es bastante sencilla y directa. También vimos cómo se puede configurar Prometheus para raspar las métricas exportadas por Node_Exporter añadiendo la IP de Node_Exporter en el archivo de configuración de Prometheus y utilizar Grafana para visualizarlas.