Cómo instalar Grafana y Prometheus en Ubuntu 24.04

Grafana es una plataforma de visualización de datos de código abierto y multiplataforma desarrollada por Grafana Labs. Grafana proporciona una aplicación web interactiva de visualización de datos que incluye tablas, gráficos y alertas. Con Grafana, puedes consultar, visualizar, configurar alertas y explorar métricas, registros y trazas de TSDB. Es una potente herramienta que convierte los datos de la base de datos de series temporales (TSDB) en un gráfico y una visualización perspicaces.

En Grafana, puedes añadir los datos de tu base de datos de series temporales a través de la «Fuente de datos». Grafana admite múltiples fuentes de datos, como Prometheus, InfluxDB, PostgreSQL, Loki, Jaeger, Graphite, Google Cloud Monitoring, AWS CloudWatch, Azure Monitor y muchas más.

En este tutorial, aprenderás a instalar Grafana, Prometheus y node_exporter en servidores Ubuntu 24.04. También instalarás Nginx como proxy inverso para Grafana, integrarás node_exporter y Prometheus, y luego añadirás Prometheus como fuente de datos al panel de Grafana.

Requisitos previos

Antes de empezar, asegúrate de que tienes

  • Dos o tres servidores Ubuntu 24.04.
  • Un usuario no root con privilegios de administrador.

Instalación de Grafana en Ubuntu

Grafana es una aplicación web para la visualización de datos. Para instalar Grafana, necesitas añadir el repositorio de Grafana. En este ejemplo, también instalarás Nginx como proxy inverso para Grafana.

Instalar dependencias y añadir un repositorio

En esta sección, instalarás las dependencias, incluido Nginx, y luego añadirás el repositorio de Grafana.

En primer lugar, ejecuta el siguiente comando para instalar las dependencias para Grafana. Escribe Y para confirmar la instalación.

sudo apt install gnupg2 apt-transport-https software-properties-common wget nginx

instalar deps

Ahora añade la clave GPG y el repositorio de Grafana con el siguiente comando.

wget -q -O - https://packages.grafana.com/gpg.key > grafana.key cat grafana.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/grafana.gpg > /dev/null
echo ‘deb [signed-by=/etc/apt/trusted.gpg.d/grafana.gpg] https://packages.grafana.com/oss/deb stable main’ | sudo tee /etc/apt/sources.list.d/grafana.list

A continuación, actualiza y refresca tu índice de paquetes con el comando siguiente:

sudo apt update

añadir repo y actualizar

Instalar y configurar Grafana

Tras añadir el repositorio de Grafana, instala el paquete de Grafana con el gestor de paquetes APT. Y luego configurarás Grafana para que se ejecute en localhost con el dominio como hwdomain.io.

Para instalar Grafana, ejecuta el siguiente comando apt. Escribe Y para proceder a la instalación.

sudo apt install grafana

instalar grafana

Una vez finalizada la instalación, recarga el gestor systemd con el siguiente comando:

sudo systemctl daemon-reload

Ahora puedes iniciar y habilitar el grafana-server con el siguiente comando systemctl. A continuación, comprueba que el servicio se está ejecutando.

sudo systemctl enable --now grafana-server
sudo systemctl status grafana-server

En la siguiente salida, puedes ver que el grafana-server se está ejecutando y está habilitado.

start enable verify grafana

Con el grafana-server en ejecución, lo configurarás para que se ejecute en localhost.

Abre la configuración de Grafana /etc/grafana/grafana.ini con el editor nano.

sudo nano /etc/grafana/grafana.ini

Cambia la configuración por defecto por la siguiente. Asegúrate de cambiar la opción domain por tu nombre de dominio local para Grafana. Para este ejemplo, ejecutarás Grafana dentro del dominio hwdomain.io.

[server]

# The IP address to bind to, empty will bind to all interfaces
http_addr = localhost

# The http port  to use
http_port = 3000

# The public facing domain name used to access grafana from a browser
domain = hwdomain.io

