Pull to refresh

Как узнать о проблеме сервера первым или как отSMSить PRTG Network Monitor

Reading time2 min
Views14K
Хочу рассказать свою историю, связанную с обслуживанием и настройкой серверов на базе UNIX систем.

Работая у среднего провайдера, встала задача найти подходящее решение для замены устаревшего VPN сервера с поддержкой PPTP и L2TP. После того как было настроено новое ПО на базе VPN accel 1.3, сервер был введен в эксплуатацию под реальную нагрузку под 1000-1500 человек/сервер, после работы в тестовом режиме. Новый сервер оправдал все ожидания. Нагрузка на процессор значительно упала, повысилась общая производительность, если бы не одно НО.

Через некоторое время сервер без видимых причин стал зависать и происходило это в самый неподходящий момент. И узнавал я это, через 10-60 минут после происшествия. Такое положение вещей не устраивало никого. Надо было что-то делать.

Во-первых, нашли причину зависаний. Было перекомпилировано ядро под стабильный релиз 2.6.32, сменили quagga на bird (динамическая маршрутизация).

Во-вторых, подключил смс-оповещение о состоянии сервера.

Последнюю задачу решил с помощью SMSPilot и службы мониторинг PRTG Network Monitor 9.2.

SMSPilot предоставил одну из самых низких цен (не более 29 коп./смс). Осталось только подключить смс-оповещение. Для начала регистрируемся на сайте SMSPilot. В личном кабинете забираем API-ключ, который будет впоследствии идентифицировать нас. Далее скачиваем с сайта SMSPilot под заголовком «МОДУЛЬ СМС УВЕДОМЛЕНИЙ ДЛЯ PRESTASHOP» скрипт, который немного модифицируем. Открываем smspilot.class.php. В самом начале вставляем код до объявления class SMSPilot:

$text = $_GET['text'];
require_once('smspilot.class.php');
$sms = new SMSPilot( 'Сюда вставляем API код из личного кабинета' );
$sms->send( 'телефон оповещения начиная с 7', $text);



Далее в классе

class SMSPilot {
...
public $apikey = 'Сюда вставляем API код из личного кабинета';
...



Сохраняем и кладем файл smspilot.class.php на любой веб-сервер, чтобы он был доступен по адресу: вашдомен/smspilot.class.php.

Осталось только настроить PRTG монитор.

Заходим через web-интерфейс PRTG. В меню Setup/System Administration/Notification Delivery. В разделе "SMS Delivery" выбираем "Enter a custom URL for a provider not listed". Чуть ниже прописываем в строке "Custom URL": вашдомен/smspilot.class.php?text=%SMSTEXT. Для теста вставьте в адресную строку браузера этот URL. На ваш телефон должно прийти сообщение (10 сообщений бесплатно от SMSPilot). Если выпало сообщение об ошибке, значит скрипт недоступен для выполнения.
image

Не забудем определить уведомление. Заходим в Setup/Account Settings/Notification и добавляем новое оповещение через кнопку Add new notification
image

В разделе Send SMS/Pager Message: Указываем свой телефон
image

Далее настраиваем параметр сервера, который хотим мониторить. Думаю самый важный параметр — это доступность сервера через ping.
image

В разделе Object Triggers нажав на кнопку Add State Trigger определим параметры условий оповещения. Например, такой «When sensor is Down for at least 10 seconds perform Notification. Иными словами, если сенсор перешел в состояние „Недоступен“ в течении 10 секунд, то оповестить по ранее настроенному оповещению Notification.
image

Все. Теперь попробуйте симулировать недоступность сервера и проверить работоспособность оповещения.
Tags:
Hubs:
Total votes 5: ↑3 and ↓2+1
Comments23

Articles