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 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 |
|
||||||
│ Сохранение состояния │
|
| Сохранение состоян.|
|
||||||
└─────────────────────┘
|
+-------------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
### Обработка ошибок
|
### Обработка ошибок
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user