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

5.7 KiB
Raw Blame History

Коллектор uptime

Автор: Сергей Антропов
Сайт: https://devops.org.ru

Описание

Коллектор uptime собирает информацию о времени работы системы. Предоставляет время работы в секундах и в человекочитаемом формате.

Поддерживаемые платформы

  • Linux: Полная поддержка
  • macOS: Полная поддержка
  • Windows: Не поддерживается (возвращает пустой 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

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 или чтение системных файлов

Примеры использования

Проверка работы коллектора

# Запуск коллектора напрямую
./bin/agent/collectors/uptime

# Запуск через агент
make run

Фильтрация данных

# Время работы в секундах
./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"

    • Проверьте корректность системных файлов
    • Убедитесь в правильности формата данных

Отладка

# Проверка времени работы (Linux)
cat /proc/uptime

# Проверка времени работы (macOS)
uptime

# Проверка прав доступа (Linux)
ls -la /proc/uptime

# Проверка системной информации
uname -a

Безопасность

  • Коллектор требует права на чтение системных файлов
  • Не передает пароли или секретные ключи
  • Собирает только публичную информацию о времени работы
  • Не выполняет привилегированные операции

Производительность

  • Время выполнения: ~1-5 миллисекунд
  • Интервал сбора: рекомендуется 1 минута (60s)
  • Потребление ресурсов: минимальное
  • Собирает только локальную информацию о времени работы

Совместимость

  • Linux: все дистрибутивы
  • macOS: все версии
  • Архитектуры: x86_64, ARM64
  • Системы: серверы, рабочие станции, ноутбуки

Особенности

  • Точность: время работы измеряется с точностью до секунды
  • Формат: поддерживает как числовой, так и человекочитаемый формат
  • Производительность: один из самых быстрых коллекторов
  • Надежность: минимальная вероятность ошибок