This is a small command-line tool that runs some checks on remote servers and posts the results to a Slack channel.
Check the project's website for a full list of available checks and how to configure them.
Make sure you have Rust and Cargo installed, if not follow the instructions here.
cargo install remotesysmonitorCheck the output of the remotesysmonitor --help command for a list of available
options.
$ remotesysmonitor -h
Usage: remotesysmonitor [OPTIONS] <CONFIG>
Arguments:
<CONFIG>
Options:
-f, --full Post a check to Slack even if there is no ❌ in the checks
-p, --print Print the output of the checks in stdout
-h, --help Print help
-V, --version Print versionYou need to define SLACK_HOOK_URL as an environment variable with the URL of the
Slack webhook you want to use and a path to the configuration file.
SLACK_HOOK_URL=<your-slack-hook-url> remotesysmonitor configuration.yamlThe configuration file should look like this:
servers:
- name: name-of-your-server
host: myserver.nl
port: 22
user: rodrigo
private_key: /home/rodrigo/.ssh/id_ed25519
checks:
ping:
url:
- /
load:
interval: 15
warning_cutoff: 50.0
number_of_subfolders:
path:
- /path/full/of/subfolders
custom_command:
command: cd /some/path && ./some_script.sh
list_old_directories:
loc: /path/full/of/old/directories
cutoff: 2 # days
- name: raspberryPi
host: ip.of.your.raspberry.pi
port: 22
user: rodrigo
private_key: /home/rodrigo/.ssh/id_ed25519
checks:
temperature:
sensor: /sys/bus/w1/devices/28-00000b694311/w1_slaveIt might make sense to configure a cron job to run this command periodically.
# Run every 10 minutes, it will only post to Slack if one of the checks has ❌
*/10 * * * * SLACK_HOOK_URL=<your-slack-hook-url> remotesysmonitor configuration.yaml
# Post a full report to Slack at 8, 12, 16 and 20 hours
## Running with -f will post to Slack even if there is no ❌ in the checks
0 8,12,16,20 * * * SLACK_HOOK_URL=<your-slack-hook-url> remotesysmonitor -f configuration.yaml