Cuando hayas terminado, guarda el archivo y sal del editor.

Ahora ejecuta el siguiente comando para reiniciar grafana-server y aplicar tus cambios. Con esto, Grafana debería estar ejecutándose en localhost con el puerto HTTP por defecto 3000.

sudo systemctl restart grafana-server

Configurar Nginx como proxy inverso

En esta sección, crearás un nuevo bloque de servidor Nginx como proxy inverso para el grafana-server que se está ejecutando en localhost con el puerto 3000.

Crea una nueva configuración de bloque de servidor Nginx /etc/nginx/sites-available/grafana.conf con el editor nano.

sudo nano /etc/nginx/sites-available/grafana.conf

Añade la siguiente configuración para configurar Nginx como proxy inverso para Grafana. Asegúrate de cambiar la opción server_name por el nombre de tu dominio Grafana.

# this is required to proxy Grafana Live WebSocket connections.
map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}

server {
    listen      80;
    server_name hwdomain.io;

  root /usr/share/nginx/html;
  index index.html index.htm;


  access_log /var/log/nginx/grafana-access.log;
  error_log /var/log/nginx/grafana-error.log;

  location / {
    proxy_set_header Host $http_host;
    proxy_pass http://localhost:3000/;
  }

  # Proxy Grafana Live WebSocket connections.
  location /api/live {
    rewrite  ^/(.*)  /$1 break;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header Host $http_host;
    proxy_pass http://localhost:3000/;
  }
}

Guarda el archivo y sal del editor.

Ahora ejecuta el siguiente comando para activar el bloque del servidor grafana.conf y verifica tu sintaxis de Nginx. Si tu sintaxis es correcta, verás una salida test is Successful - syntax is OK.

sudo ln -s /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled/
sudo nginx -t

configuración de nginx

A continuación, ejecuta el siguiente comando systemctl para reiniciar y verificar el estado del servidor web Nginx.

sudo systemctl restart nginx
sudo systemctl status nginx

Verás que el servidor web Nginx se está ejecutando:

comprobar nginx

A continuación, visita tu nombre de dominio Grafana, como http://hwdomain.io/. Si la instalación se ha realizado correctamente, aparecerá la página de inicio de sesión de Grafana.

Inicia sesión con el usuario por defecto admin y la contraseña admin.

login graphana

Una vez iniciada la sesión, introduce la nueva contraseña para tu instalación de Grafana y haz clic en Enviar para confirmar.

cambiar contraseña

Verás el panel de control de Grafana como el siguiente:

salpicadero

Instalación y configuración de Prometheus

Prometheus es una plataforma de monitorización y alerta. Con Grafana en marcha, instalarás Prometheus en el servidor 192.168.5.16.

Instalación de Prometheus

En esta sección, instalarás Prometheus manualmente descargando el binario de Prometheus en tu sistema. Antes, también crearás un nuevo usuario del sistema y prometheus.

En primer lugar, ejecuta el siguiente comando para añadir un nuevo usuario y grupo prometheus.

sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus

Crea un nuevo directorio de datos /var/lib/prometheus y directorios de configuración /etc/prometheus.

sudo mkdir -p /var/lib/prometheus
for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done

Descarga la última versión de Prometheus para Linux con el siguiente comando.

curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest|grep browser_download_url|grep linux-amd64|cut -d ‘"’ -f 4|wget -qi -

Una vez descargado, extrae el archivo binario de Prometheus con el comando tar y entra en él.

tar xvf prometheus*.tar.gz
cd prometheus*/

Mueve el archivo binario prometheus y promtool al directorio /usr/local/bin. Y luego mueve los directorios de configuración y el archivo prometheus.yml al directorio /etc/prometheus.

sudo mv prometheus promtool /usr/local/bin/
sudo mv consoles console_libraries prometheus.yml /etc/prometheus/

Por último, ejecuta el siguiente comando para cambiar el permiso y la propiedad del directorio de configuración y datos de Prometheus al usuario prometheus.

for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done
sudo chown -R prometheus:prometheus /var/lib/prometheus/

