Documentation of Thola
A tool for monitoring and provisioning (coming soon) network devices written in Go. It features a check mode which complies with the monitoring plugins development guidelines and is therefore compatible with Nagios, Icinga, Zabbix, Checkmk, etc.
Thola currently has three main modes of operation with various subcommands:
identifyautomatically identifies the device and outputs its vendor, model and other properties.
readreads out values and statistics of the device.
read available-componentsreturns the available components for the device.
read interfacesoutputs the interfaces with several values like error counters and statistics.
read count-interfacescounts the interfaces.
read cpu-loadreturns the current cpu load of all CPUs.
read memory-usagereads out the current memory usage.
read upsoutputs the special values of a UPS device.
checkperforms checks that can be used in monitoring systems. Output is by default in check plugin format.
check identifycompares the device properties with given expectations.
check snmpchecks SNMP reachability.
check interface-metricsoutputs performance data for the interfaces, including special values based on the interface type (e.g. Radio Interface).
check cpu-loadchecks the average CPU load of all CPUs against given thresholds and outputs the current load of all CPUs as performance data.
check memory-usagechecks the current memory usage against given thresholds.
check upschecks if a UPS device has its main voltage applied and outputs additional performance data like battery capacity or current load, and compares them to optionally given thresholds.
check thola-serverchecks reachability of a Thola API.
More features are coming soon:
- Read out additional information
- Inventory data
- Sensors and Status Flags like temperatures, frequencies, alarms, etc.
- Device specific data (e.g. DSLAMs)
- More checks
- Hardware health
- Device specific checks
We support a lot of different devices and hope for your contributions to grow our device collection. Some examples are:
Basic interface readout is supported for every device.
Currently we mostly work with SNMP, but already provide basic features for HTTP(S). We plan to support more protocols like telnet, SSH and more.