The last couple of days I have been working on a new project I want to introduce: IcingaBusylightAgent.
It all began with a new telephony system in our office. Instead of using physical phones, my colleagues are now using softphones. In addition to this, a gadget called Busylight representing the instant messenger status is mounted to a monitor or wall. If a call is received, the light blinks and a ringtone is played.
I was inspired when I saw that the manufacturer of this USB gadget, Plenom, opens the interface for third party applications by supplying a SDK (Software Development Kit) for .NET programming languages. After some years, this was the motivation for me to have a look at Microsoft Visual Studio again…
The first use-case I saw was using the USB light along with Icinga2. Faulty services and hosts could be reported by the light – depending on your working method this might be more eye-catching than receiving yet another mail.
Icinga2 offers a well documented API which is used in this project. After an appropriate user was authenticated for data exchange, host and service information can be gathered. These data are returned in JSON format which enables easy data processing. An agent could check these data in periodic intervals…
Currently, the agent can be spotted in the notifcation area (Systray) of Microsoft Windows once it started. In periodic intervals, an Icinga2 installation is contacted using HTTPS. All services that are not okay and/or acknowledged will be processed. Depending on the state and user configuration, the Busylight will pulse and a sound is played.
The user can customize a variety of settings, e.g. colors and sounds as well as the update interval.
The software is at a very early state, there are plenty of missing functions – there are bugs. As I’m not a professional developer, I’m happy about helping hands. I published the source code on GitHub – you will also find the full homework list there.
To name some things:
- Tooltips in the Systray could display faulty hosts or services
- Blacklists/Whitelists could be used for filtering hosts and hostgroups
- Coexistency with Skype for Business causes trouble sometimes
You are a C# god? Contact me! 🙂