Mikrotik: alertas y monitorización estado del router
Cuando montas un sistema, por bueno que sea, necesitas disponer de alertas y monitorización cuando surgen problemas.
Esto es vital para cualquier administrador de sistemas o técnico de telecomunicaciones, porque impide que tengas sorpresas desagradables cuando no estás en casa o la oficina, ya sea en forma de caída de servicios o problemas de seguridad.
En esta entrada, voy a intentar daros unos cuantos ejemplos y pautas para poder monitorizar el estado de vuestro router Mikrotik, Utilizaremos las herramientas que ya trae el sistema RouterOS.
Vamos al lío…os dejo un montón de pautas, elegir la que más os interese según vuestras casuísticas. Cuando implementéis ciertas tareas, revisar el consumo, ya que es posible que no todos los routers sean capaces de manejar muchas tareas a la vez.
Configurar SNMP para Monitoreo Remoto en Mikrotik
La forma más común, es utilizar el Protocolo Simple de Administración de Red (SNMP), que es una forma estándar de supervisar el hardware de la red. Para configurar SNMP en MikroTik:
- Habilita SNMP:
- Ve a IP > SNMP y activa el servicio SNMP marcando la casilla “Enabled”.
- Configura la “Community” a un nombre único y seguro que usarán los sistemas de monitoreo para acceder a las métricas del router.
- Configura SNMP Managers:
- Si deseas restringir quién puede acceder a la información SNMP, puedes especificar las direcciones IP de los gestores SNMP permitidos en las configuraciones.
- Utiliza herramientas de monitoreo: Utiliza herramientas externas como Zabbix, Nagios, o PRTG para recolectar y analizar la información SNMP desde tu MikroTik.
- Os dejo varias entradas relacionadas con Zabbix que os pueden servir, que es lo que yo utilizo: https://www.maquinasvirtuales.eu/category/zabbix/
Utilizar Email para Alertas en Mikrotik
La base de la monitorización la haré sobre mi correo (aunque también uso telegram con Zabbix), que me “chivará” de los problemas. Así que lo primero que hago es configurar la cuenta que utilizo para estos menesteres y hacer una prueba de envío:
- Configura el Servidor de Correo:
- Configura los detalles del servidor SMTP en Tool > Email para permitir que tu MikroTik envíe correos electrónicos directamente.
Monitorización de Interfaz y Tráfico en Mikrotik
- Configura Traffic Monitoring:
- Utiliza herramientas como el “Traffic Monitor” en Tools para configurar umbrales de tráfico en interfaces específicas y ejecutar scripts o acciones cuando estos umbrales se superan. Os dejo varios ejemplos:
-
Alerta de Consumo de Ancho de Banda Alto en Mikrotik
- Supongamos que quieres recibir una alerta cuando el tráfico de salida en la interfaz WAN supera los 100 Mbps:
1 2 |
/tool traffic-monitor add interface=ether8 name="High Outgoing Traffic" threshold=100000000 traffic=received on-event="/system script run high-traffic-alert" |
-
-
- En este ejemplo, ether8 es la interfaz monitoreada, y 100000000 representa 100 Mbps en bytes por segundo (bps). El parámetro direction=tx especifica que estamos monitoreando el tráfico transmitido (saliente). El on-event especifica un script llamado “high-traffic-alert” que se ejecutará cuando se supere el umbral.
-
Monitoreo de Tráfico Entrante en Mikrotik
- Para monitorear el tráfico entrante y tomar una acción cuando este cae por debajo de un umbral específico (por ejemplo, 10 Mbps, lo cual podría indicar una caída de la línea), puedes configurar:
-
1 2 |
/tool traffic-monitor add interface=ether8 name="Low Incoming Traffic" threshold=10000000 traffic=received on-event="/system script run low-traffic-alert" |
-
-
- Aquí, threshold=10000000 representa 10 Mbps. direction=rx indica que estamos monitoreando el tráfico recibido (entrante). El evento disparado podría ser utilizado para reiniciar una conexión o alertar a un administrador.
-
-
-
Crear los Scripts de Eventos
- Deberás crear los scripts que serán ejecutados cuando se disparen los eventos. Aquí un ejemplo de script básico para alertar:
-
1 2 3 |
/system script add name="high-traffic-alert" source={ :log info "Alto trafico detectado en la interfaz WAN. Considera revisar la red o ampliar el ancho de banda."} add name="low-traffic-alert" source={ :log info "Bajo trafico detectado en la interfaz WAN. Posible caida de conexion."} |
-
-
- La prueba más rápida es quitar el cable ethernet del puerto de la WAN, por ejemplo. O generando tráfico, con herramientas de prueba de carga (Locust, k6 y JMeter, por ejemplo)
-
Monitoreo de Cambios en la Dirección IP WAN
Este script verifica si la dirección IP WAN ha cambiado y envía una notificación por correo electrónico si detecta un cambio:
1 2 3 4 5 6 7 8 9 10 11 12 |
# Definir la variable con la dirección IP anterior (guardada) :global previousIP; # Obtener la dirección IP actual de la interfaz WAN :local currentIP [/ip address get [find interface="pppoe-out1"] address]; # Comprobar si la IP ha cambiado :if ($currentIP != $previousIP) do={ # Actualizar la dirección IP anterior con la nueva :set $previousIP $currentIP; # Enviar correo electrónico de notificación /tool e-mail send to="admin@example.com" subject="Alerta de Cambio de IP WAN Router Mikrotik" body=("La IP WAN ha cambiado a " . $currentIP); } |
Detección de nuevos dispositivos en la Red LAN de Mikrotik
Este script detecta nuevos dispositivos conectados a la red LAN y alerta al administrador:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
:global knownMACs; # Inicializar la variable global si no existe :if ([:typeof $knownMACs] = "nothing") do={ :set knownMACs [:toarray ""] } # Obtener todas las direcciones MAC de clientes DHCP actuales :local currentMACs [ /ip dhcp-server lease find ]; # Comparar con la lista conocida :foreach lease in=$currentMACs do={ :local thisMAC [/ip dhcp-server lease get $lease mac-address]; :if ([:typeof ($knownMACs->$thisMAC)] = "nothing") do={ # Esta es una nueva MAC :log info message=("Nueva MAC detectada: $thisMAC"); # Opcional: Enviar email o alerta /tool e-mail send to="admin@example.com" subject="Nueva MAC detectada" body=("Nueva MAC: $thisMAC en la red"); # Agregar a la lista conocida :set ($knownMACs->$thisMAC) true; } } # Guardar la lista actualizada de MACs conocidas :global knownMACs $knownMACs; |
Monitoreo del Consumo de RAM
Este script monitorea el uso de RAM y envía una alerta cuando el consumo supera un umbral específico, como el 80%:
1 2 3 4 5 6 7 8 9 10 |
# Obtener el porcentaje de RAM utilizada :local totalRAM [/system resource get total-memory]; :local freeRAM [/system resource get free-memory]; :local usedRAM ($totalRAM - $freeRAM); :local usedPercentage (($usedRAM * 100) / $totalRAM); # Comprobar si el uso de RAM supera el 80% :if ($usedPercentage > 80) do={ /tool e-mail send to="admin@example.com" subject="Alerta de Uso de RAM Alta" body=("Atención: El uso de RAM ha alcanzado el " . $usedPercentage . "%."); } |
Monitoreo del Consumo de CPU
Ejemplo para monitorear y alertar sobre alto uso de CPU:
1 2 |
/system scheduler add name=check-cpu-load interval=1m on-event=":if ([/system resource get cpu-load] > 80) do={ /tool e-mail send to=\"admin@example.com\" subject=\"Alerta de carga CPU alta\" body=\"Carga CPU: $[/system resource get cpu-load]%\"}" |
Programación de Scripts para Ejecución Automática
Para que estos scripts se ejecuten automáticamente a intervalos regulares o en respuesta a eventos específicos, debes usar el Scheduler en MikroTik:
- Ve a System > Scheduler y crea una nueva entrada.
- Configura los parámetros para cada script, como el intervalo de tiempo (start-time y interval) y el script que debe ejecutar (on-event).
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?