Инструменты пользователя

Инструменты сайта


faq:monitoring-trunks

Это старая версия документа!


Мониторинг состояния линий

При работе с поставщиками услуг связи периодически могут возникать проблемы. К примеру сервер поставщика не отвечает / не доступен. В рамках данной статьи будет предложен механизм оповещения на email системного администратора.

  1. Подключитесь к АТС с помощью SSH-клиента
  2. Создадим каталог для хранения скриптов
    mkdir -p  /storage/usbdisk1/mikopbx/custom_modules/monitoring
  3. Создадим новый файл nano
    /storage/usbdisk1/mikopbx/custom_modules/monitoring/prodiders.php
  4. Вставьте содержимое:
    #!/usr/bin/php
    <?php
    use MikoPBX\Common\Models\LanInterfaces;
    use MikoPBX\PBXCoreREST\Lib\SIPStackProcessor;
    use MikoPBX\Core\System\Notifications;
    use MikoPBX\Common\Models\PbxSettings;
    require_once 'Globals.php';
    
    $date = SIPStackProcessor::getRegistry();
    $adminMail = null;
    $localIP   = '';
    $message   = '';
    foreach ($date->data as $provider){
        if($provider['state'] !== 'OFF' && $provider['state'] !== 'REGISTERED'){
            if($adminMail === null){
                $adminMail = PbxSettings::getValueByKey('SystemNotificationsEmail');
                $interfaces = LanInterfaces::find("disabled='0'");
                foreach ($interfaces as $interface){
                    if(!empty($interface->ipaddr)){
                        $localIP = $interface->ipaddr;
                        break;
                    }
                }
            }
            $message.=  "Provider state: {$provider['state']}<br>".
                        "Url (local): http://{$localIP}/admin-cabinet/providers/modifysip/{$provider['id']} <br><br>";
        }
    }
    
    if(!empty($message) && !empty($adminMail)){
        $notify  = new Notifications();
        try {
            $notify->sendMail($adminMail, 'Provider invalid state...', $message);
        }catch (\Throwable $e){
        }
    }
  5. Сохраните файл, используйте комбинацию клавишь CTRL + X, введите Y, и нажмите ENTER
  6. Добавьте право на исполнение скрипта
     chmod +x  /storage/usbdisk1/mikopbx/custom_modules/monitoring/prodiders.php
  7. Откройте для редактирования /var/spool/cron/crontabs/root
  8. Выберите действие Добавить к файлу
  9. Добавьте следующее содержимое
    */5 * * * * /storage/usbdisk1/mikopbx/custom_modules/monitoring/prodiders.php > /dev/null 2> /dev/null
  10. Каждые 5 минут скрипт будет проверять статус провайдера и если есть проблемы будет отправлен email администратору MikoPBX
faq/monitoring-trunks.1667901108.txt.gz · Последние изменения: 2022/11/08 09:51 — Портнов Алексей