Bentrovati!
Vi è capitato di dover monitorare lo stato dei peer bgp su dispositivi RouterOS?
Bene, questo è il post che fa per voi. La piattaforma di allerting utilizzata è Nagios ma, se abbiamo già in campo altri sistemi che supportano tali plugin, possiamo con qualche piccola modifica adattarlo alle nostre necessità.
Lo script scritto in perl è scaricabile dalla repository check_bgp_mikrotik
Per poter funzionare dobbiamo soddisfare alcune dipendenze
Per OS Debian/Ubuntu
apt-get install libnagios-plugin-perl nagios-plugins-common
La libreria utilizza per l’accesso tramite API alla routerboard è scaricabile dal repository mikrotik-perl-api
Scarichiamo il contenuto e salviamolo nella stessa directory dove è stato copiato lo script check_bgp_mikrotik.pl
wget https://github.com/efaden/MikroTikPerl/blob/master/MikroTik.pm
Abilitiamo se non ancora attivo il servizio API sulla routerboard e limitiamone l’accesso alla sola rete di monitoraggio
/ip service enable [find name=api]
/ip service set address=192.168.0.0/24 [find name=api]
Per motivi di sicurezza è preferibile definire sulla routerboard un utente di sola lettura che abbia accesso tramite API, quest’ultimo verrà utilizzato dal nostro script per eseguire le interrogazioni
/user group add name=API policy=read,api,!write,!local,!telnet,!ssh,!ftp,!reboot,!policy,!test,!winbox,!password,!web,!sniff,!sensitive,!romon
/user add address=192.168.0.0/24 group=API name=apiuser password=VERYSECUREPASSWORD
Nel mio caso, nagios ha un’indirizzo ip privato della rete 192.168.0.0/24 andrà pertanto modificato con la vostra rete di monitoraggio
Ora verifichiamo che lo script giri correttamente
./check_bgp_mikrotik.pl -H MIKROTIK_IP -u apiuser -p VERYSECUREPASSWORD -b REMOTE_PEER_ADDRESS
Nel caso di peer attivo l’output sarà del tipo (return code 0):
OK – Peer BGP established from 1w20h48m46s
In caso contrario il return code dello script sarà 1 o 2 in funzione della criticità dello stato del peer (Peer disabilitato, peer disconnesso, peer non configurato o router non raggiungibile)
Questo è tutto, buon monitoraggio!
Ciao,
c’è un errore nel codice Perl, o meglio tu chiami la libreria Mikrotik mentre il file si chiama Mtik quindi o si rinomina il file .pm oppure cambi “use Mikrotik” in “use Mtik”
A presto,
Paolo
Ciao Paolo e grazie per la segnalazione.
Il collegamento era errato e faceva riferimento alla vecchia libreria utilizzata dallo script.
Un saluto
Mauro