Sistema Unificado de Monitoreo de Calidad de Servicio y Calidad de Experiencia en Redes Wi-Fi

Miembros


Kerly Cervantes

­čî╣

Yiam Rodriguez

­čśÄ

Descripci├│n del Proyecto

El proyecto consta de tres agentes de reacoleccion de datos, cada uno trabaja con un script diferente. Existen 3 script que limpian y filtran la data para enviarla al EC2, el cual se encargado de sincronizar los datos y almacenarlos en MySQL. Una vez llenadas las tablas se enviaran cada minuto a Elasticsearch. El repositoro que utiliza el web service Flask, debe estar instalado en el EC2 y esperar los request de los agentes de monitoreo.

Despliegue de Proyecto

El Deploy estara habilitado hasta 30/09/2022

Proyecto levantado en http://44.204.82.115:9200/aps/_search

Portal de Kibana

Para ingresar dirigirse a http://44.204.82.115/

Para iniciar sesion solicitar credenciales a los siguientes correos:

Dashboard

Dirigirse al menu (=) en la parte superior izquierda y luego Analytics

Fases para levantamiento del Proyecto

Recopilaci├│n de datos

  • Agente SNMP

Se utiliza el script de Python alojado en el directorio: /snmp/script/get_and_post_snpm_script.py para obtener los datos de la controladora.

  • Agente Wireshark

Aqui se capturaron datos y muestras de paquestes tshark -b filesize:6000 -a files:10 -w traffic.pcapng

  • Agente Rasberry Pi

Se instalo sparrow wifi, seguir los pasos en el siguiente link: https://github.com/ghostop14/sparrow-wifi

Levantamiento del Servidor EC2

Se instalo una instancia en AWS EC2 instancia EC2 Ubuntu t4g.xlarge con 2GB de RAM y 30 GB de almacenamiento. Para efectos de prueba se utilizó la configuración de seguridad de forma general, que permita todo el tráfico 0.0.0.0/0

Levantar Kibana y ElastichSearch

sh -i <path to .pem file> ubuntu@<dns name>

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install default-jre

java -version

sudo apt-get install nginx

sudo systemctl start nginx

sudo systemctl status nginx

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list

sudo apt-get update

sudo apt-get install elasticsearch

sudo nano /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: false
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"

sudo nano /etc/elasticsearch/jvm.options

-Xms128m
-Xmx128m

sudo systemctl start elasticsearch

sudo systemctl enable elasticsearch

sudo systemctl status elasticsearch

sudo curl -XGET http://localhost:9200

sudo apt-get install kibana

sudo systemctl start kibana

sudo systemctl enable kibana

sudo systemctl status kibana

echo "kibanaadmin:`openssl passwd -apr1`" | sudo tee -a /etc/nginx/htpasswd.users
kibanaadmin
holaker
sudo nano /etc/nginx/sites-available/44.204.82.115

server {
    listen 80;

    server_name 44.204.82.115;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/htpasswd.users;

    location / {
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

sudo ln -s /etc/nginx/sites-available/44.204.82.115 /etc/nginx/sites-enabled/44.204.82.115

sudo nginx -t

sudo systemctl restart nginx

sudo ufw allow 'Nginx Full'

Levantamiento del Web Services Flask

  • Instalar servicios

python3 -m venv entorno

sudo apt install python3-virtualenv

  • Crear el environment

En este caso no es necesario crearlo porque ya existe, solo se debe desacargr el repo del api que se encuentra en el siguiente directorio proyecto_monitoreo/flask_api_web_serivce/

  • Correr el servicio

Una vez inslado pytohn y virtualenv instalar los requerimientos

pip install -r requirements.txt

Ejecutar estos comandos para activar el environmet

$ python3 -m venv venv $ source venv/bin/activate

Por ultimo ejecutar el programa usando:

python index.py

Built With

Share this project:

Updates