Free Open Source Software has a long tradition in providing system monitoring software. And this domain is still a stronghold for traditional programming languages of system administrators, shell and Perl.
This overview distinguish basically two different kind of Monitoring software: All purpose server monitoring and special device monitoring. Of course the boarders are blurred. While MRTG started as a special network device monitoring tool where the focus is to know what happened in the past. For example how much traffic has been seen last month. This is marked as ‘Usage’. The other solutions, like the Nagios orientated ones, focus more on the question if a certain server is up or not and if the data of certain devices are in expected ranges or not. This is marked as ‘Mon.’.
Overview
Software
Language/Dependency
Query
Deb
Kind
License
CACTI
PHP5 Mysql Perl Apache
yes
GPL
CENTREON
CHECKMK
Python,C++,Shell,C,JS
Nag.
no
GPLv2
GANGLIA
C, Perl, PHP, Python
yes
GRAFANA
Go, TypeScript, Shell
no
Usage
AGPL-v3
ICINGA
Perl
Nag.
yes
Mon.
GPLv2/3
ICINGA2
C++, web: PHP
Nag.
yes
Mon.
LIBRENMS
PHP,MySQL
SNMP
no
GPLv3
MANTIS
MRTG
Perl
SNMP
yes
Usage
MUNIN
Perl httpd
yes
Usage
NAV
GPLv3
NETDATA
C, Go, JavaScript
yes
GPLv3
NETDISCO
Perl, Javascript
BSD3
NETSAINT
NETXMS
Java, C++, C
no
LGPL/GPL
NAGIOS3
Perl
Nag.
yes
Mon.
OBSERVIUM
PHP
SNMP
no
Observium
OPENNMS
Java
no
AGPLv3
OPSVIEW
OP5/NINJA
OP5/MONITOR
PROMETHEUS
Go, TypeScript, Shell
yes
Mon.
Apache-v2
SHINKEN
Phython
Nag.
yes
Mon.
AGPL-v3
THRUK
ZABBIX
C PHP
yes
GPLv2
Nag. - Nagios query type, including nrpe
Usage - Tool display usage as target, no warnings
Mon. - Tool monitors, give warnings