Add Infra Automation Pack v1: docs infrastructure, logging stack, sync scripts
This commit is contained in:
72
docs/internal/infra/INFRA_AUTOMATION_PACK_V1.md
Normal file
72
docs/internal/infra/INFRA_AUTOMATION_PACK_V1.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# Infra Automation Pack v1
|
||||
|
||||
Infra Automation Pack v1 стандартизує документацію, логування та синхронізацію репозиторію на всіх нодах DAARION.
|
||||
|
||||
## 1. Docs
|
||||
- Структура `/docs/public` + `/docs/internal` + `mkdocs.yml`.
|
||||
- GitHub Actions `.github/workflows/docs.yml` збирає MkDocs і публікує сайт у гілку `gh-pages` (GitHub Pages увімкнути вручну).
|
||||
- Dev залежності: `requirements-dev.txt` (`mkdocs`, `mkdocs-material`).
|
||||
|
||||
### Як запускається локально
|
||||
```bash
|
||||
pip install -r requirements-dev.txt
|
||||
mkdocs serve
|
||||
```
|
||||
|
||||
## 2. Logging Stack
|
||||
- Конфігурації в `infra/logging/`:
|
||||
- `docker-compose.logging.yml`
|
||||
- `loki-config.yml`
|
||||
- `promtail-config.yml`
|
||||
- `grafana-provisioning/...`
|
||||
- Запуск на NODE1 / NODE2:
|
||||
```bash
|
||||
cd /opt/microdao-daarion
|
||||
sudo docker compose -f infra/logging/docker-compose.logging.yml up -d
|
||||
```
|
||||
- Доступ:
|
||||
- Loki: `http://<node>:3100`
|
||||
- Grafana: `http://<node>:3000` (логін admin / пароль налаштувати після першого запуску).
|
||||
|
||||
## 3. Daily Log Summary
|
||||
- Скрипти `scripts/logs/generate_daily_summary.py` + `scripts/logs/daily_log_summary.sh`.
|
||||
- Параметри через env (`LOKI_URL`, `LAB_NOTES_DIR`).
|
||||
- Вихідні файли: `lab-notes/log_summary_YYYY-MM-DD.md`.
|
||||
|
||||
### Приклад cron-запису
|
||||
```
|
||||
0 6 * * * /opt/microdao-daarion/scripts/logs/daily_log_summary.sh >> /var/log/daarion_daily_log_summary.log 2>&1
|
||||
```
|
||||
|
||||
### GitHub Actions (опціонально)
|
||||
- `.github/workflows/log-notes.yml` — ручний запуск для пушу `lab-notes/` у `main`.
|
||||
|
||||
## 4. Docs Sync on Nodes
|
||||
- Скрипт `scripts/docs/docs_sync.sh` виконує `git fetch` / `git pull` для `origin/main`.
|
||||
|
||||
### systemd unit (шаблон)
|
||||
```
|
||||
[Unit]
|
||||
Description=Sync DAARION repo (docs + code)
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/opt/microdao-daarion/scripts/docs/docs_sync.sh
|
||||
User=daarion
|
||||
Group=daarion
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
### Cron-варіант
|
||||
```
|
||||
*/15 * * * * /opt/microdao-daarion/scripts/docs/docs_sync.sh >> /var/log/daarion_docs_sync.log 2>&1
|
||||
```
|
||||
|
||||
## 5. Подальші кроки
|
||||
- Додати Jupyter-звіти (`lab-notes/*.ipynb`).
|
||||
- Розширити Grafana dashboard (`infra/logging/grafana-provisioning/dashboards`).
|
||||
- Інтегрувати Node Registry + DAIS метадані (agents vs nodes).
|
||||
|
||||
25
docs/internal/infra/monitoring_overview.md
Normal file
25
docs/internal/infra/monitoring_overview.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Monitoring Overview
|
||||
|
||||
## Поточні компоненти
|
||||
- **Prometheus** — збирає метрики сервісів (router, gateway, swapper).
|
||||
- **Grafana** — dashboards (NODE1:3000).
|
||||
- **node-exporter** (planned) — системні метрики.
|
||||
|
||||
## Що додає Infra Automation Pack
|
||||
- **Loki + Promtail** — централізовані логи Docker та системи.
|
||||
- **Daily Log Summary** — markdown-звіти з ключовими подіями.
|
||||
- **Docs Sync** — гарантує, що інфраструктурні інструкції однакові на всіх нодах.
|
||||
|
||||
## Мережеві порти
|
||||
| Сервіс | Порт |
|
||||
|--------|------|
|
||||
| Prometheus | 9090 |
|
||||
| Grafana | 3000 |
|
||||
| Loki | 3100 |
|
||||
| Promtail | 9080 |
|
||||
|
||||
## Наступні кроки
|
||||
1. Додати алерти (Alertmanager).
|
||||
2. Інтегрувати NATS JetStream події в Loki (через Promtail pipeline).
|
||||
3. Створити спільний Grafana dashboard для City Map / Agent Presence.
|
||||
|
||||
24
docs/internal/infra/nodes_registry_v0.md
Normal file
24
docs/internal/infra/nodes_registry_v0.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Nodes Registry v0 (Draft)
|
||||
|
||||
## Мета
|
||||
Створити єдину базу даних про всі вузли (NODE1, NODE2, майбутні регіони) з метою:
|
||||
- відстеження конфігурацій і версій ПЗ;
|
||||
- автоматизації Node Join Protocol;
|
||||
- розподілу завдань агентів та сервісів.
|
||||
|
||||
## Поточний статус
|
||||
- NODE1 та NODE2 ведуться вручну в INFRASTRUCTURE.md.
|
||||
- Автоматичного API немає.
|
||||
|
||||
## План
|
||||
1. **Схема таблиці `nodes`:**
|
||||
- `node_id`, `hostname`, `role`, `env`, `ip_public`, `ip_private`, `gpu`, `status`.
|
||||
2. **Service:** FastAPI (Node Registry) з CRUD + auth.
|
||||
3. **Sync агенти:** кожен node-agent шле heartbeat в регістр через NATS.
|
||||
4. **UI:** вкладка "Nodes" в admin-панелі.
|
||||
|
||||
## Інтеграції
|
||||
- Node Join Protocol (draft).
|
||||
- DAIS (CORE) — зберігає прив'язку agent → node.
|
||||
- Infra Automation Pack — використовує registry для автоматизації sync/логів.
|
||||
|
||||
Reference in New Issue
Block a user