Skip to content

check_routeros - Monitoring MikroTik devices

GitHub issues GitHub forks GitHub stars GitHub license Documentation Icinga Exchange PyPI - Downloads PyPI - Python Version PyPI - Format PyPI - Status

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

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+