пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
Слишком длинный поисковый запрос.
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В том случае, если на вашем предприятии организован мощный отдел продаж и ежедневно вы обрабатываете большое количество вызовов, то база данных, в которую складываются записи CDR (Call Detail Record) начинается переполняться и наращивать объем. Со временем, это может негативно сказаться на производительности сервера, приводя к замедлению обработки процессов резервного копирования и обновления системы.
Если вы не хотите удалять старые записи в базе данных, то элегантным решением данной проблемы будет перемещение базы данных для CDR на отдельный сервер. О том, как это осуществить мы расскажем в этой статье.
Рабочие условия
Предположим, что в нашем корпоративном контуре имеются следующие виртуальные машины:
192.168.1.2 - сервер IP – АТС Asterisk с графической оболочкой FreePBX;
192.168.1.3 - сервер, на котором развернута база данных MySQL;
Поддерживаемые типы баз данных это MySQL (MariaDB) и PostgreSQL;
Предварительно, настройте разрешения на подключения с IP – адреса АТС (файл pg_hba.conf в PostgreSQL и командно через консоль в случае MySQL) и создайте пользователя freepbxuser. Произведем тест на связность. Дадим команду с консоли сервера Asterisk:
mysql --host=192.168.1.3 -ufreepbxuser -p asteriskcdrdb
Введите пароль для подключения. Если все ОК, переходим к настройке FreePBX.
Настройка FreePBX
Переходим в раздел Settings → Advanced Settings. Убеждаемся, что параметры Display Readonly Settings и Override Readonly Settings установлены в значение Yes.
Remote CDR DB Host - IP – адрес хоста, на котором развернута база данных. В нашем примере это 192.168.1.3;
Remote CDR DB Name - имя базы данных. Укажите здесь asteriskcdrdb;
Remote CDR DB Password - пароль для подключения к MySQL от пользователя freepbxuser;
Remote CDR DB Port - порт, на котором база данных на удаленном хосте слушает запросы;
Remote CDR DB Table - таблица, внутри БД, с которой мы будет работать. Указываем здесь cdr;
Remote CDR DB Type - тип базы данных. Мы указываем MySQL;
Remote CDR DB User - имя пользователя, под которым мы производим подключение;
Более подробно почитать про базу данных asteriskcdrdb вы можете почитать в этой статье;
Сохраняем изменения и переходим в консоль сервер АТС. Останавливаем FreePBX:
fwconsole stop
Редактируем файл odbc.ini. Там, в параметре server, нам необходимо указать IP – адрес хоста, на котором у нас развернута внешняя БД:
vim /etc/odbc.ini
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=192.168.1.3 //замену производим вот тут
database=asteriskcdrdb
Port=3306
Socket=/var/lib/mysql/mysql.sock
option=3
Charset=utf8
Сохраняем изменения в файле и запускаем FreePBX:
fwconsole start
Теперь остается только проверить функционал. Сделайте пару тестовых звонков и проверьте их наличие в БД на удаленном хосте.
Мы хотели бы поговорить про Quality of Service (QoS) в VoIP сетях, рассказать что это такое, как это работает, зачем это нужно и как это настраивать. В этой статье мы рассмотрим, какие проблемы мы можем иметь в сети, и как QoS может с ними помочь.
Для успешного функционирования VoIP сетей голосовой трафик (voice traffic) должен иметь приоритет над трафиком с данными (data traffic). Quality of Service можно определить как способность сети предоставить лучший или особый сервис для группы пользователей и приложений за счет других пользователей и приложений.
Звучит как то, что как раз необходимо для голосового трафика – “лучший” сервис необходим для VoIP не из-за больших требований по пропускной способности (VoIP трафик использует маленькую полосу пропускания, по сравнению с другими приложениями), а из-за требований по задержке. В отличие от трафика с данными, время за которое пакет проходит из одного конца сети в другой имеет значение. Если пакет с данными при прохождении через сеть испытал задержку (delay), то файловый сервер получит файл секундой позже или страничка в браузере будет загружаться чуть дольше, и с точки зрения пользователя не произойдет ничего страшного. Однако если голосовой трафик проходит по сети и испытывает задержку, то голоса начинают перекрываться (например, абонент начинает говорить одновременно с другим абонентом) и продолжать разговор становится невозможно.
Чтобы побороть эти проблемы нужно убедиться, что для голосового трафика подходит не только полоса пропускания, но и что голосовой трафик получает первую доступную полосу. Это означает что если бутылочное горлышко (самое узкое место) находится в сети, где маршрутизатор ставит трафик в очередь, то перед тем как его выслать, маршрутизатор будет перемещать голосовой трафик перед трафиком данных, чтобы отправить его в первом доступном интервале. И это как раз задача Quality of Service. QoS, по сути, является не отдельным инструментом, а классом инструментов, направленных на то чтобы дать администратору полный контроль над трафиком внутри сети. Как и когда использовать каждый инструмент QoS зависит от требований к сети от трафика и ее характеристик.
Понимание основных проблем
Перед тем как применять QoS, нужно разораться с тем, какие проблемы мы пытаемся решить. Рассмотрим основные:
Недостаток пропускной способности (Lack of bandwidth) – Множественные потоки голосового трафика и трафика с данными конкурируют за ограниченную полосу пропускания.
Задержка (Delay) – Для того чтобы пакет дошел из пункта отправления в пункт назначения требуется какое-то время. Задержка имеет три формы:
Фиксированная задержка (Fixed delay) – Значение задержки, которое нельзя изменить. Например, требуется определенное время, чтобы пакет добрался до определенной географической локации. Это значение считается фиксированным и QoS не может повлиять на него.
Переменная задержка(Variable delay) – Значения задержки, которые можно изменить. Например, задержка в очереди интерфейса маршрутизатора является переменной, потому что она зависит от того, сколько пакетов находится на данный момент в очереди. На эту задержку можно повлиять поставив голосовые пакеты перед пакетами с данными.
Джиттер (Jitter) – Разница задержек между пакетами. Например, первому пакету разговора потребовалось 100 мс чтобы добраться до точки назначения, в то время как второму потребовалось 110 мс. В этой ситуации джиттер составляет 10 мс.
Потеря пакетов (Packet loss) – пакеты теряются из-за переполненного или ненадежного сетевого подключения.
Очень важно понимать эти проблемы, поскольку они вызывают наложения звука, эхо, потрескивания и разорванные звонки.
Механизм QoS предназначен для того, чтобы обеспечить бесперебойную передачу голоса в течение временных перегрузок в сети. Однако это не волшебная палочка, которая сможет решить все проблемы в сети. Например, если в сети есть недостаток пропускной способности, то при добавлении голосовых пакетов не стоит ожидать что QoS сможет все решить – получится что либо приложения с данными будут работать так медленно, что перестанут быть функциональными, либо голосовой трафик будет испытывать проблемы с качеством.
Цель QoS – обеспечить постоянную пропускную способность для голосового трафика таким образом, чтобы была низкая постоянная задержка с одного конца сети в другой. Чтобы выполнить это требование необходимо иметь настроенные механизмы QoS в каждой точке сети, где существует перегрузка.
Требования к голосовому и видео трафику
Разный тип трафика, который используется в сети, имеет разные требования QoS. В отличие от трафика данных, голосовой трафик считается предсказуемым. В то время как трафик данных может значительно увеличиваться при скачивании или передачи большого объема данных, голосовой трафик остается постоянным для каждого звонка поступающего и покидающего сеть. Фактический объем полосы пропускания, требуемый для голоса сильно зависит от используемого кодека.
Помимо требований к пропускной способности, голосовой трафик имеет следующие дополнительные требования:
Задержка (End-to-end delay) : 150 мс или меньше
Джиттер: 30 мс или меньше
Потеря пакетов: 1% или меньше
Видео трафик имеет такие же требования по задержке, но потребляет большую полосу пропускания. Кроме того ширина полосы пропускания может меняться в зависимости от того, сколько движения происходит в видео (большее количество движений значительно увеличивают необходимую пропускную способность).
Требования к трафику данных
Невозможно подогнать весь трафик данных под одно требование, потому что каждое отдельное приложение имеет свои QoS требования. Приложения данных можно разделить на несколько категорий:
Критически важные приложения (Mission-critical applications) – эти приложения критически важны для организации и требуют выделенной полосы пропускания.
Транзакционные приложения (Transactional applications) – эти приложения обычно взаимодействуют с пользователями и требуют быстрого времени отклика. Например, сотрудник техподдержки может использовать приложение базы данных чтобы получать информацию о абоненте на основе ID предыдущих запросов.
Низкоприоритетные приложения (Best-effort applications) – эти приложения некритичны или некатегоризированы. Это может быть почта, веб и FTP.
“Мусорные ” приложения (Scavenger applications) – это непродуктивные приложения, в которых нет необходимости для работы, но которые поглощают значительные объемы полосы пропускания. Например, это могут быть p2p приложения типа BitTorrent
Каждой из этих категорий приложений можно назначить определенный уровень QoS.
В данной статье рассматривается вопросы настройки и использования командной оболочки.
Вопросы:
Установка переменных во время входа в систему или при запуске оболочки.
Написание bash-сценариев для часто используемых цепочек команд.
Управление структурой каталогов для новых пользователей.
Настройка корректных путей поиска команд.
Командная оболочка в Unix системах называется Shell – это командный интерпретатор, который используется во всех Unix подобных операционных системах. Оболочек огромное количество. Одной из основных оболочек является оболочка BASH или Bourne-again-shell (Еще одна оболочка Борна). Данная оболочка самая распространенная оболочка Unix, которая используется по умолчанию практически во всех дистрибутивах Linux. Все, о чем будет написано далее справедливо для большинства дистрибутивов Linux. Есть небольшой нюанс с Ubuntu.
Есть вот такая картинка по профилям. Значок ~ в данном случае означает домашнюю папку пользователя по умолчанию. Например, /home/john.
Существует папка /etc/profile в ней лежат настройки глобального профиля. Такой профиль, который будет применяться для всех пользователей на данной машине, которые запускают командную оболочку. Функционал у него достаточно большой, но в первую очередь он грузит все что есть в /etc/profile.d и настройки глобального пользователя /etc/bash.bashrc и /etc/bashrc. Получается так, что ищется файл bash.bashrc или bashrc файлы, т.к в разных дистрибутивах разные файлы и грузит то, что он нашел. В документации по Linux написано, если запускается инициализационный скрипт при входе в систему, т.е пользователь заходит в систему, то отрабатывает левая часть картинки, если запускается оболочка вне контекста пользователя, то правая часть.
Если пользователь залогинился в систему, то помимо того, что отрабатывает папка /etc/profile.d начинается проверка в домашнем каталоге пользователя наличие файлов ~/.bash_profile, ~/.bash_login, ~/.profile. В разных дистрибутивах по-разному называется локальный профиль пользователя. В Ubuntu файл ~/.profile просто ссылит на ~/.bashrc, который так же лежит в домашней папке пользователя. Т.е у нас по порядку инициализационный скрипт ищет, как указанно в левой части картинки. Точкой у Ubuntu обозначаются скрытые файлы.
Вот этот файл ~/.bashrc – это настройки конкретного пользователя, настройки оболочки. Файл /etc/bashrc – это настройки глобального пользователя, настройки для всех пользователей.
Суть процесса: оболочка bash используется, как интерактивная оболочка входа в систему. Данная оболочка вызывает команды из файла /etc/profile, если он существует. Далее она по порядку начинает обрабатывать файлы ~/.bash_profile, ~/.bash_login, ~/.profile. И еще есть такой файл в home директории ~/.bash_logout – он отрабатывает при выходе из системы, что следует из его названия.
Есть второй сценарий, использование интерактивной оболочки bash, без входа в систему, то читаются файлы /etc/bash.bashrc и /etc/bashrc.
Мы можем посмотреть, что происходит при запуске оболочки. Для начала найдем файл /etc/profile.
Из картинки мы видим, что данный файл грузит /etc/bash.bashrc, в некоторых дистрибутивах это просто /etc/bashrc. И затем он выполняет из папки /etc/profile.d/*.sh, т.е все скрипты. Об этом можно прочитать в комментарии, всего два действия.
Посмотрим файл cat /etc/bash.bashrc.
Данный файл определяет поведение командной строки, он определяет глобальный профиль пользователей. Все, что в нем указанно справедливо для всех пользователей. Данный файл запускает различные псевдонимы и глобальные функции, различные настройки.
В каталоге /etc, есть папка profile.d, в ней могут находиться различные скрипты и они будут запускаться.
Теперь посмотрим, что у нас в домашней папке, в ней лежат настройки конкретного пользователя, который работает в оболочке. Переходим в домашнюю директорию cd ~, смотрим какие файлы там находятся.
Смотрим очередность запуска файлов и видим, что следующий файл, который запустится, будет ~/.profile. он содержит настройки конкретного пользователя. Посмотрим, что в нем есть cat ~/.profile.
В нем несколько переменных и он ссылит на файл ~/.bashrc. Это особенность Ubuntu. И в файле ~/.bashrc хранятся все настройки.
Он достаточно большой. В нем пишутся настройки истории, как происходит обновление, псевдонимы, цветовые настройки.
Можно посмотреть файл ~/.bash_logout.
В данном файле нет ничего особенного, просто, когда кто-то выходит экран в целях безопасности очищается.
Посмотрим, как создается структура каталогов для новых пользователей. Есть такая папка в /etc/skel/. Если мы туда перейдем и посмотрим, что в ней находиться.
Как вы видите в папке есть несколько файлов. В ней содержится все, то что будет добавляться в домашнюю папку нового пользователя. Если мы хотим пользователю, что-то добавить в его домашнюю папку, мы можем создать в данной папке файл или директорию. И у всех новых пользователей данные папки или файлы будут появляться.
