SMS известия от nagios с помощта на bash монитор на сайта
Добър ден, другари
Като всеки, който се занимава с отдалечени системи, трябваше да наблюдавам много машини и услуги на тях. Преглеждайки описанията и ръководствата на няколко програми, се спрях на Nagios. Много статии и примери за него и много богата настройка се оказаха това, от което се нуждаете. И така реших да споделя няколко момента от внедряването и конфигурацията на самостоятелно написан плъгин, написан на Bash, и система за SMS известия, използваща clickatell.com. Защо clickatell.com? Да, просто вече се използва в организацията и реших да го използвам и за това действие. Има много статии за това как да конфигурирате nagios и няма да се съсредоточа върху това, ще отида направо към описанието на това, което създадох и как работи.
Услуга за изпращане на съобщения
Като разгледах самото API на clickatell.com ми стана много по-ясно и разбрах как всичко е имплементирано там и тъй като познавам само bash, реших да пиша върху него.
Първият wget --post-data изпращаме данни за генериране на идентификатора на сесията, той се състои от api_id е идентификаторът на услугата, използвана при изпращане на SMS, потребителят е потребителското име и паролата за влизане в clickatell.com, съответно паролата. Приложният програмен интерфейс (API) на clickatell.com има проверка за session_id, но аз избрах лесния начин, като просто генерирах нов. Уви, API на clickatell.com може да се види само след регистрация на техния уебсайт.
Ето самата услуга, която отговаря за изпращането на съобщение от nagios (едната отговаря за хостовете, а другата за услугите)
И това е потребителската конфигурация до кого да получавате известия
С тази настройка ще получаваме известия за падане на услуги и хостове през периода от време, описан като noworktime.
И да, почти забравих. Исках да изхвърля сценариякъм обществеността, която изпраща грешка от определен ресурс.
Услуга за наблюдение на грешки в уебсайта
Подобна услуга беше необходима, за да се реагира бързо на ситуацията с падането на обекта. nagios има услуга за диагностика на уеб сървър, но не ми работи, защото диагностицира целия сървър и не връща кодове за грешки. И на един сървър може да има много ресурси, така че ние пишем наши собствени.
#!/bin/bash site1=$1 exitservice=3 WGET=`wget $site1 -O /tmp/check_site_error 2> /tmp/error_service.tmp` ако [ $? -ne 0 ] след това outmes=`grep -o "ГРЕШКА.*" /tmp/error_service.tmp` echo "$outmes $site1" exitservice=2 else outmes="OK $site1" echo $outmes exitservice=0 fi rm /tmp/error_service.tmp rm /tmp/check_ site_error изход $exitservice
И това е конфигурацията на nagios с помощта на скрипта /usr/bin/check_http_error.sh
Да, ето описанието на самата услуга. Уви, всяка услуга трябва да бъде описана отделно поради спецификата си и аз я въвеждам в localhost.
Е, като цяло, това е всичко, ако има някакъв проблем със сайта, ще получите код за грешка и на кой ресурс. Помага ми да откривам своевременно DDoS атаки и прониквания.
Имам всичко, благодаря за вниманието.
И тук можете да получите грант за тестов период на Yandex.Cloud. Необходимо е само да въведете "Habr" в полето "секретна парола".