Skip to content

Files

Latest commit

5fb0c05 · Oct 25, 2023

History

History
205 lines (186 loc) · 7.25 KB

System Monitoring in UNIX.adoc

File metadata and controls

205 lines (186 loc) · 7.25 KB

System Monitoring in UNIX

Tool Debian Packages Written in Stars Storage SNMP NRPE Prometheus Web Server Comments

MRTG

standard

Perl

218

RRDTool

Yes

External (Apache)

Cacti

standard

PHP

1.5k

RRDTool, MySQL

Yes

External (Apache)

Debian package can automatically integrate with apache2 or lighttpd (the installer automatically creates /etc/apache2/conf-available/cacti.conf). At the same time, Cacti can’t proceed w/o a MySQL database, and database connection needs to be configured manually, via /usr/share/cacti/site/include/config.php (the dbconfig-mysql package generates /etc/cacti/debian.php and creates a symlink, but the file needs to be revised afterwards). The default administrator (admin) password is the same as the database password.

Monitorix

standard

Perl

1.1k

RRDTool

No

No

No

Built-in (monitorix-httpd listening on port 8080)

Simple to set up and run. Few dependencies. Plenty of metrics available by default.

Icinga

standard or external

C++

1.9k

Yes

Yes

Zabbix

standard or external

C, Go, PHP (front-end)

3.4k

MySQL or PostgreSQL (via ODBC)

Yes

Yes

External (Apache, Nginx, or any other)

Can use either MySQL or PostgreSQL as a storage layer. Can monitor JVM applications via JMX. Standard Debian packages have been removed from testing. The agent listens at TCP port 10050 (either zabbix-agent (for SysV init) or zabbix-agent2 (for systemd) package should be used, but not both). The standard Debian package has outdated Apache configuration: it contains php_value definitions for either mod_php5.c or mod_php7.c, while the current PHP version in Debian 12 is 8.2, and we need either <IfModule mod_php.c> or <IfModule php_module>. The database needs to be manually created by running SQL scripts (schema.sql, then images.sql followed by data.sql). The database collation should be set to either of utf8_bin, utf8mb3_bin, or utf8mb4_bin. Also, when using MariaDB (the default MySQL choice on Debian), AllowUnsupportedDBVersions should be set to 1. The default username is Admin with the password zabbix.

Prometheus

standard

Go

50.3k

Yes

Yes

Built-in

By default, listens at TCP port 9090, which may conflict with a TeamCity Agent or a MinIO container, if both are running on the same host. Can monitor S.M.A.R.T attributes out of the box, using the prometheus-node-exporter-collectors package.

OpenNMS

external

Java

844

JRobin or RRDTool (via jrrd2) or Newts, PostgreSQL (versions 10 to 15).

Yes

Yes

Yes

Built-in (Jetty), on port 8980

Painless installation. Administration Guide. Can receive data from Nagios NRPE agents.

Sensu Go

external

Go, previously Ruby

922

PostgreSQL

Built-in, on port 3000

No initscripts, no config file templates (intended to run in a Docker container). The default PostgreSQL config file location in Debian 12 is /etc/postgresql/15/main/pg_hba.conf.

Netdata

standard (1.37.1) or external (1.43.0)

C

65.5k

Only real-time data by default, but multiple export destinations may be configured.

Yes (requires netdata-plugin-go)

Yes

External (Apache) or built-in

Plug-ins can be written in Bash or Python.

Grafana

external (version 9.5 can also be installed from OpenNMS repository)

TypeScript, Go

57.6k

Elasticsearch

external

Java

65.5k

openITCOCKPIT

external

PHP

229

RRDTool, Redis

Yes

Yes

External (Nginx)

Conflicts with Apache. Automatically installs Grafana. Pulls and starts images of Puppeteer and Nodejs.

Pandora FMS

standard (agent only) and external (server)

PHP

404

MySQL

Dozens of dependencies, installation script intended only for Ubuntu Linux and can only be run as root.

Sample Apache configuration for Netdata

<IfModule mod_proxy.c>
        ProxyRequests Off
        ProxyPreserveHost On

        ProxyPass /netdata http://127.0.0.1:19999 connectiontimeout=5 timeout=30 keepalive=on
        ProxyPassReverse /netdata http://127.0.0.1:19999
</IfModule>

<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteRule ^/netdata$ /netdata/ [L,R=301]
</IfModule>