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.