7 changed files with 90 additions and 7 deletions
-
9README.md
-
8abonapp/templates/abonapp/editAbon.html
-
9docs/map.md
-
65docs/services.md
-
4docs/views.md
-
0periodic.py
-
2systemd_units/djing.service
@ -0,0 +1,65 @@ |
|||||
|
## Сервисы |
||||
|
— это скрипты которые, зачастую, оформлены в юниты systemd. |
||||
|
Сейчас есть такие сервисы: |
||||
|
* [dhcp_lever](#dhcp_lever) |
||||
|
* [dialing](#dialing) |
||||
|
* [telebot](#telebot) |
||||
|
* [monitoring_agent](#monitoring_agent) |
||||
|
* [periodic](#periodic) |
||||
|
|
||||
|
|
||||
|
### dhcp_lever |
||||
|
Этот скрипт не очень похож на сервис, т.к. выполняется при каждом запросе от DHCP сервера. |
||||
|
Работа DHCP организована так: |
||||
|
- Запрос приходит от абонента с опцией-82, далее с помощью dhcp-relay направляется на dhcp сервер где |
||||
|
и находится этот скрипт |
||||
|
- ISC-DHCP-server выполняет этот скрипт, передавая параметры в таком порядке: действие, ip адрес для |
||||
|
абонента, мак адрес абонента, мак адрес свича через которые получен запрос, порт свича с которого пришёл запрос. |
||||
|
- Биллинг оповещается через *http get* запрос о событии в dhcp сервере |
||||
|
- По мак адресу свича и его порту ищется абонент. |
||||
|
- Если он найден то проверяется установлен-ли флаг "Динамические настройки по dhcp" в блоке "Устройство" |
||||
|
на странице абонента. |
||||
|
- Если флаг динамических настроек есть то проверяется совпадает ли новый ip с dhcp сервера с тем что есть у |
||||
|
абонента, и если он совпадает то ничего не происходит. В противном случае обновляем информацию об абоненте на |
||||
|
сервере доступа к сети (NAS - Network Access Server). |
||||
|
|
||||
|
Беспокоится о том что не будет обновлена другая информация не нужно, об этом позаботится [periodic](#periodic). |
||||
|
А если вам нужно немедленно обновить абонента без ожидания то просто нажмите на кномку *Сохранить* на странице абонента. |
||||
|
|
||||
|
|
||||
|
### dialing |
||||
|
Этот сервис общается с автоматической телефонной станцией на основе [Asterisk](https://www.asterisk.org/). |
||||
|
Слушает в ожидании событий и отправляет комманды в asterisk. Пока умеет только смс, слушает входящие и отправляет те |
||||
|
что были созданы из web интерфейса. |
||||
|
|
||||
|
**Настройка** — В самом скрипте нужно указать параметры досупа к asterisk, секретное слово, и адрес web сервера |
||||
|
биллинга. Секретное слово *API_AUTH_SECRET* должно совпадать с тем что в настройках биллинга. Но аккуратно, если |
||||
|
кто-то узнает это секретное слово то безопасность будет под угрозой, ведь зло настроенный человек или бот сможет |
||||
|
выполнять удалённо комманды через api. Правда это если он находится в доверенной подсети, хотя адрес отправителя, |
||||
|
как известно, можно подменить. Так что поставьте на этот скрипт ограниченные для чтения права. |
||||
|
|
||||
|
|
||||
|
### telebot |
||||
|
Этот сервис разговаривает с вами когда вы пишете в Telegram канал биллинга. |
||||
|
|
||||
|
**Настройка** — В настройках биллинга укажите *telegram bot token* в директиве *TELEGRAM_BOT_TOKEN*. |
||||
|
Это вся настройка. Теперь запустите его с помощью юнита *djing_telebot.service*, предварительно скопировав |
||||
|
его в папку с юнитами systemd. |
||||
|
|
||||
|
|
||||
|
### monitoring_agent |
||||
|
Это тоже не совсем сервис, как и [dhcp_lever](#dhcp_lever) он связывает систему мониторинга с биллингом. Сейчас работает |
||||
|
с Nagios, но изменить его для любой другой системы мониторинга совсем не сложно, достаточно подправить параметры |
||||
|
приходящиие от этой системы. |
||||
|
Каждый раз когда в биллинге происходит событие, Nagios дёргает этот скрипт и он даёт знать биллингу какое устройство |
||||
|
не в сети или появилось после сбоя. Дальше биллинг на основе этого посылает оповещения ответственным за участок на |
||||
|
котором находится оборудование и выставляет статусы на карте и в списке устройств. |
||||
|
|
||||
|
**Настройка** — Для работы этому скрипту так же надо передать секретное слово биллинга, так что тоже рекомендую |
||||
|
ограничить права на чтение. Кроме этого надо указать адрес web сервера биллинга. |
||||
|
|
||||
|
|
||||
|
### periodic |
||||
|
Периодически запускается чтоб проверить совпадает-ли информация в биллинге с тем что находится в NAS. |
||||
|
Завершает закончившие действовать услуги, проводит периодические платежи. |
||||
|
Просто укажите в cron или *systemd.timer* этот скрипт на периодичность, например, в пол часа. |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue