title: Linux hardware: temperatures with readable names
agents: linux
catalog: os/hardware
license: GPLv2
distribution: check_mk
description:
 Temperatures of a Linux host from the linux_hardware agent plug-in: every hwmon
 chip (Intel coretemp, AMD k10temp, NVMe drives, SATA disks via drivetemp, GPUs,
 Wi-Fi cards, mainboard chips such as dell_smm or nct6775) plus the firmware
 thermal zones that are not also hwmon chips (e.g. Intel DPTF zones on notebooks:
 skin, memory, ambient).

 Unlike the agent's built-in lnx_thermal check ("Temperature Zone 0", ...), each
 service says what it measures. Names are stable across reboots: hwmon and zone
 numbers are never used.

 Levels are evaluated by Checkmk's own temperature logic, exactly like the
 built-in lnx_thermal check, configured with the built-in rule "Temperature":
 device levels or user levels (default: device levels, otherwise 70/80 °C),
 lower levels, output unit, trend computation. Device levels: hwmon temp*_max
 (WARN) and temp*_crit (CRIT); thermal zones the passive trip point (WARN) and
 the lower of hot and critical (CRIT); a single known value is used for both.
 An unreadable sensor is UNKNOWN; an alarm flag set by the driver raises the
 state too.

 Likely duplicates (a mainboard or firmware sensor measuring the same as a
 dedicated one, e.g. Dell's "CPU" next to "CPU package"), names reported twice and
 vague labels ("Other", "Unknown") get a note in the output - never a state change.

item:
 The sensor name, e.g. "CPU package", "NVMe nvme0", "Disk sda", "Wi-Fi card",
 "GPU junction", "Mainboard SYSTIN", "Skin", "Memory".

discovery:
 One service per named sensor that has a value. CPU core sensors, unnamed
 sensors ("<chip> sensor N") and firmware zones that repeat the CPU temperature
 are left out by default - see the rule "Linux hardware: service discovery".
 Sensors of a driver whose every reading equals another driver's (Dell dell_smm
 next to dell_ddv) are certain duplicates and are not discovered.
