Ir al contenido

Hardware de servidor (Redfish)

El propio hardware de un servidor, leído desde su controlador de gestión (BMC): ventiladores, temperaturas frente a sus propios umbrales, fuentes de alimentación y su redundancia, discos, memoria, procesadores y el registro de eventos.

Redfish es la interfaz HTTPS que el DMTF estandarizó para los controladores de gestión, y cada controlador actual la habla: Supermicro, Dell iDRAC, HPE iLO, Lenovo XClarity Controller, ASRock Rack, OpenBMC. Es la forma correcta de vigilar el hardware de un servidor. El agente SNMP de un BMC, en cambio, normalmente describe el propio BMC — su pequeño Linux ARM, su memoria, sus enlaces de red — y no el servidor que gestiona (consulta SNMP).

Todas las métricas tienen el prefijo dumbmonit_redfish_. Las series de salud son 0 (OK), 1 (Warning) o 2 (Critical), directamente de Status.Health.

FamiliaMétricasEtiquetas
Servicioinfo (valor 1)vendor, product, redfish_version
Sistemasystem_health (la propia), system_health_rollup (todo lo que contiene), system_power_on, memory_health, processor_health (los resúmenes del controlador, un valor para todos los DIMM y todas las CPU), memory_total_bytessystem
Chasischassis_health, chassis_health_rollupchassis
Temperaturastemperature_celsius, temperature_upper_critical_celsius y temperature_upper_caution_celsius (los propios umbrales crítico y de precaución del sensor, cuando los declara), temperature_healthchassis, sensor
Ventiladoresfan_speed_rpm (o fan_speed_percent cuando el controlador reporta un porcentaje), fan_lower_critical_rpm (o _percent: el mínimo propio declarado del ventilador, solo esquema antiguo), fan_health, fan_redundancy_healthchassis, fan / group
Alimentaciónpsu_health, psu_output_watts, psu_capacity_watts, power_redundancy_health, power_consumed_wattschassis, psu / group
Tensionesvoltage_volts, voltage_healthchassis, sensor
Almacenamientostorage_health, drive_health, drive_failure_predicted, drive_life_left_percent (SSD), drive_capacity_bytessystem, storage, drive, media
Controladormanager_health, manager_info (valor 1)manager, firmware, model
Registroslog_entries, log_critical_entries, log_warning_entriesowner (sistema o controlador), log
Recolecciónscrape_errors, scrape_duration_seconds

Una ranura vacía no es un fallo. Un componente cuyo Status.State es Absent (una bahía de alimentación vacía, una ranura DIMM libre, una segunda CPU ausente) o Disabled (un grupo de redundancia no configurado) no produce ninguna serie en absoluto. Un servidor entregado con una fuente de alimentación de dos está sano, y se lee como tal.

Dos generaciones del esquema, un conjunto de series. La mayoría de los controladores en servicio todavía publican los recursos más antiguos Chassis/{id}/Thermal y Chassis/{id}/Power, una petición cada uno por cada sensor; los más nuevos solo publican ThermalSubsystem, PowerSubsystem, EnvironmentMetrics y Sensors, un recurso por ventilador, fuente de alimentación y sensor. DumbMonit lee la forma antigua cuando existe y la nueva en caso contrario; ambas producen exactamente las mismas series y etiquetas, así que una regla escrita una vez funciona en ambas.

Los registros se cuentan, nunca se leen. Las entradas de registro pueden nombrar hosts, direcciones y usuarios: DumbMonit solo conserva cuántas entradas hay, y cuántas de la primera página que sirve el controlador son Critical o Warning.

Las reglas integradas que se aplican: Server fan failed, Server temperature above critical, Power supply redundancy lost, Power supply failed, Drive failure predicted, Server health critical, además de Monitor unreachable.

Un monitor Redfish obtiene su propio panel en su página, sobre las gráficas, leído de lo que guardó la última sonda: abrir la página nunca consulta al controlador. Responde, en este orden:

  1. Si el servidor está sano. Una palabra — Healthy, Degraded o Critical — de la propia salud y resúmenes del controlador, y debajo cada componente que lo arrastra abajo, en una frase: CPU1 Temp is at 47 °C, at or above its critical threshold of 45 °C, Power supply redundancy is lost, Drive 3 predicts its own failure. Cuando el controlador resume el servidor como degradado sin nombrar nada que DumbMonit lea, el panel lo indica y señala hacia su registro de eventos. Debajo: estado de energía, consumo, memoria instalada y el firmware del controlador.
  2. Si los ventiladores y temperaturas están dentro de sus límites. Cada sensor se compara con los umbrales que declara el controlador para ese sensor — sus temperaturas de precaución y crítica, la velocidad mínima de un ventilador — nunca con un número propio de DumbMonit. Un sensor que no declara ningún umbral muestra su lectura y ningún veredicto, a menos que el propio controlador lo reporte degradado. Los problemas se listan primero.
  3. Si la alimentación es redundante. Cada grupo de redundancia (Redundant, Redundancy degraded, Redundancy lost), luego cada fuente de alimentación presente con su salida frente a su capacidad y su estado. Sin ningún grupo de redundancia, el panel indica que el controlador no declara ninguno: una sola fuente, o redundancia no configurada.
  4. Si los discos están sanos. Cada controlador de almacenamiento, luego cada disco con su capacidad, la vida restante de un SSD y su estado; Failure predicted va antes que cualquier otra cosa.
  5. Memoria, procesadores y controlador: los resúmenes de una palabra del controlador para todos los DIMM y todas las CPU, la propia salud, modelo y firmware del controlador de gestión, y las tensiones.
  6. Registros de eventos: entradas contadas por severidad. Las entradas permanecen hasta que alguien limpia el registro, así que un recuento crítico puede ser noticia vieja: se muestra, pero no cambia la palabra de salud del servidor.

Las bahías vacías y ranuras libres nunca aparecen: no producen ninguna serie. Cada estado es una palabra además de un color, y un valor desconocido se lee «—», nunca 0.

Crear una cuenta de solo lectura en el controlador de gestión

Sección titulada «Crear una cuenta de solo lectura en el controlador de gestión»
  1. Abre la interfaz web del controlador de gestión (BMC), no el sistema operativo del servidor. Crea un nuevo usuario local con el nombre siguiente, con una contraseña larga usada en ningún otro sitio.

    dumbmonit
  2. Dale el rol más bajo que pueda leer, y nada más. Supermicro: Configuration → Users → Add User, privilegio User, y marca Redfish en el tipo de cuenta. Dell iDRAC: iDRAC Settings → Users → Local Users → Add, rol Read Only. HPE iLO: Administration → User Administration → New, desmarca todos los privilegios salvo Login. Lenovo XClarity Controller: BMC Configuration → User/LDAP → Create, rol Read-only. ASRock Rack: Settings → User Management, privilegio User.

  3. Comprueba desde cualquier máquina en la red de gestión que la cuenta puede leer Redfish. El comando pide la contraseña e imprime el nombre y salud del servidor.

    curl -k -u dumbmonit https://bmc.lan/redfish/v1/Systems
  4. En DumbMonit, introduce la dirección del controlador, por ejemplo «bmc.lan» o «10.0.0.50», y luego el nombre de usuario y contraseña de esa cuenta.

  5. DumbMonit solo lee: ventiladores, temperaturas, tensiones, fuentes de alimentación, discos, resúmenes de memoria y procesador, y cuántas entradas de registro hay por severidad. Nunca enciende ni apaga el servidor, nunca cambia un ajuste y nunca lee el texto de los registros.

Los nombres de menú de arriba son los del firmware actual; las generaciones más antiguas los mueven pero conservan los mismos roles. En Supermicro, el tipo de cuenta mostrado al crear un usuario decide qué interfaces puede usar: una cuenta sin acceso Redfish es rechazada con un 401 incluso con la contraseña correcta.

CredencialCampos
Cuenta de controlador de gestiónNombre de usuario y contraseña de la cuenta de solo lectura.

Dirección: el nombre de host o IP del controlador, por ejemplo bmc.lan o 10.0.0.50. El puerto por defecto es 443; escribe host:puerto para otro, o una URL completa (https://bmc.lan:8443).

OpciónPor defectoEfecto
port443Puerto HTTPS, si la dirección no da uno.
insecure_tlsfalseAceptar un certificado autofirmado.
request_timeout_seconds8Tiempo permitido para cada llamada Redfish, de 1 a 120.
authbasicbasic envía el nombre de usuario y contraseña con cada petición y no deja nada abierto en el controlador. session inicia sesión una vez y reutiliza el token de sesión (X-Auth-Token), volviendo a abrirlo solo cuando el controlador lo rechaza y cerrando el que reemplaza. Úsalo solo si el controlador rechaza la autenticación básica: los controladores solo tienen un puñado de ranuras de sesión.
storagetrueLeer los controladores de almacenamiento y cada disco detrás de ellos. Una petición por disco.
logstrueContar las entradas del registro de eventos del sistema y del propio registro del controlador, por severidad.

Una lectura completa son unas pocas docenas de peticiones: la raíz del servicio, luego cada sistema, chasis y controlador, sus recursos térmicos y de potencia, los controladores de almacenamiento y discos, los servicios de registro. DumbMonit envía como máximo cuatro a la vez. Un controlador lento puede necesitar un tiempo de espera de sonda más largo (DUMBMONIT_PROBE_TIMEOUT_SECS, consulta Configuración) y un intervalo de sonda de dos minutos o más.

SíntomaCausa probable
Authentication refusedContraseña incorrecta, o la cuenta no tiene permitido usar Redfish (tipo de cuenta en Supermicro, falta el privilegio «Login» en iLO).
Insufficient privilegesEl rol es demasiado bajo para un recurso; el resto de la lectura igualmente pasa. Algunos controladores ocultan el registro de eventos a su rol más bajo.
TLS certificate rejectedEl certificado autofirmado del controlador: marca «Accept an unverifiable certificate», o instala un certificado de confianza en el controlador.
Timed outEl controlador es lento en responder: eleva DUMBMONIT_PROBE_TIMEOUT_SECS, desactiva storage o logs, o alarga el intervalo.
Sin umbrales de temperaturaEl controlador no publica UpperThresholdCritical para ese sensor: la temperatura se sigue registrando, pero la regla integrada no puede compararla con nada.