Sergey Antropoff 15e6260ac3 feat: добавлен коллектор proxvms и обновлена документация
- Добавлен новый коллектор 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
2025-09-15 12:47:44 +03:00

9.9 KiB
Raw Blame History

Коллектор 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'

Устранение неполадок

Частые проблемы

  1. "No RAID controllers found"

    • Убедитесь, что RAID контроллеры установлены
    • Проверьте доступность утилит управления
    • Убедитесь в правильности прав доступа
  2. "Permission denied"

    • Запустите с правами sudo
    • Или добавьте пользователя в соответствующие группы
  3. "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: все дистрибутивы