MoSheL: MOnitoring with SHEll Locally HISTORY First I wrote plugins for the Nagios (formerly NetSaint), especially the various versions of ASLrules (for Astaro Forewall, now sold as Sophos UTM). As most of the servers/services I want to monitor are remote systems, traditional NMS (relying on close-looped and/or unencrypted sessions) are either big, complicated to install for safe remote monitoring, ressource intense (when doing remote checks), lack a status history or a combination thereof. Thus I wrote a small, easily configured system: MoSSHe, later MoSShE. It primarily was intended for monitoring of a handful of typical internet systems. The more recent versions supported system and grouping features monitoring of serious numbers of systems. Constant changes in APIs and output formatting of tools made a proper support and maintenance difficult. Plus calculating averages etc. in BASH (which is nototiously SLOW) put a real strain on small monitoring servers like a RaspberryPi. So after 17 years after the first MoSSHe installment and 11 years after the big MoSShE rewrite this is the next iteration: even smaller, more decentralized, easier to adapt to local peculiarities. For bug reports and suggestions or if you just want to talk to me please contact me at volker.tanger@wyae.de Updates will be available at http://www.wyae.de/software/moshel/ please check there for updates prior to submitting patches! ------------------------------------------------------------------------ todo: - BUG (to fix): locking - NEED: move temp. directory (status, flap detection) to increase SD-card/SSD lifetime needs: protection against symlink attacks - want: SLA reports, downtimes/availability - want: (re)check on Bourne-SH and Busybox compatibility - maybe: modular checks for easier installation by installed software (specific checks for MySQL, postfix, dovecot, apache, ...) - maybe: CheckResultIsExactly (String-Match) can be done with "CheckCountMoreThan TITLE "script" '/MATCH/{print $0}' 0 "ERRORMSG" - maybe: CheckResultDoesNotContain (String-Match) can be done with "CheckCountLessThan TITLE "script" '/MATCH/{print $0}' 1 "ERRORMSG" wanted checks (examples) - network bandwidth - AVM Fritz!Box router status - SNMP especially for Windows servers - disk usage of single directory - remote checks: IMAP, POP3, SMTP, SAMBA, ... (local checks for bound ports are already available) - KVM (and other virtualization) checks ------------------------------------------------------------------------ 2023-11 onward see the GIT repository https://git.wyae.de/WYAE/moshel v2.1.3 2023-09-02 Volker Tanger * cleanup/bugfix: added "-f" to "rm" at the beginin of Centralize() to avoid error message v2.1.2 2023-08-01 Volker Tanger * cleanup: deprecating Summarize() * feature: preparing mail alerts for individual funtions * bugfix: accidentally published a non-working intermediate state (bad escaping-CopyPaste, missing funcrion end) v2.1.0 2023-05-24 Volker Tanger * cleanup: escaping if variables in Centralize() * cleanup: removed even more from deprecated Summarize() * cleanup: prepared for explicit mail alerts and central mail alerts v2.0.2 2023-05-17 Volker Tanger * bugfix: ActionOnAlert did not do anything, only mailed that it did. Now added the missing command execution. v2.0.1 2023-04-01 Volker Tanger * bugfix: ActionOnAlert triggered on failure AND(!) resolve, now on failure only. v2.0.0 2023-03-19 Volker Tanger * (unlikely but) breaking change: removed unused "checks" file * feature: ActionOnAlert - automate e.g. restart v1.1.1 2022-09-14 Volker Tanger * bugfix: fix copy-paste-error (when snippet unreachable) * feature: create central overview page with all graphs * deprecate warning for Summarize() v1.1.0 2022-09-13 Volker Tanger * bugfix: reduce timeout for summary page * cleanup: create subroutine for message outputs * feature: create local overview page with all graphs v1.0.13 2022-06-12 Volker Tanger * bugfix: correct incomplete lines in QNAP snmp check sample v1.0.12 2022-02-19 Volker Tanger * feature: added radio temperature sensor readout check * feature: added checks wether there are services which bound TCP ports (i.e. are running) v1.0.11 2021-11.21 Volker Tanger * feature: added TLS certificate check for https v1.0.10 2021-09-07 Volker Tanger * bugfix: position change for mysqladmin in the new Debian 11 * feature: convert KB/MB/GB (see RAM and HDD capacity checks) * feature/bug(fix): alternate memory check for Linux (the "free"-based sometimes fails for unknown reasons) v1.0.9 2021-05-26 Volker Tanger * feature: test for measuring PING times (avg.) v1.0.8 2021-04-30 Volker Tanger * bugfix: basic value verification (better error handling) * bugfix: alert if status download in SUMMARY command fails * feature: monitoring APC UPCs with apcaccess tool (part of apcupsd) v1.0.7 2021-02-20 Volker Tanger * feature: monitoring QNAP NAS via SNMP v1.0.6 2020-12-15 Volker Tanger * bugfix: corrected nonworking FlipFlop-detection v1.0.5 2020-11-26 Volker Tanger * feature: SmartMonTools SSD + HDD measurements v1.0.4 2020-11-12 Volker Tanger * feature: temperature measurement for RaspberryPi4 * bugfix: added missing removing temp diff files v1.0.3 2020-10-30 Volker Tanger * bugfix: alerting caused shell error messages whenver there was no alert (error was introduced in 1.0.2) * bugfix: wait a bit for other systems in Summary() v1.0.2 2020-10-29 Volker Tanger * bugfix: alerting now without values so they do not trigger new alerts whenever an alerted state changes value * feature: alarm with "changed" section, to get "ok again" mails, too. v1.0.1 2020-10-10 Volker Tanger * cleanup: typos, formatting v1.0.0 2020-10-10 Volker Tanger * initial release ------------------------------------------------------------------------ Copyright (C) 2020- Volker Tanger This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. http://www.gnu.org/copyleft/gpl.html