- Добавлен новый коллектор 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
253 lines
9.9 KiB
Markdown
253 lines
9.9 KiB
Markdown
# Коллектор 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**: все дистрибутивы
|