Ir al contenido

Instalación manual: WebFig y Winbox

Instala el agente desde los menús del propio router, sin un ordenador que ejecute la CLI. Cada paso es un formulario: su menú, los campos que hay que rellenar y el formulario tal como queda relleno. Los valores son los que escribe mikroscope install, así que mikroscope status, upgrade y uninstall tratan el resultado como suyo. Winbox tiene los mismos menús y campos que WebFig, aunque ninguna instalación se ha hecho en Winbox (sin probar); las capturas, y la instalación de la que salen, son de WebFig (Probado en).

  • El router tiene RouterOS 7.24 o posterior, el paquete container y el modo de dispositivo con los contenedores activados: Requisitos. El modo de dispositivo no tiene página en WebFig; es una orden del terminal (Modo de dispositivo).
  • Para las pertenencias a listas: la lista de interfaces y la lista de direcciones por las que descarta tu firewall (LAN y LANs en la configuración por defecto de MikroTik): Listas del firewall.
  • Para el tar de la imagen: el tar de la arquitectura del router, renombrado mikroscope.tar (Instalación sin conexión nombra cada uno).

Los pasos usan los valores por defecto de abajo. Para cambiar uno, cámbialo en cada paso donde aparece, el manifiesto incluido. Instalación manual: terminal lista cada valor y cómo se derivan de él los demás.

Valor Por defecto
Etiqueta, el Comment de cada objeto mikroscope:mikroscope (managed by mikroscope)
veth veth-mikroscope
Dirección del router 172.30.10.1/30
Dirección y puerto del agente 172.30.10.2/30, 9123
Envlist mikroscope-env
Root dir mikroscope/mikroscope
Manifiesto mikroscope/mikroscope.manifest.txt
Imagen, descarga del registro registry-1.docker.io/jmrplens/mikroscope-agent:1.6.1
Imagen, tar mikroscope.tar

Deja la etiqueta tal cual, carácter a carácter: es como la CLI reconoce cada objeto como de la instalación.

Entra. Abre http://<dirección del router>/ y entra con un usuario administrador. Después elige Advanced arriba: los pasos usan el árbol de menús completo, que Quick Set oculta.

La página de acceso de WebFig: Login admin, el campo Password vacío y el botón Login.
WebFig login

Rellenar un formulario. Un campo que solo muestra un botón + está sin valor: pulsa + para abrirlo. Cuando RouterOS rechaza un objeto, el formulario sigue abierto con el motivo bajo sus botones.

El manifiesto lista cada objeto que crean los pasos siguientes, para que mikroscope uninstall los encuentre todos.

Files › New › Text File:

Campo Valor
Name mikroscope/mikroscope.manifest.txt
Contents las líneas de abajo, las del origen de imagen que uses
mikroscope/mikroscope.manifest.txt
mikroscope-manifest=1
name=mikroscope
tag=mikroscope:mikroscope (managed by mikroscope)
disk=
veth=veth-mikroscope
subnet=172.30.10.0/30
port=9123
iface-list=LAN
addr-list=LANs
expose=
container-name=
remote-image=registry-1.docker.io/jmrplens/mikroscope-agent:1.6.1
token=no
dir=mikroscope
file=mikroscope/mikroscope.manifest.txt
object=/interface/veth name=veth-mikroscope
object=/ip/address interface=veth-mikroscope
object=/interface/list/member interface=veth-mikroscope list=LAN
object=/ip/firewall/address-list list=LANs address=172.30.10.0/30
object=/container/envs list=mikroscope-env
object=/container interface=veth-mikroscope
dir=mikroscope/mikroscope

Si te saltas una pertenencia a lista, escribe none tras su iface-list= o addr-list= y quita su línea object=. OK crea el directorio mikroscope junto con el archivo. Script de RouterOS explica cada línea.

Files › New File: Name mikroscope/mikroscope.manifest.txt y, en Contents, el manifiesto, desde mikroscope-manifest=1 hasta dir=mikroscope/mikroscope.
Files › New › Text File
Files tras OK: el nuevo directorio mikroscope y dentro mikroscope/mikroscope.manifest.txt.
Files

Interfaces › VETH › New:

Campo Valor
Comment mikroscope:mikroscope (managed by mikroscope)
Name veth-mikroscope
Address 172.30.10.2/30
Gateway 172.30.10.1

