- Добавлен новый коллектор 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
5.7 KiB
5.7 KiB
Коллектор 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'
Устранение неполадок
Частые проблемы
-
"No data collected"
- Убедитесь, что система Linux или macOS
- Проверьте доступность системных файлов
- Убедитесь в правильности прав доступа
-
"Permission denied"
- Проверьте права доступа к системным файлам
- Убедитесь, что файлы
/proc/uptime
доступны для чтения
-
"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
- Системы: серверы, рабочие станции, ноутбуки
Особенности
- Точность: время работы измеряется с точностью до секунды
- Формат: поддерживает как числовой, так и человекочитаемый формат
- Производительность: один из самых быстрых коллекторов
- Надежность: минимальная вероятность ошибок