|
|
@ -0,0 +1,65 @@ |
|
|
|
|
|
## Сервисы |
|
|
|
|
|
— это скрипты которые, зачастую, оформлены в юниты systemd. |
|
|
|
|
|
Сейчас есть такие сервисы: |
|
|
|
|
|
* [dhcp_lever](#markdown-header-dhcp_lever) |
|
|
|
|
|
* [dialing](#markdown-header-dialing) |
|
|
|
|
|
* [telebot](#markdown-header-telebot) |
|
|
|
|
|
* [monitoring_agent](#markdown-header-monitoring_agent) |
|
|
|
|
|
* [periodic](#markdown-header-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* этот скрипт на периодичность, например, в пол часа. |