SensusAgent/docs/config.md

125 lines
4.3 KiB
Markdown
Raw 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.

### Конфигурация
Автор: Сергей Антропов, сайт: https://devops.org.ru
Основной файл конфигурации: `bin/agent/config.yaml`. Путь можно переопределить переменной окружения `CONFIG_PATH`.
Ключевые секции:
- `mode`: режим вывода (`stdout` | `kafka` | `auto`)
- `log_level`: уровень логирования (`error` | `info` | `debug`)
- `kafka`: параметры продюсера (если используется `mode: kafka`)
- `collectors`: список коллекторов и их расписание
Пример полного файла `config.yaml`:
```yaml
mode: auto # stdout | kafka | auto
log_level: info
kafka:
enabled: false
brokers: ["kafka:9092"]
topic: "sensus.metrics"
client_id: "sensusagent"
enable_tls: false
timeout: "5s"
collectors:
system:
enabled: true
type: exec
key: system
interval: "30s"
timeout: "8s"
exec: "./collectors/system"
platforms: [linux]
uptime:
enabled: false
type: exec
key: uptime
interval: "10s"
timeout: "5s"
exec: "./collectors/uptime"
platforms: [darwin, linux, windows]
macos:
enabled: false
type: exec
key: macos
interval: "30s"
timeout: "10s"
exec: "./collectors/macos"
platforms: [darwin]
sample:
enabled: false
type: exec
key: sample
interval: "30s"
timeout: "5s"
exec: "./collectors/sample.sh"
platforms: [darwin, linux]
hba:
enabled: true
type: exec
key: hba
interval: "60s"
timeout: "10s"
exec: "./collectors/hba"
platforms: [linux]
```
Пояснения по полям коллектора:
- `enabled`: включить/выключить коллектор
- `type`: тип коллектора, `exec` — внешний бинарь/скрипт
- `key`: ключ верхнего уровня в итоговом JSON
- `interval`: минимальный интервал между запусками (Go duration)
- `timeout`: максимальное время выполнения (Go duration)
- `exec`: относительный путь к исполняемому файлу в каталоге `bin/agent/collectors`
- `platforms`: список платформ, на которых допустим запуск (`linux`, `darwin`, `windows`)
Переменные окружения:
- `CONFIG_PATH` — путь к `config.yaml`
- `LOG_LEVEL` — уровень логирования (`error`, `info`, `debug`)
Kafka (подробности):
- `kafka.enabled`: включает отправку в Kafka
- `kafka.brokers`: список брокеров вида `host:port`
- `kafka.topic`: топик для публикации
- `kafka.client_id`: идентификатор клиента
- `kafka.sasl_user` / `kafka.sasl_pass`: параметры SASL/PLAIN (опционально)
- `kafka.enable_tls`: включение TLS (опционально)
- `kafka.timeout`: таймаут отправки
Пример конфигурации с Kafka и SASL/PLAIN:
```yaml
mode: kafka
log_level: info
kafka:
enabled: true
brokers: ["kafka-1:9093", "kafka-2:9093"]
topic: "sensus.metrics"
client_id: "sensusagent"
sasl_user: "metrics_user"
sasl_pass: "${KAFKA_SASL_PASS}" # рекомендуется через переменные окружения
enable_tls: true
timeout: "5s"
collectors:
system:
enabled: true
type: exec
key: system
interval: "30s"
timeout: "8s"
exec: "./collectors/system"
platforms: [linux]
```
Замечания по безопасности:
- Никогда не храните пароли в открытом виде в репозитории
- Используйте переменные окружения и секреты CI/CD
- Минимизируйте разрешения пользователя Kafka и используйте отдельный `topic`
Советы по конфигурации:
- Для тяжелых коллекторов увеличивайте `interval` и `timeout`
- При использовании Kafka установите `kafka.enabled: true` и корректные `brokers`/`topic`
- Следите, чтобы ключи `key` у разных коллекторов не пересекались