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

167 lines
5.7 KiB
Markdown
Raw Permalink 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.

# Коллектор uptime
**Автор:** Сергей Антропов
**Сайт:** https://devops.org.ru
## Описание
Коллектор `uptime` собирает информацию о времени работы системы. Предоставляет время работы в секундах и в человекочитаемом формате.
## Поддерживаемые платформы
- **Linux**: Полная поддержка
- **macOS**: Полная поддержка
- **Windows**: Не поддерживается (возвращает пустой JSON)
## Собираемые данные
### Информация о времени работы
```json
{
"collector_name": "uptime", // Имя коллектора
"seconds": 86400, // Время работы в секундах
"human": "1d 0h 0m 0s", // Время работы в человекочитаемом формате
"execution_time_ms": 5, // Время выполнения коллектора в миллисекундах
"execution_time_seconds": 0.005 // Время выполнения коллектора в секундах
}
```
### Формат человекочитаемого времени
Время работы отображается в формате:
- `d` - дни
- `h` - часы
- `m` - минуты
- `s` - секунды
Примеры:
- `0d 0h 5m 30s` - 5 минут 30 секунд
- `0d 2h 15m 45s` - 2 часа 15 минут 45 секунд
- `1d 3h 20m 10s` - 1 день 3 часа 20 минут 10 секунд
- `7d 12h 0m 0s` - 7 дней 12 часов
## Конфигурация
### config.yaml
```yaml
collectors:
uptime:
enabled: true
type: exec
key: uptime
interval: "60s" # 1 минута
timeout: "5s"
exec: "./collectors/uptime"
platforms: [linux, darwin]
```
### Переменные окружения
- `COLLECTOR_TIMEOUT`: Таймаут выполнения коллектора (по умолчанию 5s)
## Требования
### Системные требования
- Linux или macOS система
- Доступ к системным файлам времени работы
- Права на чтение системной информации
### Команды
Коллектор использует следующие команды (должны быть доступны):
- **Linux**: чтение `/proc/uptime`
- **macOS**: команда `uptime` или чтение системных файлов
## Примеры использования
### Проверка работы коллектора
```bash
# Запуск коллектора напрямую
./bin/agent/collectors/uptime
# Запуск через агент
make run
```
### Фильтрация данных
```bash
# Время работы в секундах
./bin/agent/collectors/uptime | jq '.seconds'
# Время работы в человекочитаемом формате
./bin/agent/collectors/uptime | jq '.human'
# Полная информация
./bin/agent/collectors/uptime | jq '.'
# Время выполнения коллектора
./bin/agent/collectors/uptime | jq '.execution_time_ms'
```
## Устранение неполадок
### Частые проблемы
1. **"No data collected"**
- Убедитесь, что система Linux или macOS
- Проверьте доступность системных файлов
- Убедитесь в правильности прав доступа
2. **"Permission denied"**
- Проверьте права доступа к системным файлам
- Убедитесь, что файлы `/proc/uptime` доступны для чтения
3. **"Invalid uptime data"**
- Проверьте корректность системных файлов
- Убедитесь в правильности формата данных
### Отладка
```bash
# Проверка времени работы (Linux)
cat /proc/uptime
# Проверка времени работы (macOS)
uptime
# Проверка прав доступа (Linux)
ls -la /proc/uptime
# Проверка системной информации
uname -a
```
## Безопасность
- Коллектор требует права на чтение системных файлов
- Не передает пароли или секретные ключи
- Собирает только публичную информацию о времени работы
- Не выполняет привилегированные операции
## Производительность
- Время выполнения: ~1-5 миллисекунд
- Интервал сбора: рекомендуется 1 минута (60s)
- Потребление ресурсов: минимальное
- Собирает только локальную информацию о времени работы
## Совместимость
- **Linux**: все дистрибутивы
- **macOS**: все версии
- **Архитектуры**: x86_64, ARM64
- **Системы**: серверы, рабочие станции, ноутбуки
## Особенности
- **Точность**: время работы измеряется с точностью до секунды
- **Формат**: поддерживает как числовой, так и человекочитаемый формат
- **Производительность**: один из самых быстрых коллекторов
- **Надежность**: минимальная вероятность ошибок