mirror of
https://git.eworm.de/cgit/routeros-scripts
synced 2025-07-23 20:34:27 +02:00
... from 'check-health', so the script works on all devices to monitor CPU and RAM. The supported plugins for sensors in hardware are installed automatically.
122 lines
4.9 KiB
Markdown
122 lines
4.9 KiB
Markdown
Notify about health state
|
||
=========================
|
||
|
||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||
[](https://github.com/eworm-de/routeros-scripts/network)
|
||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||
[](https://mikrotik.com/download/changelogs/)
|
||
[](https://t.me/routeros_scripts)
|
||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||
|
||
[⬅️ Go back to main README](../README.md)
|
||
|
||
> ℹ️ **Info**: This script can not be used on its own but requires the base
|
||
> installation. See [main README](../README.md) for details.
|
||
|
||
Description
|
||
-----------
|
||
|
||
This script is run from scheduler periodically, sending notification on
|
||
health related events. Monitoring CPU and RAM utilization (available
|
||
processing and memory resources) works on all devices:
|
||
|
||
* high CPU utilization
|
||
* high RAM utilization (low available RAM)
|
||
|
||
With additional plugins functionality can be extended, depending on
|
||
sensors available in hardware:
|
||
|
||
* voltage jumps up or down more than configured threshold
|
||
* voltage drops below hard lower limit
|
||
* fan failed or recovered
|
||
* power supply failed or recovered
|
||
* temperature is above or below threshold
|
||
|
||
> ⚠️ **Warning**: Note that bad initial state will not trigger an event! For
|
||
> example rebooting a device that is already too hot will not trigger an
|
||
> alert on high temperature.
|
||
|
||
### Sample notifications
|
||
|
||
#### CPU utilization
|
||
|
||

|
||

|
||
|
||
#### RAM utilization (low available RAM)
|
||
|
||

|
||

|
||
|
||
#### Voltage
|
||
|
||

|
||
|
||
#### Temperature
|
||
|
||

|
||

|
||
|
||
#### PSU state
|
||
|
||

|
||

|
||
|
||
Requirements and installation
|
||
-----------------------------
|
||
|
||
Just install the script and create a scheduler:
|
||
|
||
$ScriptInstallUpdate check-health;
|
||
/system/scheduler/add interval=53s name=check-health on-event="/system/script/run check-health;" start-time=startup;
|
||
|
||
> ℹ️ **Info**: Running lots of scripts simultaneously can tamper the
|
||
> precision of cpu utilization, escpecially on devices with limited
|
||
> resources. Thus an unusual interval is used here.
|
||
|
||
### Plugins
|
||
|
||
Additional plugins are available for sensors available in hardware. First
|
||
check what your hardware supports:
|
||
|
||
/system/health/print;
|
||
|
||
Then install the plugin for *fan* and *power supply unit* *state*:
|
||
|
||
$ScriptInstallUpdate check-health,check-health.d/state;
|
||
|
||
... or *temperature*:
|
||
|
||
$ScriptInstallUpdate check-health,check-health.d/temperature;
|
||
|
||
... or *voltage*:
|
||
|
||
$ScriptInstallUpdate check-health,check-health.d/voltage;
|
||
|
||
You can also combine the commands and install all or a subset of plugins
|
||
in one go:
|
||
|
||
$ScriptInstallUpdate check-health,check-health.d/state,check-health.d/temperature,check-health.d/voltage;
|
||
|
||
Configuration
|
||
-------------
|
||
|
||
The configuration goes to `global-config-overlay`, these are the parameters:
|
||
|
||
* `CheckHealthTemperature`: an array specifying temperature thresholds for sensors
|
||
* `CheckHealthVoltageLow`: value (in volt*10) giving a hard lower limit
|
||
* `CheckHealthVoltagePercent`: percentage value to trigger voltage jumps
|
||
|
||
> ℹ️ **Info**: Copy relevant configuration from
|
||
> [`global-config`](../global-config.rsc) (the one without `-overlay`) to
|
||
> your local `global-config-overlay` and modify it to your specific needs.
|
||
|
||
Also notification settings are required for
|
||
[e-mail](mod/notification-email.md),
|
||
[matrix](mod/notification-matrix.md),
|
||
[ntfy](mod/notification-ntfy.md) and/or
|
||
[telegram](mod/notification-telegram.md).
|
||
|
||
---
|
||
[⬅️ Go back to main README](../README.md)
|
||
[⬆️ Go back to top](#top)
|