openITCOCKPIT Blog

openITCOCKPIT Monitoring Agent 3.0 - Public Beta

14.04.2021

Today we launch the Public Beta of the openITCOCKPIT Monitoring Agent 3.0. Thanks to the feedback from the community users and enterprise customers we know that the openITCOCKPIT Monitoring Agent is very popular. Therefore we want to get rid of any nasty bugs and issues upfront.

To resolve all issues of the Monitoring Agent 1.x (Python) we decided to go the extra mile and to do a full rewrite of the software with Go.

Why a complete rewrite

First of all let’s address the elephant in the room. Why a complete rewrite? Why Go instead of Python?

Unfortunately the Python Agent was suffering from different issues. The most visible issue to the user was the stability of the Agent. From time to time the Agent did not respond to any requests so the monitoring system could not do it’s job. It also turned out that most of the Python tools and libraries were not designed to be executed on Windows. In addition we learned a lot about how to develop software for Windows at all.

With all the issues and knowledge in mind we started from scratch. Obviously one of the first decision was to switch to a programming language more suitable for this use case.

We created the following checklist to compare different programming languages:

  • - Free and open source language
  • - Available for Linux, macOS and Windows
  • - Available knowledge in the Team or Company
  • - Free IDE so community members can contribute
  • - Real Threads are a plus
  • - Compiles to a single executable file

Although a .NET Core based programing language would fulfill all points of this list we decided not to go with .NET due to it's from Microsoft and we have no experiences in the Team what features are available on Linux and macOS.

ARM and beyond

We think that the ARM architecture will be used more frequently in the future. It’s the common CPU architecture of smartphones and single-board computers. The “Apple M1” Chip used by the new MacBooks and Mac mini is also an ARM-based chip. For us it was very important that the new Agent would support these systems without any problems. Thanks to Go the openITCOCKPIT Monitoring Agent is very portable. We provide precompiled binaries for arm64 (e.g. Apple Silicon / M1) and armhf (e.g. Raspberry Pi).

The documentation also contains an example of how to run the Agent on a Raspberry Pi 1 Model B.

Installing the new openITCOCKPIT Monitoring Agent

Linux

Debian based systems got a new dedicated apt repository.

For the first time we also provide a repository for RPM based distributions like Red Hat Linux, CentOS or openSUSE.

Please see: https://github.com/it-novum/openitcockpit-agent-go#installation

macOS

We created a hole new PKG-installer for macOS. One for Intel Macs and one for M1 Macs. Tested from macOS 10.14 Mojave to macOS 11.x Big Sur

Please see: https://github.com/it-novum/openitcockpit-agent-go#macos

Windows

The new MSI-installer is no longer build with the WiX Toolset. We decided to use the commercial tool Advanced Installer to build reliable MSI files.

Please see: https://github.com/it-novum/openitcockpit-agent-go#windows

Downloads

All files can be downloaded from: https://openitcockpit.io/files/openitcockpit-agent-3.x/

Update from Agent 1.x to 3.x

We tried to keep things as compatible as possible. As you probably already have suspected, with all the major changes we did, it was not possible to be 100% compatible with the Python Agent.

For this reason we provide detailed update instructions: Update from Agent 1.x to 3.x

openITCOCKPIT 4.2 required

The new Monitoring Agent requires openITCOCKPIT 4.2 which has not been released as stable version yet. To join the public beta you need to update your system to the latest nightly build.

  1. Make sure you have the latest versions installed.
apt-get update
apt-get dist-upgrade
  1. Update to the latest nightly build of openITCOCKPIT
echo "deb https://packages.openitcockpit.io/openitcockpit/$(lsb_release -sc)/nightly $(lsb_release -sc) main" > /etc/apt/sources.list.d/openitcockpit.list
apt-get update

apt-get dist-upgrade
  1. Switch back to the stable repository to get openITCOCKPIT 4.2 as soon as it gets released
echo "deb https://packages.openitcockpit.io/openitcockpit/$(lsb_release -sc)/stable $(lsb_release -sc) main" > /etc/apt/sources.list.d/openitcockpit.list
apt-get update

New documentation

We provide the openITCOCKPIT Monitoring Agent as free and open source software. We invite everyone to contribute ideas and code. Not only developers could contribute to open source projects. Also sharing ideas, providing translations, updating the documentation or sharing screenshots are important contributions. For this reason we decided to use the Wiki feature of GitHub to host the new documentation: https://github.com/it-novum/openitcockpit-agent-go/wiki

So if you find a typo or want to improve the documentation, please don’t hesitate to click the Edit button! :)

New web interface

While we were refurbishing all the Agent related code anyway we also created a new Wizard. It’s now more user friendly and has better integration for the Push Mode.

Feedback

We would like to ask you to provide feedback about the new openITCOCKPIT Monitoring Agent and to report any issues to this GitHub issue: https://github.com/it-novum/openitcockpit-agent-go/issues/47

In addition you can join the openITCOCKPIT Community Discord Server

Credit

The gopher’s logo of this blog post was inspired by the Go gopher designed by Renée French.