Мониторинг серверов Supermicro через API: полное руководство
Современные серверы Supermicro оснащены мощными контроллерами управления (BMC), предоставляющими несколько интерфейсов для мониторинга и управления: Redfish REST API, IPMI, SNMP, а также OEM-утилиты Supermicro. Правильно настроенный API-мониторинг позволяет централизованно отслеживать состояние серверного парка, получать оповещения о критических событиях и автоматизировать рутинные операции. В этом руководстве мы рассмотрим все доступные методы, инструменты и интеграции.
1. Обзор API-интерфейсов Supermicro
Контроллеры Supermicro поддерживают четыре основных интерфейса для мониторинга, каждый из которых имеет свои преимущества и сценарии использования.
+------------------+--------------------------------------------------+
| Интерфейс | Описание и особенности |
+------------------+--------------------------------------------------+
| Redfish REST API | Современный стандарт DMTF; работа через HTTP/HTTPS;|
| | человеко- и машиночитаемый JSON; требует лицензии|
| | для некоторых функций; поддерживается с X10/H11 |
+------------------+--------------------------------------------------+
| IPMI | Классический протокол; доступ через LAN (UDP 623);|
| | поддерживается всеми поколениями; не требует |
| | дополнительных лицензий |
+------------------+--------------------------------------------------+
| SNMP | Протокол для сбора метрик; поддерживает v2c и v3;|
| | удобен для интеграции с Zabbix, Nagios и другими |
+------------------+--------------------------------------------------+
| OEM утилиты | IPMICFG (локальная), SMCIPMITool (удалённая), |
| | SUM (SuperMicro Update Manager). Позволяют |
| | выполнять расширенные OEM-команды. |
+------------------+--------------------------------------------------+
2. Настройка BMC и подготовка к мониторингу
Перед использованием любого API необходимо правильно настроить сетевые параметры и учётные записи на BMC.
- Шаг 1. Вход в веб-интерфейс BMC: Откройте браузер и перейдите по IP-адресу BMC (например, https://192.168.1.120). Используйте учётные данные по умолчанию: логин
ADMIN, парольadmin(или пароль с наклейки на материнской плате). - Шаг 2. Настройка сети: Перейдите в раздел Configuration → Network Settings. Установите статический IP-адрес или включите DHCP. Запишите IP-адрес для дальнейшего использования.
- Шаг 3. Создание пользователя для мониторинга: В разделе Configuration → Users добавьте нового пользователя, например
monitor, с правами Operator (для чтения датчиков) или Administrator (если требуется управление). Назначьте сложный пароль. - Шаг 4. Включение необходимых сервисов: В разделе Configuration → Services убедитесь, что включены:
- HTTPS (порт 443) — для Redfish и веб-интерфейса.
- IPMI over LAN (порт 623) — для команд ipmitool.
- SNMP (порты 161/UDP) — для сбора метрик.
3. Мониторинг через Redfish REST API
Redfish — современный стандарт для управления и мониторинга серверного оборудования. Supermicro поддерживает Redfish на платформах X10/H11 и новее. Для доступа к некоторым ресурсам (например, обновление прошивки) требуется лицензия SFT-DCMS-SINGLE, но базовый мониторинг датчиков и состояния доступен без лицензии.
3.1. Основные запросы к Redfish
Redfish API работает через HTTPS. Используйте инструменты командной строки (curl) или языки программирования (Python, Go). Примеры запросов:
# Проверка версии Redfish и доступных ресурсов (GET /redfish)
curl -k -u ADMIN:admin https://192.168.1.120/redfish
# Получение информации о системе (ComputerSystem)
curl -k -u ADMIN:admin https://192.168.1.120/redfish/v1/Systems/1
# Список всех датчиков (сенсоров)
curl -k -u ADMIN:admin https://192.168.1.120/redfish/v1/Chassis/1/Sensors
# Конкретный датчик температуры CPU
curl -k -u ADMIN:admin https://192.168.1.120/redfish/v1/Chassis/1/Sensors/CPU1_Temp
# Получение журнала событий (Event Log)
curl -k -u ADMIN:admin https://192.168.1.120/redfish/v1/Systems/1/LogServices/EventLog/Entries
3.2. Парсинг данных с помощью jq
Для удобной обработки JSON-ответов используйте утилиту jq. Пример скрипта для сбора температур:
#!/bin/bash
BMC_IP="192.168.1.120"
USER="monitor"
PASS="your_password"
# Получить температуру всех датчиков CPU
curl -k -s -u $USER:$PASS https://$BMC_IP/redfish/v1/Chassis/1/Sensors | \
jq -r '.Members[] | select(.Name | contains("CPU")) | .Name + " : " + .Reading + " " + .Units'
3.3. Интеграция с Prometheus (redfish_exporter)
Для мониторинга в реальном времени с метриками и алертами используйте redfish_exporter от Prometheus. Настройка:
- Скачайте redfish_exporter с GitHub (например, версию от prometheus-community).
- Создайте файл конфигурации
config.yml:
---
targets:
- name: "supermicro_server1"
url: "https://192.168.1.120"
username: "monitor"
password: "your_password"
insecure: true
resources:
- Systems
- Chassis
- Sensors
- Thermal
- Запустите exporter:
./redfish_exporter --config.file=config.yml(по умолчанию порт 9443). - Настройте Prometheus на сбор метрик с exporter'а:
scrape_configs:
- job_name: 'redfish'
static_configs:
- targets: ['localhost:9443']
В Grafana доступны готовые дашборды для отображения температур, напряжений, состояния дисков и вентиляторов.
4. Мониторинг через IPMI (ipmitool)
IPMI — классический и надёжный протокол, работающий на всех серверах Supermicro без дополнительных лицензий. Утилита ipmitool доступна для Linux, Windows и даже ESXi.
4.1. Установка ipmitool
# Linux (Debian/Ubuntu)
sudo apt update && sudo apt install ipmitool -y
# Linux (RHEL/CentOS)
sudo yum install ipmitool -y
# Windows: скачать программу с сайта Supermicro или использовать IPMIUtil
4.2. Базовые команды мониторинга
# Получение общего состояния системы (питание, температура)
ipmitool -H 192.168.1.120 -U monitor -P password chassis status
# Список всех датчиков с текущими значениями
ipmitool -H 192.168.1.120 -U monitor -P password sensor list
# Конкретный датчик (например, температура CPU1)
ipmitool -H 192.168.1.120 -U monitor -P password sensor get "CPU1 Temp"
# Просмотр журнала событий (System Event Log)
ipmitool -H 192.168.1.120 -U monitor -P password sel list
# Мониторинг вентиляторов (скорость вращения)
ipmitool -H 192.168.1.120 -U monitor -P password sensor list | grep FAN
# Просмотр LAN-конфигурации
ipmitool -H 192.168.1.120 -U monitor -P password lan print 1
4.3. Скрипт для сбора метрик в InfluxDB / Zabbix
Пример сбора данных в формате JSON для дальнейшей обработки:
#!/bin/bash
BMC_IP="192.168.1.120"
USER="monitor"
PASS="password"
# Получить список датчиков
sensors=$(ipmitool -H $BMC_IP -U $USER -P $PASS -c sensor list)
# Преобразовать в JSON
echo "$sensors" | awk -F',' '{print "{\"name\":\""$1"\",\"value\":"$2",\"status\":\""$3"\"}"}'
~/.ipmi_pass с правами 600 или переменную окружения IPMI_PASSWORD.
4.4. Мониторинг через Zabbix (шаблон IPMI)
Zabbix имеет встроенную поддержку IPMI. Настройка:
- В веб-интерфейсе Zabbix создайте хост, укажите IP-адрес BMC.
- Вкладка IPMI: установите версию IPMI (обычно 2.0), имя пользователя и пароль.
- Привяжите шаблон Template IPMI Generic или создайте свой.
- Добавьте элементы данных (items) с типом «IPMI agent» и ключом вида
ipmi.sensor["CPU1 Temp"]. - Настройте триггеры на превышение порогов температуры или отказ вентилятора.
5. Мониторинг через SNMP (протокол и MIB)
SNMP — ещё один стандартный протокол для сбора информации об оборудовании. Supermicro предоставляет собственные MIB-файлы, которые включают специфические датчики (таблицу памяти, дисков, питания).
5.1. Настройка SNMP на BMC
- В веб-интерфейсе BMC перейдите в Configuration → SNMP Settings.
- Включите SNMP v2c или v3. Для простоты можно использовать v2c с community-строкой (например, «public»).
- Настройте трапы (traps) для получения асинхронных уведомлений.
5.2. Основные команды snmpwalk
# Установка snmp-клиента
sudo apt install snmp snmp-mibs-downloader
# Получение системного описания
snmpget -v2c -c public 192.168.1.120 1.3.6.1.2.1.1.1.0
# Прогулка по всем датчикам (OID .1.3.6.1.4.1.10876.2.1)
snmpwalk -v2c -c public 192.168.1.120 1.3.6.1.4.1.10876
# Получение температуры процессора (пример OID)
snmpget -v2c -c public 192.168.1.120 1.3.6.1.4.1.10876.2.1.1.1.1.1.1.1
5.3. Интеграция с Zabbix (шаблон SNMP)
Zabbix поддерживает SNMP из коробки. Рекомендуемый шаблон: Template Server Hardware SNMP (Supermicro) или создать свой на основе MIB-файлов. Элементы данных будут иметь тип «SNMP agent».
6. Использование утилиты SMCIPMITool для удалённого управления
SMCIPMITool — OEM-утилита Supermicro для управления через IPMI. Она предоставляет больше возможностей, чем стандартный ipmitool, особенно в работе с группами серверов.
# Скачать SMCIPMITool можно с сайта Supermicro (поиск по названию)
# Проверка состояния сервера
smcipmitool -H 192.168.1.120 -U monitor -P password system status
# Просмотр датчиков
smcipmitool -H 192.168.1.120 -U monitor -P password sensor list
# Очистка журнала SEL
smcipmitool -H 192.168.1.120 -U monitor -P password sel clear
# Управление питанием
smcipmitool -H 192.168.1.120 -U monitor -P password power reset
7. Мониторинг на уровне операционной системы (установка Supermicro Management Utility)
Для серверов с установленной ОС (Windows, Linux, ESXi) можно установить агент Supermicro Server Management Utility. Он собирает аппаратные метрики и передаёт их через API или syslog.
- Скачайте утилиту с сайта Supermicro для вашей ОС.
- Установите пакет
smc-sum(для Linux — .deb или .rpm). - Запустите сервис:
sudo systemctl start sum. - Агент предоставляет REST API на порту 8080 для локального мониторинга.
8. Сводная таблица API и инструментов
+-------------------+-----------+--------------------------------+----------------------------+
| Инструмент | Протокол | Типовые команды / сценарии | Требования |
+-------------------+-----------+--------------------------------+----------------------------+
| curl + Redfish | HTTPS/JSON| GET /redfish/v1/Chassis/... | Лицензия для некоторых |
| | | | ресурсов |
+-------------------+-----------+--------------------------------+----------------------------+
| ipmitool (удал.) | IPMI (UDP)| sensor list, sel list, chassis | Без лицензии |
| | | status | |
+-------------------+-----------+--------------------------------+----------------------------+
| snmpwalk | SNMP | 1.3.6.1.4.1.10876 | Включить SNMP на BMC |
+-------------------+-----------+--------------------------------+----------------------------+
| SMCIPMITool | IPMI (UDP)| system status, sensor list | Без лицензии |
+-------------------+-----------+--------------------------------+----------------------------+
| redfish_exporter | HTTPS/JSON| Прометеевский экспортер | Prometheus + Grafana |
+-------------------+-----------+--------------------------------+----------------------------+
| Zabbix (IPMI) | IPMI | Встроенный шаблон | Zabbix сервер + mod_ipmi |
+-------------------+-----------+--------------------------------+----------------------------+
9. Чек-лист для настройки централизованного мониторинга
- Назначьте статические IP-адреса для всех BMC и запишите их в инвентарную систему.
- Создайте единую учётную запись мониторинга на всех серверах с правами только на чтение.
- Выберите один или несколько протоколов (Redfish + Prometheus для гибкости, IPMI + Zabbix для простоты).
- Настройте сбор метрик не реже 1 минуты для критических датчиков (температура, отказ вентилятора).
- Настройте алерты:
- Превышение температуры CPU (например, >85°C).
- Отказ или низкая скорость вентилятора (< 500 RPM).
- Исправляемые и неисправляемые ECC-ошибки памяти.
- Отказ блока питания (PSU).
- Настройте отправку уведомлений (email, Telegram, Slack) через систему мониторинга.
- Периодически проверяйте логи SEL на наличие скрытых проблем.
10. Заключение
Мониторинг серверов Supermicro через API — это гибкий и эффективный способ контроля состояния оборудования. Redfish обеспечивает современный REST-интерфейс, идеально подходящий для облачных сред и микросервисов. IPMI остаётся надёжным выбором для классических систем мониторинга. SNMP удобен для интеграции с устаревшими системами. Комбинируя эти методы, вы сможете построить единую платформу мониторинга, которая позволит своевременно выявлять проблемы и предотвращать простои.
Начните с малого: настройте сбор температур через ipmitool и добавьте серверы в Zabbix. Постепенно внедряйте Prometheus и Redfish для получения более детальной информации. Ваш серверный парк скажет вам спасибо.

