# Коллектор hba **Автор:** Сергей Антропов **Сайт:** https://devops.org.ru ## Описание Коллектор `hba` собирает информацию о RAID/HBA контроллерах и массивах в Linux системе. Предоставляет детальную информацию о состоянии контроллеров, дисков и RAID массивов. ## Поддерживаемые платформы - **Linux**: Полная поддержка - **macOS/Windows**: Не поддерживается (возвращает пустой JSON) ## Собираемые данные ### Информация о RAID контроллерах ```json { "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 адаптерах ```json { "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" // Серийный номер } ] } ] } ``` ### Статистика ```json { "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 ```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` - информация об оборудовании ## Примеры использования ### Проверка работы коллектора ```bash # Запуск коллектора напрямую ./bin/agent/collectors/hba # Запуск через агент make run ``` ### Фильтрация данных ```bash # Все контроллеры ./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' ``` ## Устранение неполадок ### Частые проблемы 1. **"No RAID controllers found"** - Убедитесь, что RAID контроллеры установлены - Проверьте доступность утилит управления - Убедитесь в правильности прав доступа 2. **"Permission denied"** - Запустите с правами `sudo` - Или добавьте пользователя в соответствующие группы 3. **"Command not found"** - Установите утилиты управления контроллерами - Проверьте PATH для команд ### Отладка ```bash # Проверка доступности команд 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**: все дистрибутивы