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