In November this year the OSMC 2021 took place. The two-days conference here in Nurembergs Old Town was all about Open Source Monitoring Solutions. This year, two students from Saarbrücken, Tobias Berdin and Stephan Schmidt from Inexio Deutsche Glasfaser talked about Thola, a new open source (licensed under the BSD 2-Clause license) tool for reading, monitoring and provisioning network devices.
How Thola has developed
Before they developed Thola, they used an old check plugin written in Perl for monitoring network devices. With the growth of their network, the usage of hardware resources also increased. In order to save resources, they began to create a new tool for monitoring and proviosiong network devcies in Go called Thola. Its first beta release was in late October 2020. The last major release 0.5 was in October 2021. It serves as a unified interface for communication with network devices and features a check mode which compiles with the monitoring plugins development guidelines.
Some of its features:
- reading, monitoring and configuring of network devices
- from many vendors like Huawei, Nokia, Cisco
- from different device types like switches, routers, UPS
- you can easy add support for more devices with YAML configuration files
- support for icinga
- RESTful API
Thola’s commands
With Thola you can monitor network interfaces, hardware stats and many more. This can be done by simply using Tholas’s CLI mode. Thola has some different commands:
- thola identify – for automatically identifying a device with its properties like Vendor, Model, Serialnumber by its IP-Address
- thola read interfaces – for reading out special interface informations of a device
- thola check – can check metrics of devices and outputs them in a check plugin format, it can be used in monitoring tools like Icinga2
- thola api – for configuring the thola api. Afterwards you can use the thola-client binary
Here is an example for checking out the cpu-load of a network device with thola check:
./thola check cpu-load 192.168.112.35 --warning 80 --critical 90 WARNING: average cpu load is 84% | 'cpu_load'=84%;80;90;0;100
For every supported vendor exists a specific device class, so for the ip10 devices from Ceragon exists a subclass in the ceraos-device-class. These device classes are written in a .yaml file. They are easy to write, not bound to a programming language and embedded in a binary. You can also automate the usage of thola with Ansible.
Full talk and more from and about OSMC 2021
Watch the whole talk by Tobias Berdin and Stephan Schmidt here:
Since OSMC 2021 is unfortunately over we still have something for you: Did you already check out this year’s conference archives? They provide you slides and videos of each talk and also some photographs of the conference itself.
OSMC 2022 will take place from November 14 – 16 and we’re already looking forward to meeting you all again!