По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
С каждым днем современные сети и системы становятся только сложнее. Даже сеть небольшого и среднего масштаба SME (Small/Medium Enterprises) могут быть использовать сложнейшие системы как с точки зрения архитектуры, так и сложности администрирования. Nagios создан как мощный инструмент для мониторинга, администрирования и уведомления об отказах систем. Во фреймворк Nagios заложен мощный инструментарий с большим количеством опций, использование которых требует помимо понимания принципов работы Nagios, а так же и глубокого понимания используемых в корпоративном контуре систем. Это очень важный момент, так как Nagios не может научить системного администратора работе с его собственными системами, но он может послужить очень мощным инструментом в работе с ними. Итак, что же может Nagios? Ниже, мы приводим лишь небольшой обобщенный список функционала: Проверка работоспособности сервера Уведомление в случаях отказа сервера (email/SMS) Проверка запуска сервиса (например почта, веб-сервер (http), pop, ssh) Проверка процессов (или Windows сервиса) Обработка статистики с сервера (ключевые перфомансы сервера) Возможность настройки уведомлений определенных событий только для назначенной группы или конкретного пользователя Формирование отчетов по downtime (времени сервера в нерабочем состоянии) Nagios не содержит никаких встроенных инструментов проверки (плагинов). Важно понять, что Nagios обеспечивает надежный и расширяемый фреймворк для любого вида мониторинга, который только может придумать пользователь. Но как Nagios выполняет мониторинг сети? Существует огромное количество уже готовых плагинов, которые позволяет выполнять различные виды мониторинга. И если для вашей сети необходимо создать специфический алгоритм мониторинга, вы можете написать данный плагин самостоятельно. Почему Nagios? Nagios - отличный выбор для тех, кто хочет иметь широкий диапазон инструментов мониторинга. Основными конкурентными преимуществами Nagios являются: Nagios это Open Source решение Надежное решение Высочайший набор возможностей для конфигурации Легко масштабируется Активное сообщество разработчиков, где постоянно совершенствуется данная система мониторинга Nagios работает на множестве операционных систем Nagios можно адаптировать под огромное количество задач. Выделим наиболее популярные адаптации этой системы мониторинга: Ping для отслеживания доступности хоста Мониторинг сервисов, таких как SMTP, DHCP, FTP, SSH, Telnet, HTTP, NTP, DNS, POP3, IMAP и так далее Сервера баз данных, такие как SQL Server, Oracle, MySQL и Postgres Мониторинг на уровне приложений, например, web – сервер Apache, Postfix, LDAP, Citrix b так далее. Как Nagios работает? Nagios работает в качестве демона (фонового процесса) на выделенном сервере, периодически отправляя ICMP запросы на хост мониторинга. Полученная информация обрабатывается на сервере и отображается администратору в рамках WEB – интерфейса. Опционально, администратор может настроить уведомления на почту, интегрируя сервер мониторинга с почтовым сервером, либо настроить СМС уведомления.
img
Если вы только начинаете своё знакомство с IP-АТС Asterisk и графическим интерфейсом FreePBX, может случиться так, что ваша АТС забанит вас по IP и восстановить доступ вы сможете только через консоль самого сервера или виртуальной машины. Знакомо? Тогда читай что делать в таком случае! По умолчанию во FreePBX работает встроенная защита сервера от взлома пароля методом “грубого перебора”, известного в простонародье как брутфорс (bruteforce). Этот механизм называется fail2ban и предназначен он для того, чтобы ограничивать возможным злоумышленникам доступ к компонентам сервера. В случае с FreePBX может случиться ситуация, когда сервер примет вас за возможного злоумышленника и ограничит вам доступ по SSH (порт по умолчанию 22). Представьте - вы только установили FreePBX, зашли в web-интерфейс начали проводить настройки, но тут вам понадобилась консоль сервера. Вы открываете putty, вводите адрес и порт сервера, затем логин, а потом пароль. Сервер отвечает, что пароль не правильный Access denied. “Неправильно ввёл, с кем не бывает” – подумаете вы и повторите попытку. Так вот если вы 5 раз неправильно введёте пароль, то на шестой увидите следующую картину при попытке подключиться к серверу: Данная статья описывает ситуацию, которая может случиться на тестовых системах или же - на свежих системах, которые установлены недавно. Команда Мерион Нетворкс ни при каких условиях не рекомендует использовать советы из данной статьи на системах, работающих в Production режиме... Никогда. Однако! Если у вас остался доступ к вэб интерфейсу FreePBX, то ещё не всё потеряно. Начиная с версии 13, во FreePBX появился модуль Firewall, который как раз и отвечает за работу fail2ban. Поэтому, чтобы заново открыть себе доступ к серверу, мы этот модуль не на долго отключим. Для этого прыгаем в Connectivity → Firewall и жмём Disable Firewall: Отлично, теперь, чтобы сервер нас больше не банил мы немного подредактируем настройки fail2ban. Для этого, опять подключаемся к серверу по SSH и редактируем файл /etc/fail2ban/jail.local любым текстовым редактором, например vim: vim /etc/fail2ban/jail.local Найдите секцию [DEFAULT] и добавьте в опцию ignoreip адрес, с которого вы подключаетесь к серверу. Адреса можно добавлять через пробел в одну строку, можно также добавлять целые сети. После этого не забудьте заного включить Firewall. Connectivity → Firewall и жмём Enable Firewall Если WEB - интерфейс доступен Если доступ к WEB - интерфейсу FreePBX доступен, то просто зайдите в него, перейдите на Admin → System Admin → Intrusion Detection. В списке забаненных IP - адресов найдите нужный и удалите его. Можно это сделав, например, указав в разрешенном списке забаненный адрес с /32 маской, или подсеть. После этого нажмите Restart. Готово.
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
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59