Proyecto Final
Proyecto Final
Tema 7 - Instalación de Zabbix
Video - Instalar ZABBIX 7.0 en Ubuntu 22.04 (Monitorización de Redes)
- Instalar el repositorio de Zabbix.
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
apt update
- Instala el servidor, la interfaz y el agente de Zabbix.
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
- Instalar mysql server.
apt-get install mysql-sever
-
Crear base de datos inicial.
Ejecuta lo siguiente en el host de base de datos.
mysql -uroot -p password mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; mysql> create user zabbix@localhost identified by 'password'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> set global log_bin_trust_function_creators = 1; mysql> quit;En el servidor Zabbix, importe el esquema y los datos iniciales. Se le pedirá que ingrese la contraseña recién creada.
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbixDeshabilite la opcion log_bin_trust_function_creators luego de importar el schema de la base de datos.
mysql -uroot -p password mysql> set global log_bin_trust_function_creators = 0; mysql> quit; -
Configurar la base de datos para el servidor Zabbix
Editar archivo
/etc/zabbix/zabbix_server.confnano /etc/zabbix/zabbix_server.conf DBPassword=password # Buscar y establecer la contraseña -
Inicia los procesos del agente y del servidor Zabbix
Inicia los procesos del agente y del servidor Zabbix y configúralos para que se inicien con el sistema.
systemctl restart zabbix-server zabbix-agent apache2 systemctl enable zabbix-server zabbix-agent apache2 -
Abrir la página web de la interfaz de usuario de Zabbix.
La URL predeterminada para la interfaz de usuario de Zabbix al usar el servidor web Apache es http://host/zabbix (http://192.168.50.128/zabbix).
Importante: Una vez se realiza la configuración el usuario es Admin y la contraseña es zabbix.
Para realizar el ejercicio se necesitan 3 VMs que serian las siguientes con sus respectivas IPs:
- test28 192.168.50.128
- test26 192.168.50.108
- zabbix 192.168.50.118
Instalación de SNMP
- Instalar SNMP y SNMPD
apt install snmp snmpd snmp-mibs-downloader -y
-
Configurar SNMPD
Haz una copia de seguridad del archivo de configuración original:
cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.backupEdita el archivo de configuración:
nano /etc/snmp/snmpd.confBusca y comenta (agrega
#al inicio) de estas líneas:#agentaddress 127.0.0.1,[::1],Agrega esta línea para que escuche en todas las interfaces:
agentaddress udp:161,udp6:[::1]:161Guarda el archivo presionando
Ctrl + O, Enter, y luegoCtrl + Xpara salir. -
Reinicia el servicio para aplicar los cambios:
systemctl restart snmpdVerifica que esté activo:
systemctl status snmpdPara que SNMPD se inicie automáticamente al arrancar:
systemctl enable snmpd -
Si tienes UFW activo, permite el puerto 161:
sudo ufw allow 161/udp
- Probar SNMP realizando una prueba localmente con:
snmpwalk -v 2c -c public localhost
Tarea 1
Cómo enviar archivos por correo en AlmaLinux
Tarea 2
Para generar consumo de red
Se instalo el servidor web Apache y se generaron descargas.
# Instalar Apache
sudo apt-get install apache2
# Crear un archivo grande para descargar
sudo dd if=/dev/zero of=/var/www/html/testfile.bin bs=1M count=1000
# Descargar el archivo repetidamente
while true; do
wget http://localhost/testfile.bin -O /dev/null
sleep 1
done
Asimismo, se instalo rsync como servidor remoto.
# Instalar rsync
sudo apt-get install rsync
# Sincronizar archivos grandes desde un servidor público
rsync -avz rsync://rsync.kernel.org/pub/linux/kernel/v6.x/ /tmp/kernel_test/
Para generar consumo de memoria
Se instalo stress y se generaron pruebas para generar carga.
# Instalar stress
sudo apt install stress -y
# Prueba 1: Crear proceso que consume memoria
stress --vm 2 --vm-bytes 512M --timeout 60s
# Prueba 2: Abrir múltiples pestañas del navegador con sitios pesados
# Prueba 3: Ejecutar contenedores Docker (si tienes instalado)
docker run -d --memory="256m" nginx
Guía de Instalación de Docker en tu Máquina Virtual
Instalar Dependencias Necesarias
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
Agregar la Clave GPG Oficial de Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Agregar el Repositorio de Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Instalar Docker Engine
sudo apt install docker-ce docker-ce-cli containerd.io -y
Si el comando anterior para instalar docker falla, intenta usando
# Descargar y ejecutar el script oficial de Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Verificar la Instalación
sudo docker --version
Iniciar y Habilitar Docker
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
Agregar tu Usuario al Grupo Docker (Opcional pero Recomendado)
sudo usermod -aG docker $USER
Importante: Debes cerrar sesión y volver a iniciarla para que este cambio surta efecto, o ejecuta:
newgrp docker
Probar Docker con Hello World
docker run hello-world
Ahora sí: Pruebas para tu Reporte de Memoria
Una vez instalado Docker, puedes ejecutar estas pruebas:
Prueba 1: Contenedor Nginx con Límite de Memoria
# Ejecutar contenedor nginx con límite de 256MB
docker run -d --name nginx-test --memory="256m" nginx
# Verificar que esté corriendo
docker ps
Prueba 2: Múltiples Contenedores para Mayor Consumo
# Ejecutar 3 contenedores simultáneamente
docker run -d --name nginx1 --memory="256m" nginx
docker run -d --name nginx2 --memory="256m" nginx
docker run -d --name mysql-test --memory="512m" -e MYSQL_ROOT_PASSWORD=password mysql:latest
Prueba 3: Contenedor con Stress Test de Memoria
# Contenedor que consume memoria activamente
docker run -d --name memory-hog --memory="512m" progrium/stress --vm 2 --vm-bytes 256M
Monitorear el Consumo de Memoria
En una terminal ejecuta htop:
sudo htop
# Presiona F6 > Selecciona MEM% para ordenar por memoria
En otra terminal, monitorea Docker:
# Ver estadísticas en tiempo real de contenedores
docker stats
# Ver solo el consumo de memoria
docker stats --format "table {{.Name}}\t{{.MemUsage}}\t{{.MemPerc}}"
Comandos Útiles
# Ver todos los contenedores corriendo
docker ps
# Ver información detallada de un contenedor
docker inspect nginx-test
# Ver logs de un contenedor
docker logs nginx-test
# Detener todos los contenedores
docker stop $(docker ps -q)
# Eliminar todos los contenedores
docker rm $(docker ps -aq)
# Limpiar todo (contenedores, imágenes, volúmenes)
docker system prune -a
Para generar consumo de disco
Prueba con dd (Generación de Archivos), esta prueba escribe 5GB de datos al disco.
# En una terminal, ejecuta:
dd if=/dev/zero of=/tmp/testfile bs=1M count=5000
Búsqueda Recursiva de Archivos
# Buscar en todo el sistema (genera mucha lectura)
sudo find / -name "*.log" -type f
Servicios Web con Logging Intensivo
# Instalar Apache si no está presente
sudo apt-get install apache2 -y
# Generar tráfico web que escriba logs
for i in {1..1000}; do
curl http://localhost/ > /dev/null 2>&1
# Escribir múltiples logs
logger "Test log message $i for disk I/O monitoring"
done
# Rotación forzada de logs
sudo logrotate -f /etc/logrotate.conf
Comprimir/Descomprimir Archivos
# Comprimir un directorio
tar -czf /tmp/backup.tar.gz /var/log
# Descomprimir
tar -xzf /tmp/backup.tar.gz -C /tmp/
Para generar consumo de CPU
Stress Test con stress
# Instalar stress
sudo apt-get install stress
# Generar carga en CPU (usar todos los cores disponibles por 120 segundos)
stress --cpu 4 --timeout 120
Servidor web Apache (apache2)
Iniciar Apache
sudo systemctl start apache2
Generar carga (desde la misma VM o navegador)
ab -n 10000 -c 100 http://localhost/