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
+60 -60
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 |
Сохранение состояния │ | Сохранение состоян.|
└─────────────────────┘ +-------------------+
``` ```
### Обработка ошибок ### Обработка ошибок