Article Image


Ssh System Monitor (SshSysMon) is a system monitoring and alerting tool that operates purely over ssh connections, allowing for easy installation and wide portability between unix platforms.

I started this project after spending quite some time searching for a simple solution to monitor various small servers that I operate. Quite a few folks out there recommend using solutions such as Nagios/Icinga, Zabbix, Munin, Monit, etc. Don't get me wrong, they're all amazing tools and I use many of them on a regular basis as part of my profession... but I also don't want to spend forever setting up and maintaining these tools, thus, I made SshSysMon.

The principal is simple: Most Linux installs these days come with Python, and probably also comes with SSH, and if not is very easy to install. It's a stateless application that will simply use a YAML configuration to figure out how to talk to a target machine via ssh, and will mostly read its /proc filesystem to gather metrics, and compare them to alerts. If an alert is triggered it will notify all configured channels for a given node.

Here's an example configuration:

  "Name of server":
    driver: ssh
      username: myuser
  channels: # Notification targets
    - type: email
        subject: "Something went wrong on {server}"
  alerts: # All alerts and inspectors
    - type: memory
        "Low Swap": "swap_free < 50000"
        "Low Memory": "mem_free < 50000"
    - type: disk
        "Low Disk Space": "disk_free < 500000"
  summary: # Optional, if not provided, alerts will be used to auto-configure summary
    - type: memory
    - type: diskspace

If you're interested in learning more, check out its website, for full docs and source code.

Blog Logo

Christopher LaPointe



Chris LaPointe

Another site of Code

Back to Overview