- Добавлен новый коллектор proxvms для сбора информации о виртуальных машинах и контейнерах Proxmox - Реализован парсинг конфигураций VM/контейнеров с структурированием данных - Добавлена поддержка парсинга сетевых интерфейсов, IP конфигураций, SCSI/IDE устройств - Реализован парсинг JSON из поля description с переводом русских ключей на английский - Добавлена генерация уникальных идентификаторов (cluster_uid, node_uid, machine_uid) - Обновлена документация для всех коллекторов: - proxcluster (существующая) - gpu (существующая) - proxnode (новая) - proxvms (новая) - system (новая) - docker (новая) - hba (новая) - sensors (новая) - kubernetes (новая) - macos (новая) - uptime (новая) - Обновлен основной файл docs/collectors.md с полным списком коллекторов - Добавлена поддержка платформ для каждого коллектора - Включены примеры использования и устранение неполадок Автор: Сергей Антропов, сайт: https://devops.org.ru
9.9 KiB
9.9 KiB
Коллектор hba
Автор: Сергей Антропов
Сайт: https://devops.org.ru
Описание
Коллектор hba
собирает информацию о RAID/HBA контроллерах и массивах в Linux системе. Предоставляет детальную информацию о состоянии контроллеров, дисков и RAID массивов.
Поддерживаемые платформы
- Linux: Полная поддержка
- macOS/Windows: Не поддерживается (возвращает пустой JSON)
Собираемые данные
Информация о RAID контроллерах
{
"controllers": [
{
"id": 0, // ID контроллера
"name": "MegaRAID SAS 9361-8i", // Название контроллера
"firmware_version": "23.34.0-0019", // Версия прошивки
"driver_version": "07.710.06.00", // Версия драйвера
"pci_address": "0000:01:00.0", // PCI адрес
"status": "Optimal", // Статус контроллера
"temperature": 45, // Температура в градусах Цельсия
"battery_status": "Optimal", // Статус батареи
"cache_size_mb": 1024, // Размер кэша в МБ
"raid_levels": ["RAID0", "RAID1", "RAID5", "RAID6", "RAID10"], // Поддерживаемые уровни RAID
"arrays": [ // RAID массивы
{
"id": 0, // ID массива
"name": "Array0", // Имя массива
"raid_level": "RAID5", // Уровень RAID
"status": "Optimal", // Статус массива
"size_gb": 2000, // Размер массива в ГБ
"used_gb": 1500, // Использовано в ГБ
"free_gb": 500, // Свободно в ГБ
"disks": [ // Диски в массиве
{
"id": 0, // ID диска
"model": "ST4000NM0033", // Модель диска
"size_gb": 4000, // Размер диска в ГБ
"status": "Online", // Статус диска
"temperature": 35, // Температура диска
"serial": "Z1Z2A3B4", // Серийный номер
"firmware": "SN04", // Версия прошивки
"slot": 0 // Слот диска
}
]
}
]
}
]
}
Информация о HBA адаптерах
{
"hba_adapters": [
{
"id": 1, // ID адаптера
"name": "LSI SAS 9300-8e", // Название адаптера
"driver": "mpt3sas", // Драйвер
"firmware_version": "15.00.00.00", // Версия прошивки
"pci_address": "0000:02:00.0", // PCI адрес
"status": "Active", // Статус адаптера
"ports": 8, // Количество портов
"connected_devices": 4, // Количество подключенных устройств
"devices": [ // Подключенные устройства
{
"id": 0, // ID устройства
"model": "ST4000NM0033", // Модель устройства
"size_gb": 4000, // Размер в ГБ
"status": "Online", // Статус устройства
"port": 0, // Порт подключения
"serial": "Z1Z2A3B4" // Серийный номер
}
]
}
]
}
Статистика
{
"stats": {
"controllers_total": 1, // Общее количество контроллеров
"hba_adapters_total": 1, // Общее количество HBA адаптеров
"arrays_total": 1, // Общее количество массивов
"disks_total": 4, // Общее количество дисков
"arrays_optimal": 1, // Количество оптимальных массивов
"arrays_degraded": 0, // Количество деградированных массивов
"arrays_failed": 0, // Количество неисправных массивов
"disks_online": 4, // Количество онлайн дисков
"disks_failed": 0, // Количество неисправных дисков
"total_capacity_gb": 8000, // Общая емкость в ГБ
"used_capacity_gb": 1500, // Использованная емкость в ГБ
"free_capacity_gb": 6500 // Свободная емкость в ГБ
}
}
Конфигурация
config.yaml
collectors:
hba:
enabled: true
type: exec
key: hba
interval: "300s" # 5 минут
timeout: "8s"
exec: "./collectors/hba"
platforms: [linux]
Переменные окружения
COLLECTOR_TIMEOUT
: Таймаут выполнения коллектора (по умолчанию 8s)
Требования
Системные требования
- Linux система с RAID/HBA контроллерами
- Установленные утилиты для управления контроллерами
- Права на чтение информации о контроллерах
Команды
Коллектор использует следующие команды (должны быть доступны):
storcli
- утилита для LSI/Broadcom контроллеровmegacli
- утилита для LSI контроллеровarcconf
- утилита для Adaptec контроллеровlspci
- информация о PCI устройствахlshw
- информация об оборудовании
Примеры использования
Проверка работы коллектора
# Запуск коллектора напрямую
./bin/agent/collectors/hba
# Запуск через агент
make run
Фильтрация данных
# Все контроллеры
./bin/agent/collectors/hba | jq '.controllers'
# Статус контроллеров
./bin/agent/collectors/hba | jq '.controllers[] | {name, status, temperature}'
# RAID массивы
./bin/agent/collectors/hba | jq '.controllers[].arrays'
# Только оптимальные массивы
./bin/agent/collectors/hba | jq '.controllers[].arrays[] | select(.status == "Optimal")'
# Диски с высокой температурой (>40°C)
./bin/agent/collectors/hba | jq '.controllers[].arrays[].disks[] | select(.temperature > 40)'
# HBA адаптеры
./bin/agent/collectors/hba | jq '.hba_adapters'
# Статистика
./bin/agent/collectors/hba | jq '.stats'
# Общая емкость
./bin/agent/collectors/hba | jq '.stats.total_capacity_gb'
# Использованная емкость
./bin/agent/collectors/hba | jq '.stats.used_capacity_gb'
Устранение неполадок
Частые проблемы
-
"No RAID controllers found"
- Убедитесь, что RAID контроллеры установлены
- Проверьте доступность утилит управления
- Убедитесь в правильности прав доступа
-
"Permission denied"
- Запустите с правами
sudo
- Или добавьте пользователя в соответствующие группы
- Запустите с правами
-
"Command not found"
- Установите утилиты управления контроллерами
- Проверьте PATH для команд
Отладка
# Проверка доступности команд
which storcli megacli arcconf lspci lshw
# Проверка PCI устройств
lspci | grep -i raid
lspci | grep -i hba
# Проверка контроллеров (LSI/Broadcom)
sudo storcli show
# Проверка контроллеров (LSI)
sudo megacli -AdpAllInfo -aALL
# Проверка контроллеров (Adaptec)
sudo arcconf getconfig 1
# Проверка оборудования
sudo lshw -class storage
Безопасность
- Коллектор требует права на чтение информации о контроллерах
- Не передает пароли или секретные ключи
- Собирает только публичную информацию о контроллерах
- Не выполняет привилегированные операции
Производительность
- Время выполнения: ~2-8 секунд
- Интервал сбора: рекомендуется 5 минут (300s)
- Потребление ресурсов: минимальное
- Собирает только локальную информацию о контроллерах
Совместимость
- RAID контроллеры: LSI/Broadcom, Adaptec, Intel
- HBA адаптеры: LSI, QLogic, Emulex
- RAID уровни: RAID0, RAID1, RAID5, RAID6, RAID10
- Диски: SATA, SAS, NVMe
- Linux: все дистрибутивы