We are looking for a piece of software to speed-up a task which takes up a lot of time, and should be relatively easy to automate.

We are a managed service provider, who manage many servers on a range of customer sites. Every week, one of our engineers works on compiling a report detailing the health of each server (mostly Windows Server 2008/2012/2016 and some Ubuntu/RHEL), along with problem reports and how the issues were solved. For example, one of these reports may details to the customer that their server has been online all week, except for 1 hour of downtime which was resolved.

We need to be able to measure the following metrics, and view them on some central dashboard. We're happy using something self-hosted or a SaaS solution.

We need the following features from the software:

  • Centrally managed dashboard
  • Disk space monitoring
  • SMART HDD iminent failure warnings
  • Degraded RAID array warnings
  • Pending Windows updates
  • Windows Server Backup status / Azure MARS Backup status
  • List of running services (or ideally, just says "ImportantService.exe" is stopped, for example)
  • Antivirus status and warnings (we use Sophos Cloud so not absolutely essential)
  • UPS battery status (from APC meter)
  • Custom reports to send to customers (important - automatically collates health from several relevent servers)
  • High volumes of failed login attempts
  • Custom event log readings

I'm completely happy for any of the above features to be missing, providing the tool offers extensibility. I'm happy to write add-ons for such software, but I've been trying to undertake this myself by running a script on each server to generate the report, and then a listening server parsing and storing the data. After hitting too many brick walls with this, there must be a better way.

PCI compliance and network security are a must, so the service running on the server cannot be used to accept incoming connections.

P.S. we are already using Cisco Meraki and although it offers some of these features, it is far too basic for our requirements (if I'm missing something, prove me wrong).

  • Sounds like Zabbix is able to perform some of these, I don't know enough about it though. – Nicolas Raoul Apr 12 '18 at 7:38
  • Thanks for your recommendation, I'll check it out. It looks like it fulfils most of our needs, and with being open source, it can be customised and extended. – jpl42 Apr 12 '18 at 15:36
  • If you like it, please post an answer about it (answering your own question is OK), thanks! :-) – Nicolas Raoul Apr 13 '18 at 1:42
  • It looks like Zabbix requires each host have a publicly accessible port. Since we are going to be monitoring remote servers, in this situation, opening ports on the client-side is infeasible. I'm currently looking at DataDog, but I will be sure to post an answer once I've found one. – jpl42 Apr 17 '18 at 13:27

I've ended up building a custom solution for this, part which can be found on GitHub.

The GitHub repo contains the endpoint agent to be installed on servers, which generates a report of all the information stated in the original question. This report is saved as an XML file, which is then uploaded to a remote server.

Feel free to use the above GitHub link as a starting point for a project. Unfortunately, I'm not able to share the backend code, but you just need a script to access the XML upload and parse it, store it in a database and run a cronjob to check it every so often, this cronjob would then read out any errors and send alert emails on them.

If I can help anyone else get setup with my above server agent, log an issue on the GitHub page.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.