DESPLEGAMENT I VALIDACIÓ EN LOCAL
Pas 1: Estructura del Stack de Contenidors en Local
Per recrear i validar tota la infraestructura del projecte de l’institut en un entorn local (per exemple, a la teva màquina virtual de desenvolupament o ordinador propi), s’utilitza Docker Compose. Això permet aixecar el “cerebre” de Zabbix, els proxies de segmentació de xarxa, les bases de dades i el nostre Dashboard web asíncron de forma aïllada i ràpida amb un sol comandament.
Els contenidors que componen el nostre disseny local són:
zabbix-db: Base de dades que emmagatzema l’històric de mètriques i alertes.
zabbix-server: El motor principal que processa les dades de xarxa.
zabbix-web: La interfície gràfica d’administració de Zabbix (Port 8080).
proxy-ciclos i proxy-wlan: Els encarregats de fer d’intermediaris per recollir dades de les diferents subxarxes (172.25.x.x i 172.24.x.x).
visualitzador: El nostre Dashboard NOC desenvolupat amb FastAPI i HTML5 (Port 8000).
Pas 2: Definició del fitxer docker-compose.yml
A la carpeta arrel del projecte es troba el fitxer de configuració que enllaça tots els serveis i defineix les variables d’entorn locals. El muntatge utilitza imatges optimitzades construïdes a partir dels nostres propis Dockerfile de configuració personalitzada:
version: ‘3.8’
services:
zabbix-db:
image: mariadb:10.11
container_name: zabbix-db
environment:
– MYSQL_DATABASE=zabbix
– MYSQL_USER=zabbix
– MYSQL_PASSWORD=zabbix123
– MYSQL_ROOT_PASSWORD=root_secure_password
volumes:
– zabbix-db-data:/var/lib/mysql
zabbix-server:
build: ./zabbix-server
container_name: zabbix-server
ports:
– “10051:10051”
environment:
– DB_SERVER_HOST=zabbix-db
– MYSQL_USER=zabbix
– MYSQL_PASSWORD=zabbix123
depends_on:
– zabbix-db
zabbix-web:
image: zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest
container_name: zabbix-web
ports:
– “8080:8080”
environment:
– ZBX_SERVER_HOST=zabbix-server
– DB_SERVER_HOST=zabbix-db
– MYSQL_USER=zabbix
– MYSQL_PASSWORD=zabbix123
depends_on:
– zabbix-server
proxy-ciclos:
build: ./zabbix-proxy
container_name: proxy-ciclos
environment:
– ZBX_HOSTNAME=proxy-ciclos
– ZBX_SERVER_HOST=zabbix-server
proxy-wlan:
build: ./zabbix-proxy
container_name: proxy-wlan
environment:
– ZBX_HOSTNAME=proxy-wlan
– ZBX_SERVER_HOST=zabbix-server
visualitzador:
build: ./visualitzador
container_name: visualitzador
ports:
– “8000:8000”
environment:
– ZABBIX_URL=http://zabbix-web:8080/zabbix
– ZABBIX_USER=Admin
– ZABBIX_PASSWORD=zabbix
depends_on:
– zabbix-web
volumes:
zabbix-db-data:
Pas 3: Execució i Aixecament del laboratori
Per posar en marxa tot l’entorn local d’una sola vegada, obrim la terminal a la ruta del fitxer i executem el comandament de Docker en segon pla (detached):
docker compose up -d
Per validar que tots els contenidors estan corrent correctament i no n’hi ha cap de caigut o en bucle d’error, comprovem el seu estat amb:
docker compose ps
Pas 5: Comprovació del Dashboard NOC d’Alertes Actives
Per acabar la validació en local, accedim a la pàgina principal del nostre panell a http://localhost:8000. El Dashboard carregarà l’estructura asíncrona (Fetch API) i demanarà a l’API les dades en temps real.
En entorns de test local, per comprovar si el panell pinta bé els estats, podem forçar l’apagat d’algun equip fictici o parar un servei a Zabbix perquè generi alertes ICMP: Unavailable by ICMP ping. El Dashboard ha de reaccionar immediatament:
El comptador d’hosts es llegeix de forma animada.
Els equips caiguts es marquen amb un LED vermell.
La llista d’Alertes Actives de la dreta comença a omplir-se dinàmicament agrupada per severitat, mostrant el botó CLOSE i NETEJAR TOT operatius.