fix: исправил ASCII-схемы в README — ровные блоки, актуальные названия

- заменил Unicode-рамки на ASCII для корректного отображения
- переименовал Zabbix Sender в Data Exporter
- добавил цепочку JSON files -> Zabbix Agent -> Zabbix Server
- исправил блок-схему цикла: экспорт в файлы вместо отправки
This commit is contained in:
Maksim Totmin 2026-04-08 17:43:33 +07:00
parent 62744d1a43
commit 9aacc861f6

140
README.md
View File

@ -43,26 +43,26 @@
## Архитектура ## Архитектура
``` ```
┌──────────────────────────────────────────────────────────────────┐ +------------------------------------------------------------------+
│ Airflow DAG Monitor │ | Airflow DAG Monitor |
│ │ | |
│ ┌─────────┐ ┌──────────┐ ┌──────────────┐ ┌────────┐ │ | +----------+ +----------+ +--------------+ +----------+ |
│ │ Airflow │───>│ Analyzer │───>│ActionHandler │───>│ Zabbix │ │ | | Airflow |-->| Analyzer |-->| ActionHandler |-->| Data | |
│ │ Client │ │ │ │ │ │ Sender │ │ | | Client | | | | | | Exporter | |
│ └─────────┘ └──────────┘ └──────────────┘ └────────┘ │ | +----------+ +----------+ +--------------+ +----------+ |
│ │ │ │ │ | | | | | |
│ v v v │ | v v v v |
│ ┌──────────────────────────────────────────────────────────┐ │ | +--------------------------------------------------------+ |
│ │ State Manager │ │ | | State Manager | |
│ │ (retry counts, alert flags) │ │ | | (retry counts, alert flags) | |
│ └──────────────────────────────────────────────────────────┘ │ | +--------------------------------------------------------+ |
└──────────────────────────────────────────────────────────────────┘ +------------------------------------------------------------------+
│ │ | |
v v v v
┌─────────┐ ┌──────────────┐ +---------+ +----------+ +---------+ +----------------+
│ Airflow │ │Zabbix Server │ | Airflow | | JSON | | Zabbix | | Zabbix Server |
│ API │ │ Dashboard │ | API | | files |-->| Agent |-->| Dashboard |
└─────────┘ └──────────────┘ +---------+ +----------+ +---------+ +----------------+
``` ```
--- ---
@ -377,14 +377,14 @@ usage: python -m airflow_monitor [-h] [--config CONFIG] [--discover] [--dry-run]
локальный Zabbix Agent, который уже подключён к серверу (напрямую или через Zabbix Proxy). локальный Zabbix Agent, который уже подключён к серверу (напрямую или через Zabbix Proxy).
``` ```
┌──────────────────┐ файлы ┌──────────────┐ сеть ┌──────────────┐ +------------------+ файлы +--------------+ сеть +----------------+
│ airflow-monitor │ ──────────────> │ Zabbix Agent │ ────────────> │Zabbix Server │ | airflow-monitor |------------>| Zabbix Agent |------------>| Zabbix Server |
│ (systemd) │ /var/lib/... │ UserParameter│ │ Dashboard │ | (systemd) | /var/lib/.. | UserParameter| | Dashboard |
└──────────────────┘ └──────────────┘ └──────────────┘ +------------------+ +--------------+ +----------------+
или или
┌──────────────┐ +--------------+
│ Zabbix Proxy │ | Zabbix Proxy |
└──────────────┘ +--------------+
``` ```
1. Монитор пишет результаты в файлы `/var/lib/airflow-monitor/` 1. Монитор пишет результаты в файлы `/var/lib/airflow-monitor/`
@ -541,48 +541,48 @@ zabbix_agentd -t airflow.monitor.alive
### Цикл мониторинга ### Цикл мониторинга
``` ```
┌─────────────────────┐ +------------------------+
│ Загрузка состояния │ | Загрузка состояния |
└──────────┬──────────┘ +-----------+------------+
v v
┌─────────────────────────────┐ +----------------------------+
│ Получение списка DAG-ов │ | Получение списка DAG-ов |
│ GET /api/v1/dags │ | GET /api/v1/dags |
└──────────────┬──────────────┘ +-----------+----------------+
v v
┌─────────────────────────────┐ +----------------------------+
│ Для каждого DAG: │ | Для каждого DAG: |
│ GET /api/v1/dags/{id}/runs │ | GET /api/v1/dags/{id}/runs |
│ (фильтр: running, failed) │ | (фильтр: running, failed) |
└──────────────┬──────────────┘ +-----------+----------------+
v v
┌───────────────────────┐ +--------------------+
│ Анализ: есть проблемы?│ | Анализ: проблемы? |
└───────┬───────┬───────┘ +---+------------+---+
нет │ │ да нет | | да
v v v v
┌────┐ ┌──────────────────┐ +------+ +-----------------+
│Done│ │ Перезапуск (1 раз)│ | Done | | Перезапуск (x1) |
└────┘ └────────┬─────────┘ +------+ +--------+--------+
v v
┌─────────────────────┐ +-------------------+
│ Ожидание 2 мин │ | Ожидание 2 мин |
└──────────┬──────────┘ +--------+----------+
v v
┌─────────────────────┐ +-------------------+
│ Повторная проверка │ | Повторная проверка |
└───────┬──────┬──────┘ +----+----------+---+
ОК │ │ Проблема ОК | | Проблема
v v v v
┌────┐ ┌──────────────────┐ +------+ +------------------+
│Done│ │ Алерт в Zabbix │ | Done | | Экспорт в файлы |
└────┘ └──────────────────┘ +------+ | для Zabbix Agent |
+--------+---------+
v v
┌─────────────────────┐ +-------------------+
│ Heartbeat + cleanup │ | Heartbeat+cleanup |
│ Сохранение состояния │ | Сохранение состоян.|
└─────────────────────┘ +-------------------+
``` ```
### Обработка ошибок ### Обработка ошибок