Deja el resto como está.

Interfaces › New Interface de tipo VETH: Comment es la etiqueta de mikroscope, Name veth-mikroscope, Address 172.30.10.2/30 y Gateway 172.30.10.1.
Interfaces › VETH › New
La pestaña VETH tras OK: veth-mikroscope, con la etiqueta de mikroscope como comentario.
Interfaces › VETH

IP › Addresses › New:

Campo Valor
Comment mikroscope:mikroscope (managed by mikroscope)
Address 172.30.10.1/30
Interface veth-mikroscope
IP › Addresses › New Address: la etiqueta de mikroscope como Comment, Address 172.30.10.1/30 e Interface veth-mikroscope.
IP › Addresses › New
IP › Addresses tras OK: 172.30.10.1/30 en veth-mikroscope junto a las direcciones propias del router.
IP › Addresses

Opcional. Dejan pasar las respuestas del agente por las reglas raw del firewall que descartan por lista de interfaces o por lista de direcciones. Una pertenencia no se limita a mikroscope: cualquier otra regla que coincida con la lista coincide también con la veth o con el /30 (Listas del firewall).

Interfaces › Interface List › New:

Campo Valor
Comment mikroscope:mikroscope (managed by mikroscope)
List LAN
Interface veth-mikroscope
Interfaces › Interface List › New Interface List Member: List LAN, Interface veth-mikroscope y la etiqueta de mikroscope como Comment.
Interfaces › Interface List › New
La pestaña Interface List tras OK: veth-mikroscope es miembro de LAN.
Interfaces › Interface List

IP › Firewall › Address Lists › New:

Campo Valor
Comment mikroscope:mikroscope (managed by mikroscope)
List LANs
Address 172.30.10.0/30
IP › Firewall › Address Lists › New: List LANs, Address 172.30.10.0/30 y la etiqueta de mikroscope como Comment.
IP › Firewall › Address Lists › New
La pestaña Address Lists tras OK: 172.30.10.0/30 en LANs junto al rango LAN del router.
IP › Firewall › Address Lists

Container › Envs › New, una vez por entrada, todas con List mikroscope-env:

Key Value
MIKROSCOPE_TAG mikroscope:mikroscope (managed by mikroscope)
RATE_HZ 10
BUFFER_S 60
PORT 9123
ADDR 172.30.10.2
MEM_LIMIT_MB 16
CAPTURE_MB 4

MIKROSCOPE_TAG es como la CLI sabe que la envlist es de la instalación. Las demás claves son los ajustes del agente: Variables de entorno. MEM_LIMIT_MB se deriva de la frecuencia y del anillo; el Generador de scripts lo calcula para otros valores.

Container › Envs › New: List mikroscope-env, Key MIKROSCOPE_TAG y la etiqueta de mikroscope como Value.
Container › Envs › New
La pestaña Envs con las siete entradas de mikroscope-env: MIKROSCOPE_TAG, RATE_HZ 10, BUFFER_S 60, PORT 9123, ADDR 172.30.10.2, MEM_LIMIT_MB 16 y CAPTURE_MB 4.
Container › Envs

Una entrada TOKEN guarda su valor en claro, y WebFig lo muestra en claro en esta lista y en su formulario (verificado). Añádela solo para Exponer en la LAN, y trata como secreta cualquier pantalla que la muestre.

Container › New:

Campo Valor
Comment mikroscope:mikroscope (managed by mikroscope)
Remote Image registry-1.docker.io/jmrplens/mikroscope-agent:1.6.1
Root Dir mikroscope/mikroscope
Privileged marcado
Interface veth-mikroscope
Envlists mikroscope-env
Memory Max 64M
Logging marcado
Start On Boot marcado
Restart Policy on failure (non 0 exit code)
Restart Interval 00:00:10
Restart Max Count 5

Deja Name vacío: RouterOS nombra el contenedor a partir de la imagen. OK empieza la descarga: el router descarga la imagen de su propia arquitectura, así que necesita llegar al registro y tener sitio para las capas.

Container › New Container, parte superior del formulario: la etiqueta de mikroscope como Comment, Remote Image registry-1.docker.io/jmrplens/mikroscope-agent con la etiqueta de la versión y Root Dir mikroscope/mikroscope.
Container › New
El mismo formulario más abajo: Privileged marcado, Interface veth-mikroscope y Envlists mikroscope-env.
Container › New
La parte inferior del formulario: Memory Max 64M, Logging y Start On Boot marcados, Restart Policy on failure, Restart Interval 10 s y Restart Max Count 5.
Container › New

