SSH Monitor#
Introduction#
SSH Monitor enables you to supervise any target computer through SSH commands (i.e. shell instruction executed through a SSH connection).
In particular, it allows to monitor any hardware/software data from one or multiple targets (e.g. data like network activity, disks filling level, RAM space left, CPU overload, RAID status, temperatures values, expressions in log files, etc).
In fact, SSH Monitor is made in such a way that it allows you to monitor absolutely any data, as long as you can come up with a shell instruction that can retrieve that data.
For example, you might want to retrieve the available RAM from a Linux target.
In this case, you might end up using the following
shell instruction: free -m | grep 'Mem:' | awk '{print $7}'.
Once you found the right shell instruction retrieving the data you want,
then you’ll have to specify it in a dedicated configuration file (here, a
.substitutions file).
A lot of common shell instructions are already included in this project as references/examples. You can use them as is, or tweak them, or come up with new ones… The choice is yours about what to retrieve and how to retrieve it.
Important
SSH Monitor is not meant to replace dedicated monitoring tools (e.g. like Grafana). It is intended to be used in additions to this kind of tools. For example:
A dedicated monitoring tool might be more interesting for metrics like RAM usage, but maybe not suited if you want an EPICS alarm on the RAM consumption of a specific target.
A dedicated monitoring tool might also be more interesting for common metrics, but maybe not appropriate if you are looking for very specific informations like particular expressions (specific for you project), e.g. in some weird log files…
A dedicated monitoring tool might need a data-exporter to be installed on the target machine, which might be considered “intrusive” and a “NO-GO” for a lot of targets. SSH Monitor allows very little to no intervention on the target machine.
Data-exporters might not support the target machine CPU architecture. In that case, if the target machine has an available SSH connection (like most Linux targets), then you won’t have to care much about its CPU architecture with SSH Monitor.
Warning
SSH Monitor is based on SSH connections. This has very serious security implications that are detailed in the security explanations and addressed in the security how-to.
Note
SSH Monitor allows you to configure every SSH connection the way you want,
i.e. with any arguments and options described by man ssh on the machine hosting SSH Monitor.
See SSH how-to for more details.
Note
Currently, SSH Monitor is very Linux-oriented but Windows support is also planned.
Glossary#
See the glossary for definitions of EPICS specific terms, and SSH Monitor related terms.
Documentation#
The following documentation is structured according to the diátaxis documentation framework. I.e. you will find the following four main sections:
In addition, you will find the following sections, that are quite common for this kind of project:
Where to start#
You can simply jump in SSH monitoring by following the step-by-step tutorial (with a Rocky Linux virtual machine).
If you are familiar with Nix,
then you might prefer starting with the
quick step-by-step tutorial (with a NixOS Linux virtual machine),
(which is faster to complete).