Skip to content

Hardware Health Monitoring

RouterOS provides real-time hardware health monitoring through /system/health, exposing sensor readings for temperature, input voltage, fan speed, and current draw. Available sensors depend on the hardware platform — higher-end devices expose more metrics than entry-level units.

The health subsystem reads data directly from hardware monitoring chips on the RouterBOARD. These sensors allow you to detect thermal issues, power supply problems, and fan failures before they cause outages.

/system/health

Display all available sensor readings for your device:

/system/health/print

Example output on a CCR2004:

NAME VALUE UNIT
temperature 47 C
cpu-temperature 52 C
fan1-speed 2200 RPM
fan2-speed 2150 RPM
voltage 24.1 V

Watch sensor values update in real time:

/system/health/monitor

Press Q to exit the live view.

Retrieve one sensor value — useful in scripts:

:put [/system/health/get temperature]

Sub-menu: /system/health

PropertyUnitDescription
temperature°CMain board temperature
cpu-temperature°CCPU core temperature (where supported)
temperature-1°CAdditional sensor 1 (multi-sensor boards)
temperature-2°CAdditional sensor 2 (multi-sensor boards)

Not all properties appear on all devices. Run /system/health/print to see what your hardware exposes.

ConditionRange
Optimal20 °C – 40 °C
Normal40 °C – 60 °C
Elevated60 °C – 70 °C
High70 °C – 80 °C
CriticalAbove 80 °C

Exact limits vary by model. Consult your device’s hardware manual for rated operating ranges.

PropertyUnitDescription
voltageVInput voltage at the router
poe-out-voltageVPoE output voltage (PoE-capable ports)

Voltage monitoring detects power supply degradation, unstable sources (generators, UPS), and connector faults. When voltage falls outside safe operating ranges RouterOS logs a warning; in extreme cases the device may shut down to prevent hardware damage.

# View current voltage
/system/health/print
# Continuous monitoring
/system/health/monitor
PropertyUnitDescription
fan-speedRPMPrimary fan
fan1-speedRPMFan 1 (multi-fan devices)
fan2-speedRPMFan 2 (multi-fan devices)
fan-statusOperational status (ok / fault)

Fan presence and property names differ by device. Only CCR, high-density CRS, and carrier-grade RB models include fans; SOHO and hEX series are passively cooled.

RouterOS firmware adjusts fan speed based on temperature sensor readings:

  • Low temperature: Fans run at minimum speed or stop (quiet operation)
  • Moderate temperature: Fans ramp up proportionally
  • High temperature: Fans run at maximum speed
  • Critical temperature: Additional protective action may trigger (throttling or shutdown)

A limited set of devices support setting fan speed manually:

# Check if manual control is available
/system/health/print
# Enable manual fan control (device-dependent)
/system/health/set fan-control=manual
# Set fan speed percentage
/system/health/set fan-speed=75

On PoE switches and routers, enabling PoE output raises board temperature, which in turn increases fan speed. If fans are unexpectedly loud, check /system/health for temperature alongside /interface/ethernet/poe/print to correlate PoE load with thermal output.

RouterOS has no built-in threshold-alarm system for health sensors. Alerts are implemented via the Scheduler executing a Script that reads sensor values and acts when limits are exceeded.

/system/script/add name=health-temp-check source={
:local temp [/system/health/get temperature];
:if ($temp > 70) do={
:log warning ("High temperature: " . $temp . "C");
}
}
/system/scheduler/add name=run-health-temp-check \
interval=1m \
on-event=health-temp-check

First configure the SMTP client:

/tool/e-mail/set \
server=smtp.example.com \
port=587 \
password=<password>

Then create the alert script:

/system/script/add name=health-email-alert source={
:local temp [/system/health/get temperature];
:local host [/system/identity/get name];
:if ($temp > 70) do={
/tool/e-mail/send \
subject=("Temperature alert: " . $host) \
body=("Board temperature is " . $temp . "C on " . $host);
:log warning ("Email alert sent, temperature=" . $temp . "C");
}
}
/system/scheduler/add name=run-health-email-alert \
interval=5m \
on-event=health-email-alert

Check temperature and voltage together and alert on either threshold:

/system/script/add name=health-full-check source={
:local temp [/system/health/get temperature];
:local volt [/system/health/get voltage];
:local host [/system/identity/get name];
:if ($temp > 75) do={
:log error ("CRITICAL temperature on " . $host . ": " . $temp . "C");
}
:if ($volt < 11) do={
:log error ("LOW voltage on " . $host . ": " . $volt . "V");
}
}
/system/scheduler/add name=run-health-full-check \
interval=2m \
on-event=health-full-check
/system/script/add name=health-fan-check source={
:local fanSpeed [/system/health/get fan1-speed];
:if ($fanSpeed < 500) do={
:log error "Fan 1 may have failed or stalled";
}
}
/system/scheduler/add name=run-health-fan-check \
interval=5m \
on-event=health-fan-check

When reporting hardware issues to MikroTik support, include a full health and resource snapshot:

/system/health/print
/system/resource/print

Available health sensors vary significantly by hardware tier. The table below describes typical availability — always confirm with /system/health/print on your specific device.

FeatureEntry-level (hEX, RB9xx)Mid-range (RB4011, CCR1009)High-end (CCR2004+, CRS3xx)
Board temperatureYesYesYes
CPU temperatureNoYesYes
Multiple temperature sensorsNoPartialYes
Input voltageYesYesYes
PoE voltageNoPartialYes
Fan speed monitoringNo (fanless)PartialYes
Manual fan controlNoNoSome models

CHR (Cloud Hosted Router): Runs on a hypervisor with no physical sensors. /system/health/print returns no entries or only virtualized readings. Thermal and power monitoring is the responsibility of the host platform.

  1. Verify adequate airflow — check for blocked vents or cable obstruction
  2. Confirm ambient room temperature is within spec
  3. Check fan speed and status with /system/health/print
  4. Review PoE output load — reduce if possible
  5. Inspect the device for dust accumulation
  1. Confirm the device has a fan (/system/health/print — if fan-speed is absent, the device is fanless)
  2. Check fan-status for a fault indication
  3. Verify the device has not been set to manual fan control at speed 0
  4. Contact MikroTik support if the fan is confirmed faulty
  1. Check the power supply unit (PSU) condition
  2. Test with a known-good power cable
  3. Measure actual outlet voltage with a multimeter
  4. Consider adding a UPS to stabilise power delivery
  • Logging — configure where log messages are sent
  • Netwatch — monitor external host availability
  • Scheduler — automate recurring scripts
  • E-mail Tool — SMTP client for alert delivery