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