Healstone Monitoring System


Healthstone is a free, 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, SNS 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 ICMP, HTTP, HTTPS, SSH, RDP or SMNP probes for hosts that you want to monitor without agents. Probes are checked on a schedule every 1 minute.

Should you need professional support or customization, paid options are available. Contact us at contact@healthstone.info.


Installation packagehealthstone.zip
Source tree:https://github.com/dendory/Healthstone
Docker:docker run -p 80:80 dendory02/healthstone:2.1.8



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

2.2.0Removed validation of self-signed certificates for HTTPS probes.
2.1.9Added Docker check support.
2.1.8Fixed timeout issue with probes.
2.1.7Added 'contact restored' alerts.
2.1.6Added voice alerts, brought in external dependencies.
2.1.5Improved probes, added SNMP probe.
2.1.4Added AV check, changed Linux agent to log to syslog.
2.1.3Added domain check, improved settings page.
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.


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 the firewall is enabled
  • Check for running Docker containers
  • Check for an anti virus
  • Check if joined to a domain


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


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, run install.sh again, then systemctl restart healthstone.

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>. Check Syslog for logs. 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.

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?

Make sure you configured the types of notifications you want under Settings. Check the Apache/IIS log on the dashboard to see if the notify function failed for some reason.

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. You can also try to run the dashboard script manually from a command line to test probes.

Copyright (c) 2015-2019 Patrick Lambert