Dónde va cada cosa
Esta página responde a dónde pone las cosas install: las direcciones, el disco
que guarda la imagen y la raíz del contenedor, lo que va en la envlist y nada
más, y los ajustes con los que se crea el contenedor. Cada valor de aquí es lo
que imprime mikroscope plan para tus opciones, así que el plan es la forma de
comprobarlo para tu router antes de escribir nada.
Los objetos y sus valores por defecto
Sección titulada «Los objetos y sus valores por defecto»| Objeto | Por defecto | Opción |
|---|---|---|
| veth + /30 | veth-mikroscope, 172.30.10.0/30 (router .1, agente .2) |
--veth, --subnet |
| dirección del router | 172.30.10.1/30 en la veth |
derivada de --subnet |
| tar de la imagen | <name>.tar, subido con scp, borrado justo después de la extracción; ninguno con --remote-image |
--disk, --ephemeral, --remote-image |
| raíz del contenedor | mikroscope/<name> en la flash interna |
--disk tmpfs para un disco en RAM, --ephemeral |
| envlist | <name>-env |
--rate, --buffer, --port, --token, … |
| etiqueta | mikroscope:<name> (managed by mikroscope) en cada objeto que admite comentario; como MIKROSCOPE_TAG en la envlist |
--name, por defecto mikroscope |
Desliza en horizontal para ver todas las columnas
--subnet debe ser una /30 IPv4 dada en su dirección de red; el router toma la
.1 y el agente la .2. --name admite hasta 32 caracteres y --veth hasta
64, letras, dígitos, _, . y -, empezando por letra o dígito. La /30 y el
nombre de veth por defecto se eligieron para no chocar con un muestreador
instalado a mano en el equipo de referencia; si 172.30.10.0/30 está en uso en
el tuyo, elige otra.
Con --disk, la imagen y la raíz se mueven juntas: <disk>/<name>.tar y
<disk>/mikroscope/<name>. El valor es un slot de disco de RouterOS: vacío para
la flash interna, tmpfs, disk1, usb1 y así sucesivamente.
Persistente o efímera
Sección titulada «Persistente o efímera»Persistente es lo predeterminado: la raíz en la flash interna,
start-on-boot=yes y restart-policy=on-failure limitado a cinco reintentos
separados diez segundos, para que una imagen rota no entre en bucle al arrancar.
--ephemeral pone el tar y la raíz en el disco tmpfs del router, si lo tiene
— el RB5009 lo tiene — con start-on-boot=no: cero escrituras en flash, y nada
sobrevive a un reinicio. Verificado en RB5009UG+S+, RouterOS 7.24.2, :
write-sect-since-reboot marcaba 58 279 antes de la instalación y 58 279
después del borrado — el mismo valor, no un incremento pequeño. Con --ephemeral en un router sin disco tmpfs, doctor lo
marca como ausente y nombra la orden que añade uno.
--disk tmpfs sin --ephemeral también pone las dos cosas en el disco tmpfs,
pero mantiene start-on-boot=yes; solo --ephemeral cambia el ajuste de
arranque.
Por qué se borra el tar al instalar
Sección titulada «Por qué se borra el tar al instalar»RouterOS extrae la imagen cuando se añade el contenedor, así que una vez que el
contenedor existe el tar ya no sirve para nada. Un tar que se queda en el equipo
es lo que uninstall tendría que encontrar después en un índice de /file que
iba minutos por detrás tras quitar un contenedor. Así que install espera hasta 15 s a
que el contenedor aparezca y luego 3 s más, borra el tar y solo entonces arranca
el contenedor. No comprueba que la extracción haya terminado; en el RB5009 un
tar de 1.8 MiB se extrajo en el mismo segundo del alta (RouterOS 7.24.2,
2026-09-11).
El contenedor se crea con ignore-remote-image-change=yes. Con el no por
defecto, RouterOS vigilaba la imagen y, en cuanto se quitaba el tar, paraba y
quitaba el contenedor y lo volvía a extraer minutos después (RB5009UG+S+, RouterOS 7.24.2, ).
Hasta que se borra el tar, este y la raíz extraída de él comparten disco, y por
eso doctor pide el doble de la imagen más 4 MiB de flash libre.
Con --remote-image no pasa nada de esto. RouterOS se baja las capas él mismo,
ningún tar aterriza en el equipo, no hay nada a lo que esperar ni nada que
borrar, doctor pide solo los 4 MiB, y uninstall no tiene ningún fichero del
que dar cuenta: el recuento de propiedad del contenedor son el contenedor y la
envlist. La raíz del contenedor sigue yendo donde digan --disk y
--ephemeral.
Lo que lleva la envlist
Sección titulada «Lo que lleva la envlist»La envlist guarda la configuración del agente y la marca de propiedad, y nada más:
| Clave | Se escribe | Viene de | Contiene |
|---|---|---|---|
MIKROSCOPE_TAG | siempre | --name | la marca de propiedad mikroscope:<name> (managed by mikroscope), que se escribe la primera y se borra la última; el agente la ignora |
RATE_HZ | siempre | --rate, por defecto 10, 1–100 | la cadencia del muestreador, en Hz |
BUFFER_S | siempre | --buffer, por defecto 300, 10–3600 | la longitud del anillo, en segundos |
PORT | siempre | --port, por defecto 9123, 1–65535 | el puerto HTTP del agente |
ADDR | siempre | --subnet | la dirección del agente, la .2 de la /30; el agente solo escucha ahí |
MEM_LIMIT_MB | siempre | --mem-limit-mb, por defecto 40, 8–1024 | el límite blando de memoria de Go del agente, en MiB |
FLOOR_HZ | solo cuando es mayor que 0 | --floor-hz, por defecto 0, 0–1000 | una sola cadencia para todas las fuentes de nivel, en Hz |
CAPTURE_MB | siempre | --capture-mb, por defecto 4, 0–256 | el presupuesto de capturas por disparo, en MiB; 0 las desactiva |
TRIGGERS | solo cuando se da | --triggers | las condiciones de disparo; sin ella, el agente usa su conjunto por defecto |
TOKEN | solo cuando se da | --token | el token bearer que exige el agente, de --token o MIKROSCOPE_TOKEN, con o sin --expose |
Desliza en horizontal para ver todas las columnas
No va en ella ninguna dirección de destino, ningún token de destino ni ninguna
credencial de la API. Cualquier usuario de RouterOS con read puede listar la
envlist de cualquier contenedor por la API (verificado en RB5009UG+S+, RouterOS 7.24.2, ), así que
lo que se escribe aquí lo pueden leer todos ellos — el token incluido, si pones
uno. El plan imprime la envlist con el token enmascarado como (token).
Qué se ejecuta dónde dice qué credencial vive dónde;
el agente lee más variables de las que escribe install, y
Variables de entorno las enumera.
Los ajustes del contenedor
Sección titulada «Los ajustes del contenedor»El contenedor se añade con:
file=el tar subido, oremote-image=la referencia sin su host de registro cuando el router se baja la imagen;interface=la veth,root-dir=la raíz,envlist=la envlist, y la etiqueta como comentario;logging=yes, para que lo que imprime el agente llegue al log del router;start-on-boot=yes, onocon--ephemeral;restart-policy=on-failure restart-max-count=5 restart-interval=10s;memory-max=64M, aplicado como límite del cgroup del contenedor (--memory-max);privileged=yes(--privileged=falsepara renunciar a ello), que quita el espacio de nombres de usuario del contenedor para que el log del kernel,/proc/slabinfoy los contadores ECC de la MTD se puedan leer, y no amplía su espacio de nombres de red ni el de PID — Lo que aporta privileged tiene el detalle;ignore-remote-image-change=yes, por el motivo de arriba.
El agente captura SIGTERM: RouterOS mata al instante un contenedor que no lo hace. Respeta el tiempo de parada por defecto de 10 s.
Dimensiona la memoria al anillo
Sección titulada «Dimensiona la memoria al anillo»--memory-max y --mem-limit-mb tienen que moverse con --rate y --buffer.
El anillo guarda rate × buffer líneas de unos 2,4 kB cada una; el límite
blando de Go quiere más o menos el doble y tiene que quedar holgadamente por
debajo de memory-max. La comprobación de arranque del agente cuenta 2 560
bytes por línea más --capture-mb: por encima de memory-max se niega a
arrancar, y por encima de la mitad de --mem-limit-mb avisa. Los
valores por defecto, 40 MiB bajo 64M, están dimensionados para 10 Hz y un
anillo de 300 s. El presupuesto de la captura por disparo cuenta contra
los dos límites en esa comprobación, igual que el anillo.
En las ejecuciones medidas se usó --mem-limit-mb 40 --memory-max 64M a 10 Hz, --buffer 120 --mem-limit-mb 64 --memory-max 96M
a 50 Hz y --buffer 120 --mem-limit-mb 80 --memory-max 128M a 100 Hz. Lo que cuesta un límite ajustado está en
El coste del observador; las ejecuciones en sí están en
El techo de muestreo.