I’m no helicopter admin, not for lack of trying, I usually pop in a few times a week to run some routines and make sure nothing is terribly going awry. I handle most of my business via the terminal, which is all fine and dandy, but outside the various
top commands, I’ve never thought of another way to go about checking a server’s resources. Awful, I know, but that’s why today’s article will be focusing on server monitoring tools of the web-based variety. Let’s check out these killer server
Monitorix is an actively developed open source server monitoring tool which requires Perl and its assorted packages as a dependency, but once its installed and running its resource footprint is pretty light. It displays and collects information about your server in timely snapshots (daily, weekly, etc) and outputs these on its own provided
http server. In order to see the provided web panel you must navigate to
Monitorix has a “classic” look going for it, giving me heavy 2003 vibes, but I’m a sucker for dark themes so it gets a pass. Out of the box, Monitorix offers nine graphs to view (system load, filesystem I/O, network traffic, to name a few) each of which can be popped out into its own window or all together on a single page. More Monitorix graphs are available for viewing by editing the
/etc/monitorix/monitorix.conf file. Some neat options include monitoring web-servers (apache, nginx), database monitoring( mongdb, mysql) and fail2ban monitoring too!
With many more options configurable in that file. By default the panel is unsecured, meaning anyone with your IP can see it too, so secure it as soon as possible by editing
/etc/monitorix/monitorix.conf and enabling basic access authentication which will prompt you to for a user/pass combo. Monitorix comes with a
htpasswd.pl helper script (located at their github or in the tarfile) or you can install
apache-utils to generate a
Installation is a breeze
Configuration done by file only.
Must be manually secured via htpasswd
Lightweight (requires Perl and some additional)
Can monitor many kinds of services
Loads of graphs with more available in the conf file.
Zabbix is an entirely free (they offer commercial support), open source enterprise-level monitoring tool. Zabbix supports multiple linux platforms, including Raspi, and SUSE, along with the standard fare (RHEL, Debian, Ubuntu, CentOS) has a customizable installation generator on their site. After installing the software and its required web server (apache | nginx) and database (MySQL | PostgreSQL) you are greeted with Zabbix’s web UI which almost reminds me of WordPress crossed with Grafana. Zabbix’s dashboard is a truly flexible web UI, that is completely customizable. You can freely edit every panel, much like Grafana, and it provides many options for views like network monitoring, maps & graphs, problem logs and visual at-a-glance host availability and problem views. Its sidebar has a bevy of more windows to set up the advanced features of Zabbix like metric collection (including services, databases, logs, HTTP/HTTPS) , configurable “smart” thresholds for problem detection, and also supports custom and 3rd party monitoring integrations for a variety of sources. Zabbix requires a proper setup to get any real meaningful data from it, which may steer away more casual users.
Advanced metric collection
Requires a SQL database and web server pre installed
Requires a time investment for a practical configuration
Provides monitoring integrations for a variety of services on your site
Moderate learning curve
Alerts via email or online SMS gateways
Security minded with encryption on all communication between Zabbix components.
Monit is an open source server monitoring system that takes a more active role than just monitoring. Depending on its configuration
monit can monitor and relaunch failing programs or it can halt processes using too much RAM and send you email alerts for all of it. It can also monitor files and directories, network connections, processes, scripts, along with the usual system monitoring. It is very lightweight and doesn’t install additional packages which is nice, we don’t need to be bloating our system unnecessarily. Monit is configured and controlled via a
/etc/monitrc file. It also has a web interface which gives you a simple front end for checking some quick stats about your machine. It supports monitoring many internet protocols like HTTP, SSH, SMTP (& POP3, IMAP), LDAP, FTP, and can send email alerts if it there are problems. This option really caters to the performance minded sysadmin who doesn’t need a fancy panel, but would like to have a quick view and advanced package and protocol monitoring. Monit also offers a commercial version as a one time charge that provides advanced monitoring and support.
Lightweight Configuration done by file only.
Low resource usage profile
Almost too minimal, but some folks really dig that.
Very minimal, focuses on the essential information
Email alerts configurable via SMTP
Easy to configure with documentation
Glances is an open source, python based system monitoring tool that is a
top alternative. If you know top, then you know how kickass it is, that same mojo is here as glances provides you with an abundance of real-time resource usage, like CPU load, disk I/O, running processes, and network information. Also it won me over because it makes me feel like a cool guy whenever I open a
top in terminal. It’s on this list because it provides both an ncurses mode you can access via terminal and a web panel interface as well. The best way to experience glances is to
pip install glances, as I found while the compiled package that is in the apt repo to have a bugged web browser mode at the time of this writing but the traditional ncurses mode works just as well. Glances also supports being installed via docker, to avoid having to directly install all the python dependencies. if you are looking for a no frills, no fuss system monitor with a web portal, give glances a try!
Available where ever python3 is, also check your package manager for glances
The web UI is unsecured. Must be manually secured
Low resource profile, just like top
On the ugly side of UI, but beauty is in the eye of the beholder, right?
Supports docker for a portable install
NetData Agent (Website: https://www.netdata.cloud/agent) — The OSS agent alone looks really cool and provides handy information, but constantly advertises its cloud component that requires a subscription in the dashboard. Aside from that, it has a modern flat looking dark UI that shows the system stats, processes, the usual. The cloud supports monitoring swarms/clusters, among other things.
Grafana (Website: https://grafana.com/) — A super sleek graphic focused metrics/monitoring platform that can also be configured to show tons of system/log/database information, but it really requires an advanced user to get the most out of it. Check out Grafana’s sandbox of a full dashboard to get a clear idea of it, linked here.
Munin (website: https://munin-monitoring.org/) — a free opensource node/master network monitoring system that focuses on a easy install and is pre-configured (unlike Grafana) with lots of graphs already set up in the dashboard.
As a final note, make sure that your first post installation step is to secure whatever monitoring tool you decide to use. Something like
htpasswd or IP whitelisting should do the trick or simply disabling the web panel when not in use is a pro tip. This is sensitive system information that you wouldn’t want to expose to the world. That said any one of these tools would make a fine compliment to a full server management suite like Cockpit or Webmin to have a truly nomadic server management/monitoring UI. My personal choice would have to lean towards a combo of monit/glances, but that’s just because I’m a minimalist terminal guy. Thanks for reading and happy monitoring!