About

Healthstone is an open source, lightweight, self-hosted and agent based system monitoring solution able to run many customizable health checks. It is composed of a dashboard which runs on a Windows or Linux server, along with agents for Windows and Linux hosts that you wish to monitor. The Windows agent is a binary which runs as a system service and connects to this dashboard, while the Linux agent is a Python script doing the same thing. The dashboard can be customized to send you notifications through email, Pushbullet or NodePoint tickets when a client stops checking in, or if any of the configured checks fails. Configuration is retrieved in the form of templates from the dashboard by all agents. Templates are stored in the templates folder and can be customized for your needs.

The server component runs the dashboard against which Healthstone clients can register. It must be run on a Linux server with Python 3.x and Apache installed, or a Windows server with IIS (with the CGI and ISAP features) and Python 3.x installed. The dashboard also has the ability to use probes for hosts that you want to monitor without agents. Probes are checked on a schedule every 1 minute.

Download

Installation

Dashboard

The server component runs the dashboard against which agents connect. It requires Python 3.x and runs on IIS or Apache with CGI and ISAPI support enabled.

  1. Download healthstone.zip onto your server and unzip it where you want the files to live, for example C:\healthstone on Windows, or to a temporary location on Linux.
  2. Run setup.bat as a local administrator on Windows, or setup.sh as root on Linux.
  3. Browse to the dashboard at http://localhost/healthstone and click on Settings. The default access code is '1234', make sure to change it.

Windows Agent

The Windows agent can run on any recent Windows host and requires Microsoft .NET Framework 4.5 to be installed.

  1. Download healthstone-agent-win64.zip from your dashboard onto each host you want to monitor, or to a central accessible network location.
  2. Run install.bat as a local administrator on each host to copy the files and install the service.

Linux Agent

The Linux agent can run on any Linux host and requires Python 3.x to be installed.

  1. Download healthstone-agent-linux.tar from your dashboard onto each host you want to monitor, or to a central accessible network location.
  2. Run sudo ./install.sh to install the script on the local system.

Release notes

VersionNotes
2.1.2Added custom script notification, notify on IP change.
2.1.1Added admin access code and search options.
2.1.0Converted settings to be web based.
2.0.6Added JSON API, SNS notification support.
2.0.5Added onlysystemdisk option, added agent-less probes.
2.0.4Added mobile skin to dashboard, dark theme.
2.0.3Improved Linux setup, added update and firewall checks to Linux agent.
2.0.2Added network and firewall checks, 32/64bit support.
2.0.1Fixed Windows Updates reporting on Win10, improved Linux agent error handling.
2.0.0Complete rewrite of agents, they now fetch their configuration from the dashboard.
1.2.2Added some Linux agent checks.
1.2.1Added missing local user check.
1.2.0Added proxy support, TLS 1.1/1.2 support to Windows client.
1.1.0Consolidated README files into a new manual.
1.0.9Added system log to dashboard, various checks to Linux client.
1.0.8Added email and NodePoint notifications to dashboard, setup script.
1.0.7Added access code and Pushbullet support to dashboard.
1.0.6Basic Linux client created.
1.0.5Added refresh, chart to dashboard.
1.0.4Added server component, added support for dashboard.
1.0.3Added NTP check, simplified installation process.
1.0.2Added SNS notification, automated build process.
1.0.1Added various checks, added Pushbullet support, documentation.
1.0.0Initial version.

Features

Supported platforms: Linux agent, Windows agent, Dashboard


Health checks

  • Check for CPU load threshold
  • Check running processes
  • Check for low disk space
  • Check for physical memory threshold
  • Check the network latency
  • Check local users
  • Check if system updates are enabled
  • Check if Windows firewall is enabled

Notifications

  • Email
  • AWS SNS
  • NodePoint Ticket System
  • Pushbullet notification system
  • Run a custom script
  • Write to event log
  • Write to console

FAQ

Why can't I access the dashboard in a web browser?

Make sure Python 3.x is installed correctly. Try to run dashboard.py manually from the command line and see the resulting HTML code. Make sure it has write access to the ../db folder. Make sure CGI support is enabled on your web server.

How do templates work?

Each template lists a number of modules that you wish the agents to process. Only the [General] section is mandatory, but each section kept must have all its keys listed. Do not use quotes or multiple lines for key values. Templates are not saved on hosts, each agent will fetch its specific template on every poll. Template filenames must contain only alphanumeric characters and end with .template. The same template can be used for Windows and Linux agents, although you may want to create multiple templates and divide them according to your network needs, such as a template for Windows servers, one for workstations, one for Linux, etc.

How do I use a proxy server?

On Linux, the proper http_proxy and https_proxy environment variables must be set prior to Healthstone agent starting. On Windows, add the Registry key proxy to HKLM/Software/Healthstone in the format: http://proxy-server.com:port.

How do I change the dashboard or template agents use?

On Windows, edit the Registry entries in HKLM/Software/Healthstone with the new values then restart the service. On Linux, edit /etc/rc.local, kill the currently running agent and restart it.

Why is the Windows agent unable to connect to my highly secure dashboard site?

Some versions of Windows will not be able to connect to a dashboard running on a web server only offering TLS 1.1 or above. Add the Registry setting tlsconly in HKLM/Software/Healthstone then restart the service.

The agents don't show up on the dashboard, how do I troubleshoot the issue?

For the Linux agent, make sure the script is running with ps aux | grep healthstone. If it isn't, try to start it manually and see if any error occurs: /usr/bin/healthstone.py <dashboard url> <template name>. For the Windows agent, check the Event Viewer under the Application log, all errors should be logged there.

I see this error in the Event Log: Cannot load Counter Name data because an invalid index?

Some Windows systems seem to have their performance cache get corrupted from time to time. Try the following in an Administrator command window: lodctr /r.

Why is the Linux agent not running/stopped unexpectingly?

Check the log at /var/log/healthstone.log for hints as to why it stopped. Try to run the agent manually. The agent is set to run automatically on boot from /etc/rc.local.

Agents are not reporting any check or losing contact after a template change?

Make sure your template is not corrupted or misformed. Agents are set to revert to the default configuration of 30 seconds interval with no module being run if they cannot parse the template successfully. There is also a limit to the amount of data passed by the agents, try turning verbose to false.

I'm not getting notifications?

Check the Apache log to see if the notify function failed for some reason. This should be under /var/log/httpd/site_name.error_log.

Probes are not working?

Probes rely on the dashboard component to run every minute on schedule. The setup process attempts to add a crontab entry (for Linux) or a scheduled task (on Windows) to run the script. Check your system logs to see if the task runs properly, and fix any error that may prevent it from running.