- Удален тестовый скрипт runner/test-config-generation.sh - Обновлен docs/overview.md: - Добавлена информация о гибкой конфигурации коллекторов - Добавлена информация о командах обновления - Обновлено описание структуры runner/ - Добавлена ссылка на docs/ansible_groups.md - Обновлен docs/deploy.md: - Убраны ссылки на устаревшие -raw папки - Добавлена информация о командах обновления - Добавлен раздел о гибкой конфигурации коллекторов - Добавлены примеры развертывания на конкретных группах - Исправлен порядок команд в Makefile (перенесены в правильное место) Автор: Сергей Антропов Сайт: https://devops.org.ru
50 lines
3.7 KiB
Markdown
50 lines
3.7 KiB
Markdown
### Обзор
|
||
|
||
Автор: Сергей Антропов, сайт: https://devops.org.ru
|
||
|
||
SensusAgent — модульный агент сбора метрик и инвентарных данных. Агент запускает встроенные и внешние (exec) коллекторы по расписанию, объединяет их JSON-вывод в единый документ и публикует в выбранный канал вывода (stdout, Kafka или auto-режим).
|
||
|
||
Основные возможности:
|
||
- Запуск коллекторов как внешних исполняемых файлов из `bin/agent/collectors` и как встроенных Go-бинарей
|
||
- Единый JSON-формат вывода для удобной интеграции
|
||
- Гибкая конфигурация через `bin/agent/config.yaml` и переменные окружения
|
||
- Кроссплатформенная сборка через Docker и Makefile (без локальной Go-сборки)
|
||
- Деплой и удаление через Ansible (`make deploy`, `make delete`, а также варианты с systemd)
|
||
- Гибкая конфигурация коллекторов через Ansible группы
|
||
- Команды обновления (`make update-service`, `make update`)
|
||
|
||
Архитектура и компоненты репозитория:
|
||
- `src/core/*` — ядро агента (конфигурация, реестр коллекторов, раннер, логирование, вывод)
|
||
- `src/collectors/*` — исходники Go-коллекторов (сборка в `bin/agent/collectors`)
|
||
- `bin/agent` — исполняемые файлы и конфиги агента (`config.yaml`, собранные коллекторы)
|
||
- `runner/*` — сценарии Ansible для деплоя/удаления (и для systemd), групповые переменные и шаблоны
|
||
- `docs/*` — документация проекта
|
||
|
||
Поток выполнения:
|
||
1. Агент загружает конфигурацию из `bin/agent/config.yaml` (путь можно переопределить `CONFIG_PATH`)
|
||
2. Инициализирует логирование по уровню `LOG_LEVEL`
|
||
3. Регистрирует и планирует запуск коллекторов согласно их `interval` и `timeout`
|
||
4. Исполняет коллектора (встроенные или `type: exec`), читает JSON из stdout
|
||
5. Объединяет данные в общий JSON-документ и публикует в stdout или Kafka (в зависимости от `mode`)
|
||
|
||
Режимы вывода (`mode`):
|
||
- `stdout` — печать JSON в стандартный вывод
|
||
- `kafka` — отправка в Kafka-топик
|
||
- `auto` — автоматически выбирает канал (например, stdout, если Kafka отключена)
|
||
|
||
Переменные окружения (основные):
|
||
- `CONFIG_PATH` — путь к конфигурации (по умолчанию `./bin/agent/config.yaml`)
|
||
- `LOG_LEVEL` — уровень логирования (`error`, `info`, `debug`)
|
||
|
||
Поддерживаемые платформы:
|
||
- Linux (агент и коллекторы)
|
||
- macOS (часть коллекторов и сборок)
|
||
- Windows (ограниченно для некоторых коллекторов)
|
||
|
||
См. также:
|
||
- Конфигурация: `docs/config.md`
|
||
- Коллекторы: `docs/collectors.md`
|
||
- Сборка/запуск: `docs/build_and_run.md`
|
||
- Деплой: `docs/deploy.md`
|
||
- Гибкая конфигурация коллекторов: `docs/ansible_groups.md`
|