- Добавлен новый коллектор 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
167 lines
5.7 KiB
Markdown
167 lines
5.7 KiB
Markdown
# Коллектор 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
|
||
- **Системы**: серверы, рабочие станции, ноутбуки
|
||
|
||
## Особенности
|
||
|
||
- **Точность**: время работы измеряется с точностью до секунды
|
||
- **Формат**: поддерживает как числовой, так и человекочитаемый формат
|
||
- **Производительность**: один из самых быстрых коллекторов
|
||
- **Надежность**: минимальная вероятность ошибок
|