Эта статья устарела. Услуга Мониторинг более недоступна для подключения.
Важность наличия мониторинга за работой серверов сложно переоценить, поэтому для наших клиентов мы предлагаем услугу мониторинга облачных VDS. В этой статье рассматривается процесс подключения и настройки мониторинга облачного VDS на базе ОС Debian или Ubuntu, но аналогичный сервис может быть настроен на базе любой ОС, для которой есть nagios NRPE сервер.
В качестве объектов для мониторинга в этой услуге рассматриваются: наличие ответа от сервера по портам 80 (http) и 22 (ssh), а так же дополнительно 5 любых других метрик, задаваемых клиентом индивидуально. Поскольку конфигурация тестов для этих пяти метрик задается непосредственно на ваших VDS, вы можете полностью самостоятельно определять какие параметры сервера необходимо мониторить и какое состояние этих параметров считать нормальным, а какое - критическим.
Например, системные администраторы очень часто любят мониторить общую нагрузку на сервере (load average). Но большинству программистов-не-сисадминов не понятно что за цифры стоят за тем или иным значением load average и они предпочитают иные метрики, например скорость отдачи главной станицы сайта в секундах (скорее в долях секунд, конечно). Поэтому мы предлагаем вам самостоятельно решить какие пять сервисов на вашем сервере вы хотите мониторить, а в этой статье мы рассмотрим несколько примеров настройки тестов для разных метрик, которые помогут вам настроить мониторинг для собственных нужд.
Уведомления об изменении состояния метрик мониторинг отправляет на все адреса, указанные в панели управления как “технические e-mail”.
Подключение услуги крайне просто: в личном кабинете у любого облачного VDS в выпадающем меню выберите пункт “Включить мониторинг”. В течение 5-10 минут мониторинг включится и вы получите первые уведомления о состоянии ваших сервисов на этом сервере.
Для запуска тестов мониторинга на вашем сервере, вам потребуется установить пакет nagios-nrpe-server
и прописать в
конфигурационном файле адрес нашего сервера мониторинга, откуда будут приходить запросы на получение состояний метрик.
Для этого от имени пользователя root необходимо выполнить:
apt-get update
apt-get install nagios-nrpe-server
nano /etc/nagios/nrpe_local.cfg
И в открывшемся окне текстового редактора после комментария, находящегося в шапке файла /etc/nagios/nrpe_local.cfg
,
вписать строки:
allowed_hosts=91.201.52.92
command[check_1]=/bin/echo OK
command[check_2]=/bin/echo OK
command[check_3]=/bin/echo OK
command[check_4]=/bin/echo OK
command[check_5]=/bin/echo OK
После этого потребуется сохранить изменения и выйти из текстового редактора. В случае с редактором nano для этого используются сочетания клавиш Ctrl + o и Ctrl + x соответственно. Чтобы применить изменения достаточно выполнить команду:
service nagios-nrpe-server restart
Теперь в минимальном варианте мониторинг установлен и настроен, но ничего полезного не делает, ведь на все 5 тестов он всегда отвечает сообщением “OK”. Если вы уже проделали все описанные действия, примерно к этому моменту к вам на почту уже должно придти уведомление о том, что все 5 метрик имеют статус OK.
Как вы наверняка уже догадались, метрики описываются в конфигурационном файле /etc/nagios/nrpe_local.cfg
и
представляют собой строки вида:
command[check_N]=/path/to/command -arg1 -arg2 ...
Команда, вызываемая мониторингом, может быть любой программой или скриптом, размещенном на вашем сервере. В случае успешного прохождения теста, соответствующий скрипт должен завершаться с кодом 0 и выдавать в stdout строку, начинающуюся с “OK”. Если скрипт хочет сообщить о проблеме со статусом WARNING, он должен завершиться кодом 1 и выдать строку, начинающуюся с “WARNING”. Для статуса CRITICAL код завершения должен быть 2, а строка начинаться с “CRITICAL”.
В Debian/Ubuntu nagios NRPE сервер поставляется с большим набором уже готовых тестов на многие случаи. Найти их вы
можете в каталоге /usr/lib/nagios/plugins/
.
LA (load average) - это условные единицы, которые отображают нагрузку на сервер в определенный момент времени.
Мониторинг нагрузки на сервере (load average) проще всего осуществлять с помощью скрипта
/usr/lib/nagios/plugins/check_load
, входящего в набор стандартных плагинов nagios NRPE. Вызов этого скрипта выглядит
следующим образом:
# /usr/lib/nagios/plugins/check_load -w 3,2,2 -c 4,3,3
OK - load average: 0.00, 0.01, 0.05|load1=0.000;3.000;4.000;0; load5=0.010;2.000;3.000;0; load15=0.050;2.000;3.000;0;
Ключ -w
передает значения мгновенного la, la5 и la15, достижение которых будет считаться событием типа WARNING, а ключ
-c
- CRITICAL. Если вы хотите, чтобы одной из метрик мониторинга была нагрузка на сервере, замените одну из строк
command[check_N]
в файле /etc/nagios/nrpe_local.cfg
на
command[check_N]=/usr/lib/nagios/plugins/check_load -w 3,2,2 -c 4,3,3
Замените в этой строке N на требуемый номер сервиса из диапазона 1..5, а значения ключей -w
и -c
на требуемые вам
пороговые значения load average. После внесения изменений в файл /etc/nagios/nrpe_local.cfg
необходимо выполнить
service nagios-nrpe-server restart
Напоминаем, что все приведенные здесь действия выполняются от имени пользователя root.
Наличие свободного места на диске критично для корректной работы сервера, так как в процессе создаются временные файлы, например MySQL, PHP, системных логов и т.д.
Мониторинг свободного места на диске(ах) поможет осуществить скрипт /usr/lib/nagios/plugins/check_disk
. Пример его
использования:
/usr/lib/nagios/plugins/check_disk -w 12% -c 8% -p /
Здесь подразумевается, что 12% и менее свободного места на любом из разделов, перечисленных в ключах -p
- это WARNING,
а 8% и менее - это CRITICAL. Перечисляемые через -p
разделы должны быть отдельными точками монтирования отдельных
блочных устройств. В простейшем случае, когда у вашего сервера только один диск, нужно указать только корневой раздел
-p /
, как в примере выше. Если у вас несколько дисков и несколько точек монтирования, например основная система
установлена на диск типа SAS, а базы MySQL (/var/lib/mysql
) размещены на диске SSD, вы можете написать в команде: -p
/ -p /var/lib/mysql
.
Всегда неприятно узнавать, что ваш сайт или сервер взломаны и через взлом злоумышленники распространяют спам. Но гораздо хуже узнать об этой проблеме тогда, когда ваш сервер уже попадет в черные списки (black list) и вашу почту перестанут принимать ваши респонденты.
Чтобы быть на чеку, рекомендуется мониторить состояние почтовой очереди сервера. В обычной
ситуации в почтовой очереди может находиться максимум несколько писем. В случае взломов, когда отправка спама идет на
тысячи адресов, почтовая очередь разрастается довольно быстро. Контролировать ее можно с помощью еще одного готового
скрипта из набора nagios NRPE: /usr/lib/nagios/plugins/check_mailq
. Пример ее использования:
/usr/lib/nagios/plugins/check_mailq -M postfix -w 20 -c 50
здесь -M postfix
означает, что нужно проверять почтовую очередь MTA postfix (именно postfix идет в составе большинства
образов наших облачных VDS). Для exim этот параметр будет выглядеть как -M exim
и так далее. Параметры -w
и -c
указывают скрипту какое количество писем в очереди является WARNING и CRITICAL соответственно.
Веб-сервер apache отвечает за отображение сайта в сети Интернет, поэтому его доступность очень важный параметр.
В случае большинства готовых LAMP образов, предоставляемых нами для облачных VDS, на сервер
устанавливается nginx, работающий в режиме http proxy, а за ним устанавливается веб-сервер apache. Внешний мониторинг наличия
ответа на порту tcp/80 (http) следит только за работой nginx и в случае, если по какой-то причине apache упадет
(например из-за ошибки в конфигурационном файле), nginx все равно будет работать и мониторинг будет считать, что все в
порядке. Разумеется, это не всегда приемлемо. Для таких конфигураций apache запускается на локальном ip-адресе
127.0.0.1, порт 80. Необходимо проверять наличие ответа от apache по этому адресу. Для этого воспользуемся еще одним
готовым скриптом /usr/lib/nagios/plugins/check_http
следующим образом:
# /usr/lib/nagios/plugins/check_http -H 127.0.0.1 -e 'HTTP/1.1 404'
HTTP OK: Status line output matched "HTTP/1.1 404" - 453 bytes in 0,001 second response time |time=0,000513s;;;0,000000 size=453B;;;0
а в случае падения apache все будет выглядеть так:
# /usr/lib/nagios/plugins/check_http -H 127.0.0.1 -e 'HTTP/1.1 404'
HTTP CRITICAL - Unable to open TCP socket
Рассмотренный в предыдущем варианте скрипт /usr/lib/nagios/plugins/check_http
умеет гораздо больше, чем просто
проверять наличие ответа от веб-сервера. Его можно настроить на проверку наличия в ответе определенной подстроки,
скорости отдачи ответа на запрос и еще ряда интересных вещей. Подробную справку о всех возможностях check_http
можно
получить так:
/usr/lib/nagios/plugins/check_http --help
Мы же в данном примере рассмотрим вариант как проверять скорость отдачи страницы с url
http://www.yoursite.ru/page.html
и сообщать статусом WARNING, если время ответа равно или превышает 0.5 секунды и
CRITICAL при 1 секунде и более. Команда выглядит следующим образом:
/usr/lib/nagios/plugins/check_http -H 127.0.0.1 -u http://www.yoursite.ru/page.html -w 0.5 -c 1
Обратите внимание, что обязательно нужно указать адрес сервера, у которого нужно запрашивать соответствующий url (ключ
-H
).
Тарифы на облачные VDS и VPS