Skip to content

🟣Ecstasy - Equipment Control System To Assist You - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для управлСния сСтСвым ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

License

Notifications You must be signed in to change notification settings

ig-rudenko/ecstasy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ecstasy

Python Code style: black

nginx vue.js django celery redis mysql ansible jenkins

Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для взаимодСйствия с сСтСвым ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ сСтСвых устройствах Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для чтСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π±Π΅Π· Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

img.png

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°

img.png

ВозмоТности:

  • ВзаимодСйствиС с сСтСвым ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
    • ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ интСрфСйсов оборудования Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
    • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм ΠΏΠΎΡ€Ρ‚Π° (up/down)
    • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ MAC адрСсов Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ
    • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ€Ρ‚Π°
    • ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ для просмотра Π»ΠΎΠ³ΠΎΠ² Π² Elastic Stack
    • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ошибок Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ
    • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ сСссию ΠΏΠΎ MAC адрСсу
    • Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ оборудования

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ecstasy прСдоставляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ поиска сСтСвой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ:

  • ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ VLAN / MAC
  • Поиск ΠΏΠΎ тСкстовому описанию интСрфСйсов
  • Поиск IP/MAC адрСса
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ просмотр ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ оборудования:

Бписок ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ совмСстимы, Π½ΠΎ я имСю доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ этим устройствам.

  • Cisco
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ для: WS-C4500* WS-C35*0 WS-C3750* ME-3*00X ME-4924 ME-3400
  • Eltex
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ для: MES3324* ESR-12VF LTP-4X(8X)-rev.* LTP-16N
  • MikroTik
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ для: RouterOS v6.* (v7.*)
  • Huawei
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ для: S2403TP S2326TP CX600-X8 CE6865
  • Huawei DSL (GPON)
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ для: MA5600T
  • Iskratel DSL
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ для: MPC8560
  • D-Link
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ для: DES-3200-* DES-3028 DES-3526 DGS-3420 DGS-12**
  • Extreme
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ для: X460-* X670-*
  • ZTE
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ для: ZXR10 2928E 2936-FI 2952E
  • Q-Tech
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ для: QSW-3450-* QSW-8200-*

Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ прилоТСния (Ansible)

img.png

  1. УстанавливаСм ansible.
  2. ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΡƒ ansible.
  3. ΠŸΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ Π² Ρ„Π°ΠΉΠ»Π΅ inventory/hosts IP адрСс ΠΈ ΠΏΠΎΡ€Ρ‚ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сСрвСра, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ установлСна систСма.
  4. Π’ ΠΏΠ°ΠΏΠΊΠ΅ roles находятся Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ настройки прилоТСния:
  • ecstasy-main.yaml содСрТит основныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°;
# ------- DIRS --------
root_folder: "/home/ecstasy" # ДирСктория ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

# ------ PYTHON -------
python_version: 3.11

# -------- WEB --------
django_superuser_username: superusername
django_superuser_password: password

gunicorn_socket: 127.0.0.1:8000
device_connector_socket: 127.0.0.1:9999

celery_concurrent: 2
celery_worker_name: worker1

flower_address: 0.0.0.0
flower_port: 5555
flower_username: monitoring
flower_password: flower-password

nginx_http_listen_port: 80
enable_https: no
# ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ HTTPS Π±ΡƒΠ΄Π΅Ρ‚ создан самоподписанный сСртификат

# ------- REDIS --------
redis_broker_db: 0
redis_cache_db: 1
redis_password: redis-password
  • ecstasy-mariadb.yaml - ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…;
mysql_root_password: root-password

# ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ создан
mariadb_user: ecstasy
mariadb_password: ecstasy-password
# Π‘Π°Π·Π° Π±ΡƒΠ΄Π΅Ρ‚ создана
mariadb_database: ecstasy
  • ecstasy-services.yaml - для Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвисов.
# Названия сСрвисов
ECSTASY_SERVICE_NAME: ecstasy
CELERY_SERVICE_NAME: ecstasy-celery
DEVICE_CONNECTOR_SERVICE_NAME: ecstasy-device-connector
FLOWER_SERVICE_NAME: ecstasy-flower

# ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния для сСрвисов Ecstasy.
ALLOWED_HOSTS: "*"
DJANGO_DEBUG: 0
CONFIG_STORAGE_DIR: # дирСктория Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ 
DJANGO_SECRET_KEY:
CONTACT_NAME: # имя для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи
CONTACT_EMAIL: # ΠΏΠΎΡ‡Ρ‚Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи
CACHE_KEY_PREFIX: ecstasy_prod
DEVICE_CONNECTOR_TOKEN: # Ρ‚ΠΎΠΊΠ΅Π½ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ device connector
DEVICE_CONNECTOR_DEFAULT_POOL_SIZE: 2 # ΠΊΠΎΠ»-Π²ΠΎ сСссий ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСтСвого оборудования

НСобходимо ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΈ/ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

  1. Π”Π°Π»Π΅Π΅ запускаСм ansible:
ansible-playbook -K -i inventory/hosts playbooks/deploy-ecstasy.yaml
  1. Π’Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ установки.

Π£Π΄ΠΎΠ±Π½Ρ‹ΠΉ поиск оборудования

img.png

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ загруТСнности интСрфСйсов ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΉ

img.png

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ оборудования показываСтся Π΅Π³ΠΎ информация:

  • БостояниС оборудования
  • Нагрузка CPU, RAM, Flash ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°
  • ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ информация (бСрСтся ΠΈΠ· Zabbix)
  • Бсылка Π² Zabbix
  • Бсылка Π½Π° ΠΊΠ°Ρ€Ρ‚Ρƒ с мСстополоТСниСм оборудования
  • Π›ΠΎΠ³ΠΈ Π² Elastic Search
  • ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ
  • ΠœΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»Ρ‹
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹

img.png

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° открываСтся Π΅Π³ΠΎ информация: ОписаниС, конфигурация, счСтчик ошибок, диагностика состояния кабСля, список VAC адрСсов

img_1.png

Для станционных Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² GPON OLT Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± интСрфСйсС (ΡƒΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅)

img.png

ΠšΠ°Ρ€Ρ‚Ρ‹

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹:

  • Из ссылки Π½Π° внСшнюю ΠΊΠ°Ρ€Ρ‚Ρƒ;
  • Из HTML Ρ„Π°ΠΉΠ»Π° ΠΊΠ°Ρ€Ρ‚Ρ‹;
  • Из совокупности Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… слоСв. Π‘Π»ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн:
    • Из Π³Ρ€ΡƒΠΏΠΏΡ‹ Π² Zabbix (Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΡƒΠ·Π»Ρ‹ сСти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹);
    • Из Ρ„Π°ΠΉΠ»Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° GEOJSON.

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ со слоями ΠΈΠ· Zabbix Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ оборудования с описаниСм ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Zabbix.

img.png

Вопология VLAN

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ VLAN ΠΏΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ.

img.png

Вопология прохоТдСния MAC адрСса

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° MAC адрСса ΠΌΠ΅ΠΆΠ΄Ρƒ оборудованиями.

img.png

Поиск ΠΏΠΎ описанию ΠΏΠΎΡ€Ρ‚Π°

img.png

Поиск IP ΠΈΠ»ΠΈ MAC адрСса

img.png

БозданиС связСй модСлСй

python manage.py graph_models -a --rankdir LR --dot -g -o ./docs/models.dot
dot -Tsvg ./docs/models.dot -o ./docs/models.svg

About

🟣Ecstasy - Equipment Control System To Assist You - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для управлСния сСтСвым ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

Topics

Resources

License

Stars

Watchers

Forks