instalar prometa

Configurar Prometheus

Una vez que hayas instalado Prometheus, asegurarás Prometheus utilizando el paquete basic_auth o la autenticación básica.

Instala el paquete apache2-utils con el siguiente comando apt.

sudo apt install apache2-utils -y

instala apache2-utils

Ahora ejecuta el siguiente comando htpasswd para generar la contraseña bcrypt para el usuario admin. Escribe tu contraseña y repítelo, y luego copia la contraseña generada.

htpasswd -nB admin

A continuación, ejecuta el siguiente comando nano para crear un nuevo archivo /etc/prometheus/web.yml.

sudo nano /etc/prometheus/web.yml

Añade la siguiente configuración y asegúrate de cambiar la contraseña bcrypt de abajo.

# basic_auth
basic_auth_users:
  admin: $2y$05$s8U/BrE5JhSO31XKSbtj8u8cPECULs3emEhlDfCB2GW1UefQ9x00C

Guarda el archivo y sal de él cuando hayas terminado.

Ahora abre la configuración por defecto de Prometheus /etc/prometheus/prometheus.yml con nano.

sudo nano /etc/prometheus/prometheus.yml

Cambia el job_name por defecto por prometheus como se indica a continuación y asegúrate de cambiar el usuario y la contraseña de basic_auth.

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    # add settings for certificate and authentication
    scheme: http
    basic_auth:
      username: "admin"
      password: "password"

    static_configs:
      # if using a valid certificate, set the same hostname in the certificate
      - targets: ["localhost:9090"]

Guarda y sal del archivo.

Por último, ejecuta el siguiente comando para cambiar la propiedad de los archivos prometheus.yml y web.yml al usuario prometheus.

sudo chown prometheus: /etc/prometheus/{prometheus.yml,web.yml}

Ejecutar Prometheus como un servicio systemd

Crea un nuevo archivo de servicio systemd /etc/systemd/system/prometheus.service con el siguiente editor nano.

sudo nano /etc/systemd/system/prometheus.service

Añade las siguientes líneas al archivo. Con esto, ejecutarás Prometheus en segundo plano como un servicio systemd y asegurarás la consola web a través del archivo web.yml.

