Skip to content

Instantly share code, notes, and snippets.

@Jahziel43
Last active September 30, 2025 22:17
Show Gist options
  • Select an option

  • Save Jahziel43/b7a9cf574dac47e2ba01d2c3741fb71b to your computer and use it in GitHub Desktop.

Select an option

Save Jahziel43/b7a9cf574dac47e2ba01d2c3741fb71b to your computer and use it in GitHub Desktop.

Nombre: Jahziel Amado López Angulo
Número de Control: 22211593
GitHub: Jahziel43

🧪 Práctica 3: Monitoreo IoT con InfluxDB, Prometheus y Grafana en EC2 + Tailscale

🎯 Objetivo de aprendizaje

Instalar y configurar un stack de monitoreo IoT en Ubuntu Server.
Conectar el servidor y dispositivos personales mediante Tailscale VPN.
Inyectar datos RAW simulados en InfluxDB.
Crear dashboards académicos en Grafana combinando datos de InfluxDB (IoT) y Prometheus (infraestructura).


1. Configuración de Tailscale ✅ (20%)

  • EC2 conectada a la red Tailscale con --hostname=dashboard-server.
  • Laptop y celular añadidos correctamente a la red.
  • Acceso validado en el panel web de administración.

📸 Evidencia: Captura de pantalla del panel de administración de Tailscale mostrando los tres nodos conectados y el nombre del nodo dashboard-server. Panel Tailscale

2. Instalación de InfluxDB ✅ (15%)

  • Repositorio agregado con claves GPG en trusted.gpg.d.
  • Servicio habilitado y en ejecución.
  • Organización iot-lab y bucket sensores creados.
  • Token de escritura generado.

📸 Evidencia: Captura de pantalla de la interfaz web de InfluxDB (http://100.99.60.115:8086) mostrando:

  • Organización iot-lab y bucket sensores creados Organización y Bucket Creadas
  • Token visible/copied Token
  • Captura de la interfaz web de InfluxDB (http://100.99.60.115:8086). Interfaz InfluxDB

3. Instalación de Prometheus y Node Exporter ✅ (15%)

  • Prometheus instalado en versión LTS (3.5.0 ARM64 ya que mi EC2 no manejaba el AMD64).
  • prometheus.yml configurado con scrape_interval: 5s.
  • Node Exporter instalado, escuchando en :9100.
  • Servicios habilitados con systemd.

📸 Evidencia:

  • systemctl status prometheus en estado active (running). Prometheus
  • systemctl status node_exporter en estado active (running). Node Exporter
  • Captura de la interfaz web y métricas de Node Exporter (http://100.99.60.115:9100). Interfaz Node Exporter Metricas Node Exporter
  • Captura de la interfaz web de Prometheus (http://100.99.60.115:9090). Interfaz de Prometheus

4. Instalación de Grafana ✅ (15%)

  • Grafana OSS instalado y habilitado como servicio systemd.
  • Acceso vía Tailscale (http://100.99.60.115:3000).
  • Datasource InfluxDB configurado con token, org y bucket.
  • Datasource Prometheus configurado en http://localhost:9090.

📸 Evidencia:

  • Captura de la página de inicio de Grafana (admin con password cambiado). admin password cambiado
  • Captura del panel de configuración de Grafana mostrando ambos datasources activos. InfluxDB activo 1 InfluxDB activo 2 Prometheus activo Datasources activos

5. Simulación de datos IoT ✅ (15%)

  • Script Python (simulador.py) ejecutándose en EC2.
  • Genera datos aleatorios de temperatura (18–30 °C) y humedad (40–70 %).
  • Inserta en InfluxDB cada 5 segundos.

📸 Evidencia:

  • Captura de la terminal con la salida Enviado: temp=XX.XX, hum=YY.YY. Terminal
  • Captura en InfluxDB del bucket sensores mostrando los registros. sensores

6. Dashboard en Grafana ✅ (15%)

  • Panel para Temperatura desde InfluxDB.
  • Panel para Humedad desde InfluxDB.
  • Panel para CPU desde Prometheus (node_cpu_seconds_total).
  • Panel para Memoria desde Prometheus (node_memory_MemAvailable_bytes).

📸 Evidencia:

  • Captura del dashboard completo mostrando los cuatro paneles funcionando.
    Dashboard

7. Informe escrito y reflexiones ✅ (5%)

✍️ Explicación:

  • ¿Por qué es útil Tailscale en este escenario?
    Tailscale permite conectar nodos de manera segura mediante VPN sin necesidad de abrir puertos públicos en la nube. Esto simplifica el acceso remoto y evita riesgos de seguridad al no exponer servicios sensibles en Internet.

  • Diferencia entre las métricas de IoT (InfluxDB) y las métricas de sistema (Prometheus/Node Exporter):

    • Métricas IoT (InfluxDB): provienen de sensores o simulaciones, son datos de dominio específico (ej. temperatura, humedad, presión). Están orientados a la aplicación o al fenómeno que se monitorea.
    • Métricas de sistema (Prometheus/Node Exporter): describen el estado de la infraestructura subyacente (CPU, memoria, red, disco). Se enfocan en la salud y desempeño del servidor.

📦 Entregables

  • Capturas de pantalla descritas en cada sección.
  • Código simulador.py adjunto en este gist.
  • Dashboard en Grafana funcionando con datos combinados.
@Jahziel43
Copy link
Author

Jahziel43 commented Sep 27, 2025

@IoTeacher
Hola profesor, aquí se encuentra mi documentación de la practica IoT Stack, si me falta algo o algo puse mal, avíseme, de momento ya lo tengo para entregar

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment