До основного вмісту

Моніторинг заліза сервера: температура, диски, живлення

Виділені сервери · 24.09.2026
Ілюстрація до статті «Моніторинг заліза сервера: температура, диски, живлення»

Моніторинг заліза сервера: температура, диски, живлення

Залізо ламається передбачувано: диск за тижні до відмови накопичує перепризначені сектори, пам'ять сипле виправленими помилками ECC, вентилятор знижує оберти, а блок живлення пише події в журнал SEL. Усі чотири сигнали читаються штатними утилітами і збираються у звичайний Prometheus. Завдання моніторингу заліза — помітити їх до того, як сервер стане.

  • Чотири джерела закривають майже все: датчики IPMI та SEL, SMART дисків, лічильники EDAC для пам'яті, стан RAID.
  • На ZevsHost доступ KVM/IPMI коштує $5 на місяць і входить у Dedicated Enterprise US; без нього лишаються SMART, EDAC та lm-sensors зсередини ОС.
  • Опитувати BMC частіше ніж раз на хвилину не потрібно і шкідливо: контролер слабкий.

Чотири джерела даних

Що дивимосяДжерелоКомандаТривожна ознака
Температура CPU і платиIPMI, lm-sensorsipmitool sdr type temperatureзростання за тієї самої навантаги
Блоки живленняIPMI, SELipmitool sdr type 'Power Supply'подія PS Redundancy Lost
ДискиSMARTsmartctl -A /dev/sdaзростання Reallocated_Sector_Ct
Пам'ятьEDAC, SELras-mc-ctl --summaryлічильник CE зростає день у день
RAIDmdadm або утиліта контролераcat /proc/mdstatстан degraded, [U_]

IPMI: датчики та журнал подій

Датчики читаються і локально через драйвер ядра, і мережею. Локальний доступ не потребує пароля і не навантажує мережу керування, тож для регулярного опитування зручніший він. Як отримати мережевий доступ, описано у статті про IPMI та KVM-over-IP.

# встановлення
apt install -y ipmitool freeipmi-tools   # Debian/Ubuntu
dnf install -y ipmitool freeipmi         # RHEL, AlmaLinux, Rocky

# лише те, що вийшло за межі норми
ipmitool -I open sdr elist all | grep -v ' ok '

# журнал подій заліза
ipmitool -I open sel elist | tail -n 30

# раз на добу: зберегти й очистити
ipmitool -I open sel save /var/log/ipmi-sel-$(date +%F).log && ipmitool -I open sel clear

SEL — кільцевий журнал обмеженого обсягу. Коли він заповнюється, частина плат перестає записувати нові події, і ви втрачаєте саме ті рядки, заради яких усе робилося.

Диски і пам'ять

SMART

apt install -y smartmontools
smartctl -a /dev/sda | grep -E 'Reallocated|Pending|Power_On_Hours'
# у NVMe свій набір лічильників
smartctl -A /dev/nvme0n1 | grep -E 'Percentage|Media|Unsafe'

Ключові атрибути розібрані у статті про SMART-діагностику дисків сервера. Демон smartd уміє надсилати пошту сам, але врахуйте обмеження майданчиків: вихідний SMTP на портах 25, 465 і 587 типово закритий і відкривається на запит перевіреним клієнтам. Надійніше віддавати події в загальний моніторинг.

Пам'ять

apt install -y rasdaemon
systemctl enable --now rasdaemon
ras-mc-ctl --summary

# сирі лічильники з ядра
grep -H . /sys/devices/system/edac/mc/mc*/ce_count 2>/dev/null

Виправлені помилки (CE) самі собою не ламають систему: ECC для того й потрібна. Небезпечне зростання. Якщо лічильник на одному модулі додає десятки одиниць на добу, плануйте заміну і перевірте планку за методикою зі статті про перевірку оперативної пам'яті.

Виведення метрик у Prometheus

Найпростіший шлях без зайвих сервісів — textfile collector у node_exporter: скрипт за cron пише файл, експортер віддає його разом зі своїми метриками.

cat << 'EOF' > /usr/local/bin/ipmi-textfile.sh
#!/bin/bash
set -euo pipefail
out=/var/lib/node_exporter/textfile_collector/ipmi.prom
ipmitool -I open sensor \
  | awk -F'|' '$2 ~ /[0-9]/ { gsub(/^ +| +$/,"",$1); gsub(/ /,"",$2);
      printf "ipmi_sensor{name=\"%s\"} %s\n", $1, $2 }' > "$out.tmp"
mv "$out.tmp" "$out"
EOF
chmod +x /usr/local/bin/ipmi-textfile.sh

Запис у тимчасовий файл із подальшим mv обов'язковий: інакше експортер іноді читає наполовину записаний файл і руйнує весь scrape. Якщо серверів більше трьох, замість скрипта ставте ipmi_exporter, який опитує BMC мережею. Збір і панелі розібрані в матеріалі про Grafana та Prometheus, а легка альтернатива для одиночного сервера — у статті про Netdata.

Не опитуйте BMC кожні 5 секунд. Контролер керування — слабкий процесор із кількома десятками мегабайтів пам'яті. Часте мережеве опитування призводить до того, що BMC перестає відповідати: вебконсоль не відкривається, ipmitool висить на таймауті, а разом із ними зникає віддалене керування живленням — рівно тоді, коли воно потрібне. Тримайте інтервал 60 секунд і більше; перевірити запас можна так: time ipmitool -I open sensor list > /dev/null має відпрацьовувати помітно швидше за інтервал опитування.

Які сповіщення справді потрібні

  • Масив перейшов у degraded — сповіщення негайно, це єдиний захист даних.
  • Нові перепризначені або очікувальні сектори на будь-якому диску — протягом години.
  • Подія в SEL про втрату резервування живлення — негайно.

Зніміть еталонний знімок датчиків у перший день роботи машини: без нього ви не відрізните «завжди так було» від «почало зростати минулого тижня». Конфігурації та опції перелічені на сторінці виділених серверів.

Коротко

  • Моніторте чотири джерела: датчики IPMI із SEL, SMART, EDAC і стан RAID.
  • Опція KVM/IPMI на ZevsHost коштує $5 на місяць і входить у Dedicated Enterprise US.
  • Локальний інтерфейс -I open зручніший за мережевий для регулярного опитування.
  • SEL переповнюється: вивантажуйте й очищайте його за розкладом.
  • Інтервал опитування BMC — від 60 секунд, інакше контролер зависає.
← Назад до бази знань Поставити питання підтримці