check_routeros - Monitoring MikroTik devices
This is a monitoring plugin for Icinga, Nagios and other compatible monitoring solutions to check MikroTik devices running RouterOS. It uses the API to fetch the required information.
Requirements
- Python >= 3.8 (Some checks might still run with older Python 3)
- Python Packages
Installation
PIP
If you want to use pip we recommend to use as virtualenv to install the dependencies.
pip install -r requirements.txt
Copy the script check_routeros.py
and the directory routeros_check
into your plugin directory.
Debian/Ubuntu
Install the required packages
sudo apt-get install python3 python3-click python3-librouteros python3-nagiosplugin
Copy the script check_routeros.py
and the directory routeros_check
into your plugin directory.
From PyPI
Install the package from PyPI.
pip install routeros-check
You should be able to run check_routeros
after the package installation has been finished successfully.
> Note > You have to update the command in the icinga CheckCommand example config.
Usage
To get the latest help just run the following command.
./check_routeros.py --help
To get help for a subcommand just extend the previous command with the subcommand.
In the example below you will see how to get help for the tool.ping
subcommand.
./check_routeros.py tool.ping --help
Subcommands/Checks
All commands require at least api
and read
permissions.
The permissions documented in the table are additional permissions.
Subcommand | Permissions | RouterOS | Description |
---|---|---|---|
interface | - | 6, 7 | Check interfaces |
interface.gre | - | 6 | Check GRE interfaces/tunnels |
interface.vrrp | - | 6 | Check the state of an VRRP interface |
routing.bgp.peers | - | 6 | Check if connection to BGP peers is established |
routing.ospf.neighbors | - | 6 | Check if ospf neigbhors are reachable |
system.clock | - | 6, 7 | Check the time from RouterOS against local time |
system.cpu | - | 6, 7 | Check the cpu load |
system.fan | - | 6, 7 | Check the fans |
system.memory | - | 6, 7 | Check system memory |
system.ntp.client | - | 6, 7 | Check the ntp client, offset and stratum |
system.license | - | 6, 7 | Check the license level and deadline and renewal date |
system.power | - | 6, 7 | Check the overall power consumption if available |
system.psu | - | 6, 7 | Check the current, voltage and state of the power supply |
system.temperature | - | 6, 7 | Check the cpu, system, board and more temperatures. |
system.update | - | 6, 7 | Check for updates |
system.uptime | - | 6, 7 | Check the uptime |
tool.ping | test | 6, 7 | Run the ping command on the device |
To get more information about the available subcommands/checks have a look at the check_routeros Command Reference
Resources
- Git-Repository: https://github.com/DinoTools/monitoring-check_routeros
- Issues: https://github.com/DinoTools/monitoring-check_routeros/issues
- Documentation: https://dinotools.github.io/monitoring-check_routeros
License
GPLv3+