Программа осуществляет контроль состояния системы abills/libexec/billd
Формат запуска
billd [plugin] [parameters]
Возможности
контроль активности абонентов
контроль состояния депозита
контроль скорости
контроль синхронизации сессий с состоянием билинга, и удаление зомби сессий
контроль работы программ
существует интерфейс наращивания функционала через плагины
Установка
/etc/crontab
*/5 * * * * root /usr/abills/libexec/billd
Аргументы командной строки
Контроль Internet соединений
Програма контролирует депозит и статус абонентов, скидывает сессии если они переходят со статуса активно в статус отключено. Также проверяет депозит абонента и отключает должников.
При отключении сессии через RADIUS PoD система проверяте ответ от сервера доступа, если в ответе получает Error-Cause -> Session-Context-Not-Found сессия помечается как подозрительная и отправляется в ZAP.Типы статусов скидывания сессий
UNKNOWN_TP | скинуть сессию елси абонента уже нет в базе (удалили) |
CHANGE_TP | Изменился тарифный план абонентам |
CHANGE_STATE | Изменился статус услуги (услугу отключили) |
LOST_SESSION | Сессия потерялась |
EXPIRED | Истекло время работы услуги (Поле в сервисе Internet: EXPIRE) |
DUBLICATE_IP | Дублируются IP адреса |
NEG_DEPOSIT | Отрицательный баланс |
RECHARGE | Пополнили баланс |
DISABLE | Сервис отключен (услугу отключили) |
Обрабатывать только определенные типы маркеров
/usr/abills/libexec/billd HANGUP_ACTIONS="CHANGE_TP,NEG_DEPOSIT,RECHARGE,CHANGE_STATE"
Плагины
Плагины программы размещаются в каталоге abills/libexec/billd.plugins/. Плагины вызываются при явном указании их названия. При вызове плагинов другие операции не производятся.
Watchdog
check_programs - плагин слежения за работой программ.
Параметры
PROGRAMS='radiusd:/usr/local/etc/rc.d/radiusd start;' | Указания списка программ для слежения. [программа]:[команда запуска программы] |
---|
Пример: проверка работы радиуса на FreeBSD
/usr/abills/libexec/billd check_programs PROGRAMS=radiusd
Проверка работы радиуса на Linux (UBuntu)
/usr/abills/libexec/billd check_programs PROGRAMS="radiusd:/etc/init.d/radiusd start"
Пример проверки работы flow-capture на FreeBSD
/usr/abills/libexec/billd check_programs PROGRAMS="flow-capture:/usr/local/etc/rc.d/flow_capture start"
Пример проверки работы ipcad на DEBIAN
/usr/abills/libexec/billd check_programs PROGRAMS="ipcad:/usr/local/bin/ipcad -d"
mx80_change_profile - переключение профайла абонента в зависимости от времени суток. А также переключение на кастомный профайл.
Параметры
NAS_IDS=1 | Номер сервера доступа. Если не указан, система делает на всех серверах типа mx80 |
---|---|
DEBUG=1 | Режим отладки |
PROFILE=guest('no-money') | Включение кастомного профайла. Для включения добавте опцию START=1 для выключения и возврата запускайте без опции START=1 |
NAT='svc-cgn-nat-pppoe()' | Включение отключение нат профиля |
DEPOSIT='<0' | Фильтр депозитов |
Конфигурация
$conf{BILLD_PLUGINS}='plugin:args;plugin2:args2' | Список плагинов запускаемых после Онлайн проверки. Список плагинов указывается через точку с запятой. После названия плагина можно указать аргументы передаваемые ему через двоеточие |
---|
Пример
/usr/abills/libexec/billd mx80_change_profile
dhcp_clean_leases - чистка законченных сессий Freeradius DHCP
Пример
/usr/abills/libexec/billd dhcp_clean_leases
Плагин equipment_ping
Данный плагин пингует оборудование.
Если статус оборудования был «Отключено» и пинги начали доходить - статус меняется на «Активно». Если статус оборудования был «Включено» и пинги перестали доходить - статус меняется на «Отключено». В случае смены статуса на «Отключено» создается событие, и все администраторы подписанные на модуль Equipment получают уведомление.
Пример:
/usr/abills/libexec/billd equipment_ping
Плагин events_check
Плагин проверяет наличие и коректность бэкапов.
Если отсутствует вчерашний backup или он сформирован не до конца генерирует событие в системе.
Если включён модуль Events, администратору отобразится всплывающее окошко о проблеме с бэкапами.
Пример:
/usr/abills/libexec/billd events_check
Плагин Events Push
Плагин отправляет все текущие уведомления (какие отобразились бы в Веб-интерфейсе ) Push уведомлениями (Нужно настроить Push уведомления)
Пример:
/usr/abills/libexec/billd events_push
Отправка писем о депозите отдельно от периодических начислений
/usr/abills/libexec/periodics daily NO_USERS_WARNINGS=1 /usr/abills/libexec/periodics monthly NO_USERS_WARNINGS=1 /usr/abills/libexec/periodics daily FN=dv_users_warning_messages
Дублирование удалённой базы
Автоматическое скачивание и наполнения локальной базы на основе удалённого дампа. Удобно использовать при создании тестового сервера и автоматического его обновления с основного. Программа скачивает дамп за текущее число с удалённого сервера и наполняет локальную базу. Можно использовать через cron для ежедневного обновления.
/usr/abills/libexec/billd sync_db
Параметры
DEBUG=1..7 | Режим отладки |
---|
Опции настройки
Удалённый хост синхронизации
$conf{SYNC_DB_HOST}='192.168.1.100:22:/usr/abills/backup/';
Команда синхронизации. Предназначена для синхронизации из нестандартных каталогов или хостов. При её использовании опции $conf{SYNC_DB_HOST} игнорируется.
$conf{SYNC_DB_DOWNLOAD}='scp abills_support@192.168.1.100:/usr/abills/backup/stats-%DATE%.sql.gz /usr/abills/backup/stats-%DATE%.sql.gz; ' .'gzip -d /usr/abills/backup/stats-%DATE%.sql.gz --name /usr/abills/backup/sync_dump.sql';
Название локально базы. По умолчанию abills
$conf{SYNC_DB_NAME}='abills_3';
Анализатор логов Apache сервера
Для проверки файлов с логами нужно добавить в файл config.pl пути к проверяемым логам через символ ";"
$conf{APACHE_LOGS} = '/var/log/apache2/error.log; /var/log/apache2/access.log';
Добавить проверяемые параметры в файл /usr/abills/libexec/secure.txt. Каждый параметр с новой строки. Пример
SELECT INSERT 192.168.1.1 192.168.0.0
Выполнение
/usr/abills/libexec/billd secure
Результат проверки будет отображаться по пути /var/log/apache2/secure.log