По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В одной из вышедших ранее статей мы разбирали такой инструмент сетевого администратора, как Chef. В этой статье мы рассмотрим конкретные примеры использования Chef на примерах компаний, применяющих это решение в своей деятельности. Для начала, вспомним, что же это такое. Chef это система конфигурирования сети, то есть программа, работающая на клиент-серверной архитектуре, предназначенная для быстрого развертывания, управления, сбора данных, анализа и оптимизации компьютерной сети. Инструментарий Chef позволяет сделать настройку более оперативной, за счет горизонтального масштабирования сети. Также при помощи Chef можно подготовить несколько сценариев управления сетью, что позволяет решить большинство задач, возникающих перед современной командой сетевых инженеров в крупной корпорации Одним из ярких примеров применения Chef для расширения деятельности компаний является южноафриканский Standard Bank. С расширением его деятельности возникла проблема замедления работы системы, в связи с тем, что у компании появилось слишком много хранилищ данных. Это делало систему управления сетью достаточно громоздкой и неповоротливой, поэтому руководство организации решилось на внедрение системы Chef. Это решение позволило повысить эффективность развертывания сети, а также решило проблему медленной работы. Сетевые инженеры разработали несколько сценариев работы сети, и выбрали основную "поваренную книгу" и несколько резервных на случай возникновения нештатных ситуаций. В результате Standard Bank до сих пор удерживает позиции в верхней половине финансовых организаций, действующих на развивающихся рынках. Также интересен опыт применения Chef в компании Rakuten создателях популярного мессенджера Viber. В своё время здесь столкнулись с проблемой низкой эффективности в работе серверов связи, основанной на различных программных средах на клиентских устройствах. Последовательное внедрение автоматизации посредством применения Chef позволило привести работу серверов к единообразию, что позволило не только решить существующую проблему, но и существенно повысило скорость работы сервиса и удобство связи. Это позволяет до сих пор считать продукт компании Rakuten одним из самых популярных на рынке. Всем известен такой гигант IT-индустрии, как IBM. Эта гигантская корпорация часто выступает в качестве спонсора крупных спортивных соревнований, а также предоставляет для них информационную поддержку. В ходе освещения спортивных событий на своих сайтах, компания столкнулась с чрезвычайной нагрузкой на свои сервера. Это приводило к задержкам и неполадкам в работе. Специалисты компании применили решение Chef для того, чтобы оперативно увеличить количество серверов, распределив обработку информации между ними. Это решение настолько пришлось по душе руководству компании IBM, что обе компании до сих пор поддерживают партнерские отношения, а IBM поддерживает развитие проекта Chef. Корпорация Facebook является примером взрывного роста популярности социальных сетей. Различными сервисами от этой компании пользуются сотни миллионов людей по всему миру. И более десятка лет обслуживание серверов осуществлялось с помощью одного и того же движка. Кластерная структура сети Facebook насчитывала по десятку тысяч устройств в одном кластере. И расширение сервиса с течением времени привело к тому, что техническое решение по обслуживанию серверов сети было признано устаревшим. Технический отдел компании оценил гибкость решения Chef и скорость его работы, и было решено применить эту систему для обслуживания серверов компании, что обеспечило выравнивание темпов роста сети. С применением Chef на текущий момент компания имеет серверные мощности, чтобы обеспечить обслуживание не только существующих клиентов, но и привлечение новых. В небольших компаниях, которые насчитывают несколько сотен рабочих станций, Chef также подтверждает свою эффективность. Конечно, есть варианты нанять нескольких сотрудников для оперативного обслуживания сети, мониторинга, расширения и сбора данных, однако на деле многие компании предпочитают иметь дело с одним-двумя администраторами сети, хорошо владеющими своим инструментом. Поскольку Chef в умелых руках - универсальный инструмент. Таким образом, очевидно, что технология Chef опробована и одобрена по-настоящему серьезными компаниями. Это обеспечивает команде разработчиков Chef высокую репутацию, и позволяет с уверенностью сказать, что данный продукт имеет высокое качество.
img
Одной из основных составляющих IP – PBX на базе Asterisk являются SIP – транки в сторону провайдера и оконечные телефонные аппараты, или как их принято называть «пиры» (peers). Сегодня мы расскажем о способе автоматизации мониторинга состояния транков и пиров, с отправлением на почту системного администратора. Мониторинг пиров Итак, начнем с мониторинга состояния пиров. Для этого мы напишем небольшой bash – скрипт. Предположим, что у нас есть 3 площадки, А, B и C. АТС Asterisk находится на площадке A. Предварительно, перед началом работы, создадим 2 файлы: первый – для логов нашего скрипта, а второй, будет служебным, и будет использоваться только в рамках исполнения скрипта. Внутри каждого скрипта, мы будем писать комментарии к каждой из его строк. Скачать скрипт мониторинга пиров вы можете по ссылке ниже: Скачать скрипт мониторинга пиров [root@asteriskpbx]# touch /home/admin/log_mail.txt [root@asteriskpbx]# touch /home/admin/message.txt Далее, создаем переменные для нашего скрипта: #!/bin/sh LOGSIZE=`ls -l /home/admin/log_mail.txt | awk '{ print $5 }'` //проверяем размер файла с логами problempeers=`/usr/sbin/asterisk -rx 'sip show peers' | grep UNKNOWN` //выводим командой 'sip show peers' через консоль Asterisk, и затем, с помощью команды grep UNKNOWN фильтруем пиры, чтобы отобразить только те, состояние которых является UNKNOWN GWB=`ping -c4 11.22.33.44 | grep 'received' | awk -F',' '{ print $2}' | awk '{ print $1}'` //по протоколу ICMP, пингуем IP – адрес шлюза на удаленной площадке четырьмя пакетами. Если все ОК, и шлюз доступен, до значение переменной будет равно 4. В противном случае, оно будет равно 0. GWC=`ping -c4 44.33.22.11 | grep 'received' | awk -F',' '{ print $2}' | awk '{ print $1}'` //аналогичным образом пингуем шлюз на площадке C ResultB="" //служебная переменная ResultC="" //служебная переменная FILENAME=/home/admin/message.txt //записываем в переменную путь к лог- файлам LOGFILE=/home/admin/log_mail.txt DATE="`date +%d.%m.%Y" "%H:%M:%S`" //выводим текущую дату и время в формате дд.мм.гггг чч:мм:сс echo "$problempeers" > /home/admin/message.txt //записываем содержимое переменной problempeers в служебный файл. В этой переменной содержится результат вывода команды по статусу пиров. FILESIZE=$(stat -c%s "$FILENAME") //проверяем размер служебного файла message.txt. Если в нем есть какая-либо информация, значит есть проблемы с пирами (имеются в статусе UNKNOWN), если он пустой, то все ОК. На этом этапе, мы сформировали все необходимые переменные и у нас имеются все необходимые для формирования письма (если надо) на email системному администратору. Перейдем к исполнительной части скрипта: if [ $GWB -eq 0 ]; then //если число ответов шлюза на площадке B на пинг равно 0, то запускаем процесс формирования письма ResultB ="на площадке B НЕ ДОСТУПЕН!" //формируем часть текста. Мы ее включим в заголовок письма else ResultB ="" //если все таки шлюз ответил на пинг, то оставляем переменную пустой fi if [ $GWС -eq 0 ]; then //если число ответов шлюза на площадке С на пинг равно 0, то запускаем процесс формирования письма ResultС="на площадке С НЕ ДОСТУПЕН!" //по аналогии. Указываем в заголовок, что роутер C недоступен else ResultС ="" //если все ОК, то оставляем переменную пустой fi if [ $FILESIZE -ne 1 ]; then //если наш служебный файл message.txt не пустой, то проверяем следующее условие if [ $GWB -eq 0 ] || [ $GWC -eq 0 ]; then //если хотябы один из роутеров недоступен по пинг, то переходим к следующему пункту скрипта echo "$problempeers"| mailx -s "Проблемы с SIP пирами | Роутер $ResultB $ResultC!" -r "info@merionet.ru" youremail@some.ru </home/admin/message.txt && //отправляем на почту письмо, где указываем, что у нас есть проблемы с пирами, и, если какой-то из роутеров не доступен, указываем это. В теле письма мы отправляем вывод недоступных пиров. echo "FAIL :: $DATE :: Some problems with phones" >> "$LOGFILE" //параллельно с отправкой письма, записываем в лог файл запись, что у нас есть проблемы с пирами (в вывод так же можно добавить с какими именно) else echo "$problempeers"| mailx -s "Проблемы с SIP пирами | Роутеры ДОСТУПНЫ!" -r "info@merionet.ru" youremail@some.ru < /home/admin/message.txt && //если оба наших роутера доступны, то мы просто формируем письмо, в котором указываем перечень недоступных пиров. echo "FAIL :: $DATE :: Some problems with phones" >> "$LOGFILE" //аналогично вносим запись в лог – файл. fi else echo "OK :: $DATE :: all phones are OK" >> "$LOGFILE" //если служебный файл пустой, то мы вносим запись в лог – файл что все хорошо и проверка успешно прошла. fi if [ $LOGSIZE -ge 150000 ]; then //елси размер нашего лог – файла больше или равен 150 КБ, то мы очищаем этого (можете подкрутить эту величину, как вам угодно.) cat /dev/null > /home/admin/log_mail.txt fi cat /dev/null > /home/admin/message.txt //на выходе чисти служебный файл message.txt, для последующего использования Теперь давайте проверим, что приходит нам на почту в случае, если несколько пиров стали недоступны, но все роутеры доступны: Мониторинг транков Отлично, перейдем к формированию скрипта по мониторингу транков. Здесь все несколько проще, и мы просто будем сравнивать общее количество транков, и количество зарегистрированных транков: Скачать сам скрипт можете ниже: Скачать скрипт мониторинга транков #!/bin/bash ALLTRUNKSMINIMUM="`/usr/sbin/asterisk -rx "sip show registry"`" //выводим регистрации по протоколу SIP ALLTRUNKS=`echo "$ALLTRUNKSMINIMUM" |grep "SIP registrations" |awk '{print $1}'` //численное обозначение всех имеющихся транков REGTRUNKS=`/usr/sbin/asterisk -rx "sip show registry" |grep Registered |wc -l` //численное обозначение всех зарегистрированных транков DATE="`date +%d.%m.%Y" "%H:%M:%S`" //формируем текущую дату, для логов LOGFILE=/home/admin/log_mail.txt //для лог – файла, указываем тот же файл, что и для скрипта по мониторингу пиров if [ "$REGTRUNKS" -lt "$ALLTRUNKS" ]; then //если число зарегистрированных транков меньше чем число всех транков sleep 5 //ждем 5 секунд echo `/usr/sbin/asterisk -rx "sip reload"` \ перезагружаем модуль SIP, в целях перерегистрации. Эта команда автоматически перерегистрирует транк на оборудовании провайдера, после чего, он, зачастую, начинает работать. sleep 5 //ждем еще 5 секунд VAR=`/usr/sbin/asterisk -rx "sip show registry"` //после перезагрузки SIP модуля, снова смотрим SIP –регистрации. Если данная команда не дала своих результатов, то в переменной VAR будет записаны не работающие транки. Если она помогла, то на email админу придет рабочий вывод всех зарегистрированных транков. Это весьма удобно. echo "$VAR"| mailx -s "Мониторинг транков" -r "info@merionet.ru" youremail@some.ru // отправляем письмо на почту системного администратора, с выводом SIP регистраций после перезагрузки модуля else echo "OK :: $DATE :: all trunks are OK" >> "$LOGFILE" //если число зарегистрированных транков, равно общему числу, то записываем в лога файл соответствующую запись. fi Теперь, когда мы автоматизировали процессы мониторинга состояния на Asterisk, сделаем выполнение этих скриптов регулярным. Сохраним наши скрипты в формате .sh, можно сделать это, например, в Notepad ++. Сделаем выполнение мониторинг транков раз в 2 минуты, а выполнение мониторинга пиров раз в 10 минут. Перед загрузкой скриптов на сервер, дадим им необходимые права и, что очень важно, преобразуем скрипт в Linux формат: [root@asteriskpbx]# dos2unix peer.sh //преобразуем скрипт для мониторинга пиров [root@asteriskpbx]# dos2unix trunk.sh //преобразуем скрипт для мониторинга транков [root@asteriskpbx]# chmod 777 peer.sh //дадим необходимые права обоим скриптам [root@asteriskpbx]# chmod 777 trunk.sh [root@asteriskpbx]# crontab -e В открывшемся cron, задаем задачи для выполнения наших скриптов: */10 * * * * /bin/bash /home/peer.sh >/dev/null //исполнять файл раз в 10 минут */2 * * * * /bin/bash /home/trunk.sh >/dev/null //исполнять файл раз в 2 минуты Вот и все. Теперь мы имеет достаточно простой, но порой очень нужный и эффективный мониторинг состояния транков и пиров на нашем Asterisk
img
В сегодняшней статье поговорим о модуле звуковых записей System Recordings, который позволяет управлять встроенными, стандартными звуковыми файлами Asterisk, а также дает возможность создавать собственные, которые потом можно использовать для Голосового приветствия, IVR, Очередей и так далее. Добавить запись можно тремя способами: загрузить звуковой файл, записать с помощью браузера и записать через модуль Extensions. Перейдем к настройке и рассмотрим каждый из возможных способов создания новой записи. Традиционно, рассматривать будем на примере FreePBX 13. Способ 1: Загружаем звуковой файл Чтобы попасть в модуль System Recordings необходимо перейти по следующему пути Admin -> System Recordings. Откроется страница добавления новой записи Нажимаем Add Recording Задаем новой записи имя, можно добавить описание. Далее необходимо нажать Browse. Система предложит выбрать какой-нибудь звуковой файл, который находится у вас на компьютере. Также, во FreePBX 13, появилась возможность быстро загружать много файлов по средствам способа Drag and Drop. Важно также отметить, что во FreePBX 13 появилась возможность автоматической конвертации файлов в нужный формат. Для этого предусмотрена опция Convert To, остается только загрузить файл, выбрать нужный формат и нажать Submit, после чего будет создана новая запись с выбранным форматом. Способ 2: Создаем запись с помощью браузера Для этого, в разделе Record Over Browser, нажимаем на красную кнопку. Сразу же начнется запись, произнесите в микрофон заранее заготовленный текст. Нажмите Save Recording. Задайте новой записи имя и нажмите Save Готово, новая запись сразу же загрузится на сервер. Способ 3: Создаем запись через Extension Данная опция будет удобна, если вы планируете часто менять аудио - файлы при создании голосового приветствия, например, в рамках рекламной кампании. В разделе Record Over Extension, вписываем внутренний номер телефонного аппарата, с которого мы хотим производить запись, например 1011, и жмем Call! Система начинает набор данного номера Как только, кто-либо примет звонок, сразу же начнется запись голоса, которая закончится, когда принявший повесит трубку. После чего, система предложит дать записанному фалу имя Остается нажать Save и система сама загрузит запись на сервер.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59