Espera a download/extract done en Log. Entonces la fila está lista para arrancar, y aún no lleva la marca R.

La pestaña Container al terminar la descarga: una fila, con la etiqueta como Comment, su root dir, veth-mikroscope y mikroscope-env, y sin la marca R.
Container

En el terminal, pon ignore-remote-image-change y nombra restart-policy en la misma orden: un /container/set que no nombra restart-policy la devuelve a always (verificado).

/container/set [find comment="mikroscope:mikroscope (managed by mikroscope)"] ignore-remote-image-change=yes restart-policy=on-failure
:put [/container/get [find comment="mikroscope:mikroscope (managed by mikroscope)"] ignore-remote-image-change]
:put [/container/get [find comment="mikroscope:mikroscope (managed by mikroscope)"] restart-policy]

Las dos lecturas imprimen true y on-failure. install lo pone con los dos orígenes de imagen: sin él, RouterOS para y borra el contenedor por su cuenta en cuanto se borra el tar, y lo vuelve a crear minutos después.

El Terminal de WebFig: /container/set con ignore-remote-image-change=yes y restart-policy=on-failure, y dos lecturas que imprimen true y on-failure.
Terminal

Con el tar de la imagen, bórralo ahora: Files, selecciona mikroscope.tar, Remove.

Files con mikroscope.tar seleccionado, antes de Remove: la imagen ya está extraída y el tar sobra.
Files › Remove
  1. Container, selecciona la fila y después Start en el panel Actions.

    La pestaña Container con la fila de mikroscope seleccionada y Start en el panel Actions.
    Container › Start

    La fila recibe la marca R (en marcha).

    La pestaña Container tras Start: el contenedor mikroscope en marcha.
    Container
  2. Log, con Filter activado y Topics contains container: el registro termina con *** started /mikroscope-agent y la línea propia del agente.

    Log, filtrado por container: la descarga terminando y el contenedor arrancando.
    Log
  3. En el terminal, pregunta al agente desde el router:

    :put ([/tool/fetch url="http://172.30.10.2:9123/healthz" output=user as-value]->"data")

    Imprime {"ok":true,…}.

    El Terminal de WebFig: /tool/fetch de http://172.30.10.2:9123/healthz, y la primera fila de la respuesta del agente, que empieza por "ok":true.
    Terminal

Desde un ordenador de la LAN del router, curl http://172.30.10.2:9123/healthz responde lo mismo, y mikroscope status --router … lista cada objeto de la instalación (Acceso por red si no responde).

Desde un ordenador con la CLI, mikroscope uninstall --router … --yes lee el manifiesto, retira todo lo que han creado los pasos de arriba y comprueba que no queda nada (Actualizar y desinstalar). Desde los menús, retira en este orden:

  1. Container: selecciona la fila, Stop en el panel Actions, espera a que desaparezca la marca R y después Remove. RouterOS borra el root dir, mikroscope/mikroscope, con el contenedor; si Files aún lo lista, bórralo también ahí.

    La pestaña Container con la fila parada de mikroscope seleccionada, antes de Remove.
    Container › Stop, Remove
  2. Container › Envs: selecciona las siete entradas de mikroscope-env, Remove.

    La pestaña Envs con las siete entradas de mikroscope-env seleccionadas, antes de Remove.
    Container › Envs › Remove
  3. IP › Firewall › Address Lists: la entrada 172.30.10.0/30, Remove.

  4. Interfaces › Interface List: el miembro veth-mikroscope, Remove.

  5. IP › Addresses: 172.30.10.1/30, Remove.

  6. Interfaces › VETH: veth-mikroscope, Remove.

  7. Files: mikroscope/mikroscope.manifest.txt, Remove; después el directorio mikroscope, si no contiene nada más.

    Files con mikroscope/mikroscope.manifest.txt seleccionado, antes de Remove: el root dir del contenedor se fue con el contenedor, y el directorio mikroscope se borra cuando queda vacío.
    Files › Remove

Un tar que haya quedado de una extracción sin terminar también se va: Files, mikroscope.tar, Remove.