Article Image
read

SshSysMon

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:

servers:
  "Name of server":
    driver: ssh
    config:
      host: myhostname.com
      username: myuser
  channels: # Notification targets
    - type: email
      config:
        toAddr: myemail@gmail.com
        subject: "Something went wrong on {server}"
  alerts: # All alerts and inspectors
    - type: memory
      alarms:
        "Low Swap": "swap_free < 50000"
        "Low Memory": "mem_free < 50000"
    - type: disk
      alarms:
        "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


Published

Image

Chris LaPointe

Another site of Code

Back to Overview