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

253 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Коллектор 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**: все дистрибутивы