Guida MikroTik
Diagnostica e monitoraggioIntermedio

Netwatch: monitoraggio host e automazione

Usare Netwatch per monitorare la raggiungibilità di host critici (gateway, server, CPE clienti) ed eseguire script automatici al cambio di stato, abilitando reazioni proattive ai guasti.

Netwatch (/tool/netwatch) esegue probe periodici verso host di rete e, al cambio di stato (up→down o down→up), esegue script RouterOS. È lo strumento ideale per implementare failover automatico, inviare notifiche via log, o attivare azioni correttive senza intervento umano. In RouterOS v7 Netwatch è stato potenziato con probe ICMP avanzati (soglie su latenza, jitter, loss) e nuovi tipi (tcp-conn, http-get, dns).

Tipi di probe disponibili in v7

  • icmp — serie di ping ICMP con soglie su latenza media, massima, jitter e packet loss
  • tcp-conn — testa il three-way handshake TCP verso una porta specifica (es. 22, 443, 8728)
  • http-get / https-get — esegue una richiesta HTTP e valida il codice di risposta
  • dns — interroga un resolver DNS e valida la risposta
  • simple — ping base, compatibile con configurazioni pre-v7

Stati di Netwatch v7

Con i probe ICMP avanzati l'host non è più solo up/down ma può finire in unknown (test non ancora eseguito) o segnalare il superamento delle soglie (thr-*). Lo script down-script parte quando l'host diventa irraggiungibile O quando una soglia viene violata, permettendo di reagire al degrado del link prima del down totale — utile su un radio link che inizia a perdere pacchetti.

Esempio 1 — Monitorare il gateway internet con failover su log

Netwatch ICMP sul gateway con script up/down
# Monitora il gateway primario ogni 30 secondi
# Se offline o con loss/latenza oltre soglia → scrive warning nel log
/tool/netwatch/add \
  name=gateway-primario \
  host=203.0.113.1 \
  type=icmp \
  interval=30s \
  timeout=3s \
  thr-avg=100ms \
  thr-loss-percent=50 \
  startup-delay=1m \
  up-script=":log warning \"Gateway primario TORNATO online\"" \
  down-script=":log error \"Gateway primario OFFLINE - verificare uplink\""

# Verifica stato attuale (status, loss, latenza)
/tool/netwatch/print
/tool/netwatch/print detail

Esempio 2 — Monitorare la porta API MikroTik di un AP remoto

Probe TCP verso porta 8728 (RouterOS API)
# Controlla ogni 60s che l'AP remoto risponda sulla porta API
/tool/netwatch/add \
  name=ap-campo-nord \
  host=10.20.5.1 \
  type=tcp-conn \
  port=8728 \
  interval=1m \
  timeout=5s \
  down-script={
    :log error "AP Campo Nord non raggiungibile - porta 8728 chiusa"
    # Qui si può aggiungere: invia email, apri ticket via HTTP, ecc.
  }

Esempio 3 — Probe HTTP per monitorare un portale captive

Probe HTTP-GET con validazione codice risposta
# Verifica ogni 5 minuti che il portale risponda con HTTP 200
/tool/netwatch/add \
  name=portale-hotspot \
  host=10.0.0.10 \
  type=http-get \
  port=80 \
  http-codes=200 \
  interval=5m \
  timeout=10s \
  down-script=":log critical \"Portale hotspot NON risponde\""

Esempio 4 — Notifica Telegram quando un sito va giù

Lo script di Netwatch può usare /tool/fetch per chiamare un'API esterna. Un classico nei WISP: notifica istantanea su Telegram quando un POP o un backhaul cade, così il tecnico interviene prima che squillino i telefoni.

Down-script che invia un messaggio Telegram
/tool/netwatch/add \
  name=backhaul-monte \
  host=10.30.0.1 \
  type=icmp interval=20s timeout=2s thr-loss-percent=40 \
  down-script={
    :local token "123456:ABC-DEF_token_bot"
    :local chat  "-1001234567890"
    :local msg   "ALLARME: backhaul Monte (10.30.0.1) NON raggiungibile"
    /tool/fetch url=("https://api.telegram.org/bot" . $token . \
      "/sendMessage?chat_id=" . $chat . "&text=" . $msg) \
      keep-result=no
  } \
  up-script={
    :local token "123456:ABC-DEF_token_bot"
    :local chat  "-1001234567890"
    /tool/fetch url=("https://api.telegram.org/bot" . $token . \
      "/sendMessage?chat_id=" . $chat . "&text=RIPRISTINO: backhaul Monte OK") \
      keep-result=no
  }
Gli script Netwatch vengono eseguiti con l'utente *sys che ha politiche limitate (read, write, test, reboot). Non possono usare comandi che richiedono policy sensitive o password. Per azioni avanzate (es. chiamate HTTP esterne) usa /tool/fetch dentro lo script. Il parametro startup-delay (default 5 minuti) evita falsi allarmi durante il boot del router.
  • In un WISP è utile monitorare: gateway upstream, server RADIUS, server NTP, apparati CPE critici, server di monitoraggio stesso
  • Con thr-loss-percent=20 Netwatch segnala problemi anche prima del down completo
  • Per failover WAN reale combinare Netwatch con routing ricorsivo o policy routing
  • Usare comment su ogni entry per documentare cosa si monitora e perché
  • Non monitorare host che droppano l'ICMP (firewall): useresti tcp-conn o http-get al loro posto
  • Tieni interval ragionevole: 100 host monitorati ogni 5s sono 20 probe/secondo costanti di CPU
netwatchhost monitoringup-scriptdown-scripticmptcphttpprobefailoveralertdisponibilitàthr-loss-percenttelegramfetchnotifica

Configura senza fatica con l'AI

In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.

Prova WispOS