[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/prometheus \
 --config.file=/etc/prometheus/prometheus.yml \
 --storage.tsdb.path=/var/lib/prometheus \
 --web.console.templates=/etc/prometheus/consoles \
 --web.console.libraries=/etc/prometheus/console_libraries \
 --web.listen-address=0.0.0.0:9090 \
 --web.config.file=/etc/prometheus/web.yml \

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target

Guarda el archivo y sal del editor.

Ahora ejecuta el siguiente comando para recargar el gestor systemd y aplicar tus cambios.

sudo systemctl daemon-reload

configurar prometheus

A continuación, inicia y habilita el servicio prometheus mediante el comando systemctl que aparece a continuación, y asegúrate de que el servicio se está ejecutando.

sudo systemctl enable --now prometheus
sudo systemctl status prometheus

En la siguiente salida, puedes ver que el servicio prometheus se está ejecutando y está habilitado.

comprobar prometheus

Instalación de node_exporter

Ahora que Grafana y Prometheus se están ejecutando, descargarás e instalarás node_exporter. El node_exporter te permite raspar datos para la monitorización básica del sistema.

Descarga el archivo binario node_exporter con el comando curl que aparece a continuación.

curl -s https://api.github.com/repos/prometheus/node_exporter/releases/latest| grep browser_download_url|grep linux-amd64|cut -d ‘"’ -f 4|wget -qi -

Una vez descargado, extrae el node_exporter y entra en él.

tar -xvf node_exporter*.tar.gz cd node_exporter*/

Ahora copia el archivo binario node_exporter en el directorio /usr/local/bin.

sudo cp node_exporter /usr/local/bin

Después, ejecuta el siguiente comando para crear un nuevo archivo de servicio systemd /etc/systemd/system/node_exporter.service para el node_exporter.

sudo tee /etc/systemd/system/node_exporter.service <<EOF
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=default.target
EOF

instalar exportador de nodos

Recarga el gestor systemd con lo siguiente:

sudo systemctl daemon-reload

Ahora puedes iniciar y habilitar el servicio node_exporter con el siguiente comando. Y después, comprueba el estado del servicio node_exporter.

sudo systemctl enable --now node_exporter sudo systemctl status node_exporter

Verás que el servicio node_exporter se está ejecutando y empezará a recopilar y rellenar datos. El servicio node_exporter se está ejecutando en el puerto por defecto 9100.

iniciar comprobación nodo_exportador

Integrar node_exporter en Prometheus

En esta sección, integrarás y añadirás node_exporter a Prometheus.

Abre la configuración por defecto de Prometheus /etc/prometheus/prometheus.yml.

sudo nano /etc/prometheus/prometheus.yml

Añade un nuevo job_name con el nombre node_exporter y apunta el objetivo al target como 192.168.5.16:9100.

  - job_name: "node_exporter"

    static_configs:
      - targets: ["192.168.5.100:9100"]

Guarda el archivo y sal de él cuando hayas terminado.

Ahora ejecuta el siguiente comando para reiniciar el servicio prometheus y aplicar los cambios.

sudo systemctl restart prometheus

A continuación, accede al servidor Prometheus http://192.168.5.16:9090 a través de tu navegador web y se te solicitará una autenticación básica.

Introduce tu nombre de usuario y contraseña y haz clic en Iniciar sesión.

Iniciar sesión en prometheus

Tras acceder al panel de control de Prometheus, introduce node_memory_Active_bytes en la consulta y haz clic en Ejecutar. Verás el gráfico de la memoria activa actual como el siguiente:

tablero prometheus

Por último, haz clic en Estado > Objetivos y asegúrate de que los objetivos prometheus y node_exporter están activos y en ejecución, como se muestra a continuación:

objetivos de la lista

Integrar Prometheus con Grafana como fuente de datos

Ahora que Prometheus está listo, añadirás e integrarás Promethues a Grafana como fuente de datos. A continuación, crearás un nuevo sistema de panel de control para la monitorización.

Dentro del panel de control de Grafana, haz clic en Conexiones > Fuentes de datos > Añadir fuente de datos para añadir una nueva fuente de datos en Grafana.

añadir fuente de datos

Selecciona Prometheus como fuente de datos.

prometeo

Introduce la URL de Prometheus como http://192.168.5.16:9090/ e introduce el nombre de usuario y la contraseña de tu servidor Prometheus.

añadir detalles de prometheus

Desplázate hasta el final y haz clic en Guardar y probar. Si se realiza correctamente, verás el mensaje Successfully queried the Prometheus API.

guardar y probar fuente de datos

Después de añadir Prometheus como fuente de datos, crearás un nuevo panel de control Grafana para la supervisión del sistema.

Haz clic en el menú Cuadro de mandos > Crear cuadro de mandos.

crear cuadro de mando

Selecciona Importar d ashboard para importar el dashboard.

salpicadero de importación

Visita https://grafana.com/grafana/dashboards/ y busca el dashboard adecuado. En este ejemplo, cargarás el dashboard Grafana con id 15172.

Haz clic en Cargar para importar el panel de control.

Cargar id de panel de control

Ahora selecciona el backend Prometheus y haz clic en Importar para confirmar.

selecciona prometheus como backend

Si todo va bien, se creará tu panel de control de Grafana. A continuación se muestra la captura de pantalla del dashboard Grafana con la monitorización de Prometheus y node_exporter:

panel de control

Conclusión

¡Enhorabuena! Has completado la instalación de Grafana, Prometheus y node_exporter en servidores Ubuntu 24.04. Has ejecutado Grafana con Nginx como proxy inverso, asegurado Prometheus con autenticación de contraseña, integrado node_exporter con Prometheus, añadido Prometheus como fuente de datos a Grafana e importado el panel de control de Grafana.

También te podría gustar...