## Сервисы — это скрипты которые, зачастую, оформлены в юниты systemd. Сейчас есть такие сервисы: * [dhcp_lever](#dhcp_lever) * [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). А если вам нужно немедленно обновить абонента без ожидания то просто нажмите на кномку *Сохранить* на странице абонента. ### monitoring_agent Это тоже не совсем сервис, как и [dhcp_lever](#dhcp_lever) он связывает систему мониторинга с биллингом. Сейчас работает с Nagios, но изменить его для любой другой системы мониторинга совсем не сложно, достаточно подправить параметры приходящиие от этой системы. Каждый раз когда в сети происходит событие, Nagios дёргает этот скрипт и он даёт знать биллингу какое устройство не в сети или появилось после сбоя. Дальше биллинг на основе этого посылает оповещения ответственным за участок на котором находится оборудование и выставляет статусы в списке устройств. **Настройка** — Для работы этому скрипту так же надо передать секретное слово биллинга, так что тоже рекомендую ограничить права на чтение. Кроме этого надо указать адрес web сервера биллинга. ### periodic Периодически запускается чтоб проверить совпадает-ли информация в биллинге с тем что находится в NAS. Завершает закончившие действовать услуги, проводит периодические платежи. Просто укажите в cron или *systemd.timer* этот скрипт на периодичность, например, в пол часа, или по ночам, как вам удобнее.