Мониторинг SAAS-сервиса интернет-магазинов с помощью Zabbix
Все доменные имена, названия серверов и адреса IP вымышленные.
Любые совпадения случайны.
Если вы отвечаете за работоспособность сайтов, серверов, а также различного рода сервисов, обратите внимание на бесплатную систему мониторинга Zabbix. В этой и следующих статьях мы расскажем о реальном опыте использования Zabbix в SAAS-сервисе интернет-магазинов, где используются десятки физических и виртуальных серверов.
Но даже если у вас всего только один или два сервера, и ваша система не имеет никакого отношения к интернет-магазинам, то все равно Zabbix сможет оказать системному администратору существенную помощь.
При правильной настройке мониторинга вы узнаете о многих проблемах заранее, до того, как они скажутся на работоспособности сайтов и прибыли клиентов. И сможете вовремя исправить ситуацию.
Любой сервис обладает своими особенностями, которые влияют на организацию мониторинга. В первой статье мы рассмотрим особенности, важные для мониторинга любого SAAS-сервиса интернет-магазинов.
Следующие статьи будут содержать конкретные рекомендации по установке и настройке Zabbix, по настройке мониторинга и способов оповещения для тех или иных объектов.
Особенности SAAS-сервиса интернет-магазинов
Обычно SAAS-сервисы интернет-магазинов позволяют своим потенциальным клиентам открыть демоверсию магазина бесплатно и в автоматическом режиме. Далее клиент настраивает дизайн сайта магазина (сам или с помощью службы поддержки), заполняет каталог товаров, пишет тексты для информационных разделов, таких как Способы оплаты или Доставка.
После выполнения всех этих действий сайт интернет-магазина привязывается к домену клиента. При необходимости сайт может быть перенесен на выделенный виртуальный или физический сервер (или серверы, если есть требования по устойчивости к высоким нагрузкам или отказоустойчивости).
Что происходит дальше?
Клиент занимается продвижением своего сайта, редактированием контента, обработкой заказов, отслеживанием доставки и решает другие специфические для электронной коммерции задачи. При этом он ожидает, что сайт магазина будет работать надежно, без перерывов и приносить прибыль.
Требуется высокая надежность работы сайта
С продажами и прибылью системный администратор SAAS-сервиса (и его системный архитектор) мало чем может помочь клиенту, а вот обеспечить надежность работы сайта — его прямая обязанность.
К сожалению, любое «железо» рано или поздно выходит из строя. И это может произойти в самый неподходящий момент, в пике продаж, например.
Существуют различные отказоустойчивые решения, например, отказоустойчивые облака, системы с контейнерами, горячее резервирование серверов, балансировщики нагрузки. Однако даже при грубой оценке ежемесячные затраты при подключении таких решений увеличиваются в 2–3 раза по сравнению с размещением магазина на обычном физическом сервере. А это подходит далеко не всем клиентам.
В любом случае работоспособность отказоустойчивых, а также «обычных» решений необходимо контролировать. Следует сделать так, чтобы при отказах, а лучше заранее, системный администратор получал сообщение о проблеме, чтобы избавиться от нее как можно скорее. Это сократит время недоступности сайтов.
Постоянная работа над функциональностью сайта вызывает появление ошибок
В процессе работы владельцы сайтов интернет-магазинов постоянно оставляют заявки на изменение дизайна и функциональности. Это могут быть или очень простые изменения, или сложные, требующие десятков или даже сотен нормо-часов работы программистов, дизайнеров и верстальщиков.
Так как программное обеспечение (ПО) интернет-магазинов довольно сложное, в процессе выполнения заявок неизбежно возникают ошибки. К сожалению, не все ошибки устраняются на стадии тестирования. В некоторых случаях ошибки программистов вызывают перегрузку серверов и проблемы с работоспособностью сервисов, что можно обнаружить с помощью мониторинга.
Возникает переполнение дисков сервера и квот
На SAAS-сервисе постоянно происходит движение — открываются новые сайты и закрываются старые, клиенты загружают в свои магазины товары, создают новые рубрики, настраивают интеграции с внешними сервисами.
Небольшие магазины могут предлагать к продаже всего несколько десятков товаров. В крупных магазинах количество товаров может исчисляться сотнями тысяч, а количество рубрик каталога — тысячами и десятками тысяч. Специалисты SEO магазинов тоже могут попросить добавить сотни тысяч страниц для товаров и каталогов.
Добавление большого количества товаров или страниц приводит к увеличению дискового пространства, занимаемого сайтом. И если не следить за свободным местом на дисках сервера, то рано или поздно диски переполнятся, что приведет к отказам.
На серверах общего пользования дисковые квоты позволяют защитить сервер от переполнения дисков со стороны одного магазина. Однако использование квот тоже нужно постоянно контролировать, не допуская их исчерпания.
Возможны очень высокие нагрузки на серверы хостинга
На сайтах новых магазинов обычно мало посетителей. Такие сайты не создают сколь-нибудь заметной нагрузки и размещаются на серверах общего хостинга.
Однако по мере того, как сайт становится известным в результате, например, удачной рекламной кампании, трафик, количество посетителей и заказов может резко возрасти.
Если ПО сервера настроено не оптимально или конфигурация сервера недостаточно мощная, значительное увеличение посещаемости может привести к перегрузке процессоров сервера, исчерпанию оперативной памяти или к перегрузке канала передачи данных.
Аналогичный эффект может вызвать флуд или атака DDOS. Как правило, небольшой флуд или слабый DDOS может быть отражен непосредственно на сервере. При мощном DDOS уже придется обращаться к специализированным компаниям.
Мониторинг загрузки сервера позволит заранее подготовиться к проблеме или обнаружить ее в кратчайшее время. Если Zabbix показывает, что запас ресурсов становится недостаточным, можно, например, перенести сайт магазина на другой сервер, заняться оптимизацией ПО или отражением атак.
Когда возникает необходимость, сервис SAAS интернет-магазинов может арендовать или устанавливать собственные дополнительные серверы в различных дата-центрах, настраивая для них мониторинг.
Наличие служебных сервисов
SAAS-сервис интернет-магазинов представляет собой довольно сложную систему, в которой есть не только обычные серверы хостинга с базами данных, Apache и Nginx, но и ряд служебных сервисов.
Можно выделить сервисы автоматического открытия интернет-магазинов, личный кабинет пользователя, сервис интеграции с CRM, учитывающей оплаты и обеспечивающий взаимодействие с клиентами (система тикетов, отчетов, автоматизированное зачисление платежей клиентов и прочее), сервис почтовых рассылок, сервисы интеграции с телефонией, сервисы, обеспечивающие отказоустойчивость для отдельных клиентов и другие.
И, конечно, очень важен сервис резервного копирования данных.
От работоспособности этих сервисов зависит многое, поэтому их необходимо контролировать. И в этом нам помогает Zabbix.
Клиенты забывают продлевать домены и сертификаты SSL
Сервисы, предлагающие услуги регистрации доменов и приобретение сертификатов SSL, заранее отправляют клиентам напоминание о необходимости продления услуг. Однако практика показывает, что клиенты часто игнорируют такие напоминания.
Вместо более недействительного сертификата SSL, приобретенного на год, служба поддержки сервиса SAAS очень быстро установит бесплатный сертификат Let«s Encrypt. Но на восстановление работоспособности «забытого» домена может уйти не один день. И все это время сайт интернет-магазина будет недоступен.
Для помощи клиентам в SAAS-сервисе настроен мониторинг срока регистрации доменов и срока действия сертификата SSL. При этом Zabbix заранее посылает сообщения в службу поддержки SAAS-сервиса о проблемах с доменом или сертификатом. Сотрудник службы поддержки может позвонить клиенту по телефону или предупредить его по другому доступному каналу о необходимости продления услуги.
Возникают неисправности серверов
Надежный сервер без проблем работает годами, однако в любой момент на нем может произойти авария. Дата-центры занимаются мониторингом оборудования, которое размещается или сдается в аренду. Если будут обнаружены какие-то проблемы с оборудованием, вы получите сообщение.
Тем не менее, свои серверы Zabbix позволяют узнавать о проблемах очень быстро и именно так, как это вам нужно.
Что же чаще всего выходит из строя?
Диски
По нашему опыту, чаще всего выходят из строя диски SAS и SATA. Конечно, они объединены в RAID и их можно заменять без остановки сервера, однако состояние массивов и дисков необходимо контролировать. Если диск вышел из строя, его нужно как можно раньше заменить.
Кроме всего прочего, требуется контроль целостности аппаратных и программных дисковых массивов RAID, степени износа дисков SSD, а также состояние батарейки в дисковых контроллерах, отвечающей за питание кэш-памяти. Эти батарейки имеют ограниченный срок службы.
Оперативная память
Также случается, что выходит из строя оперативная память сервера. Если это произошло, сервер может стать недоступным, что сразу обнаружит мониторинг.
Попробуйте перезагрузить сервер по питанию и проверить, сколько памяти «видит» ОС. Бывает, что сервер продолжает работать, но объем памяти уменьшается, так как неисправные модули исключаются из общего пула памяти.
Конечно, неисправную память следует заменить как можно быстрее. Однако есть и другой вариант — чтобы предотвратить недоступность сайтов во время замены памяти и последующей диагностики, перед ремонтом их можно перенести на другой сервер. Разумеется, если перезагрузка ОС на сервере позволит продолжить работу с уменьшенным объемом памяти.
Блок питания сервера
Весьма неприятен выход из строя блока питания сервера, и хорошо, когда в сервере есть резервный. Однако если вы арендуете сервер, то вам может быть недоступна диагностика IPMI, позволяющая определить такую неисправность. Тут вся надежда на то, что в дата-центре выполняется мониторинг исправности блоков питания и другого оборудования серверов.
Онлайн-кассы тоже требуют контроля
В интернет-магазинах часто используются арендованные или собственные онлайн-кассы. С помощью Zabbix можно контролировать доступность онлайн-касс, срок действия фискального накопителя, наличие бумаги для печати чеков и другие параметры.
Объекты мониторинга в SAAS-сервисе интернет-магазинов
На первом этапе настройки мониторинга нужно составить список контролируемых объектов — серверов, сервисов, дисков, сайтов и так далее. Zabbix позволяет контролировать практически все, однако тут нужен разумный компромисс.
Когда мы более 10 лет назад создавали SAAS-сервис, то контролировали главным образом доступность и загрузку физических серверов, а также целостность RAID-массивов и исправность дисков, установленных на серверах.
По мере развития сервиса к мониторингу добавлялись и другие объекты. Сейчас список основных объектов мониторинга выглядит так:
физические и виртуальные серверы;
срок регистрации доменных имен и срок действия сертификатов SSL;
сайты интернет-магазинов;
сервис резервного копирования данных;
сервис рассылки почты;
сервис интеграции с телефонией Манго Телеком;
онлайн-кассы и серверы управления онлайн-кассами;
сервисы для обеспечения отказоустойчивости интернет-магазинов
Физические и виртуальные серверы
Для мониторинга физических и виртуальных серверов используются стандартные шаблоны Zabbix. Дополнительно реализован мониторинг:
целостности аппаратных и программных RAID-массивов;
исправность батарейки питания кэш-памяти в контроллерах дисков;
исправности дисков SAS и SATA;
износа дисков SSD;
использования дисковых квот;
сервиса Memcached
Сервис Memcached нужен для кеширования запросов к базе данных, что существенно снижает нагрузку на серверы.
Доменные имена и сертификаты
Доменные имена и сертификаты проверяются только для открытых сайтов. Так как на SAAS-сервисе сайтов довольно много, они постоянно открываются и закрываются, то список сайтов для проверки формируется раз в день путем обращения к внутренней CRM SAAS-сервиса.
Работоспособность сайтов интернет-магазинов
Чтобы контролировать работоспособность сайтов интернет-магазинов и скорость загрузки страниц используются встроенные средства Zabbix.
Сервис резервного копирования данных
Очень большое внимание уделяется мониторингу сервиса резервного копирования данных. Здесь проверяется не только факт записи резервных копий на серверы бэкапов, но и размеры созданных файлов бэкапа.
Контролируется свободное место на RAID-массивах и системных дисках серверов резервного копирования данных (как и на всех остальных физических и виртуальных серверах).
Сервис рассылки электронной почты
Предназначен для отправки сообщений о заказах покупателям и менеджерам интернет-магазинов. В рамках мониторинга контролируется состояние MongoDB, очереди рассылок и другие параметры.
Сервис интеграции с телефонией Манго Телеком
Предназначен для автоматической обработки входящих звонков и совершения исходящих звонков из управляющего сайта с целью упрощения работы менеджеров интернет-магазинов. Контролируется доступность сервиса, а также состояние очереди и базы данных Redis.
Сервис онлайн-касс
Используется в случае, когда помимо интернет-магазина у предпринимателя есть точки продаж, где нужно принимать от покупателей деньги и пластиковые карты.
В рамках мониторинга проверяется доступность касс, срок действия фискального накопителя, наличие чековой ленты и других ошибок. Также контролируется температура процессора на серверах касс, созданных на базе Raspberry Pi и установленных в точках продаж.
Сервисы для обеспечения отказоустойчивости интернет-магазинов
На сервисе SAAS есть отказоустойчивые интернет-магазины, созданные с использованием VRRP, репликации базы данных и файлов. В рамках мониторинга для таких магазинов проверяется успешность репликации, обнаруживается факт переключения с основного сервера на резервный, проверяется доступность сайта интернет-магазина.
Настройка триггеров и извещений о событиях
Очень важно правильно определиться с составом триггеров и важностью соответствующих событий.
Есть события, реакцию на которые можно отложить на какое-то время. Например, обнаружилось, что загрузка процессора некоторых серверов слишком высока, но не настолько, чтобы сайты, размещенные на сервере, перестали работать. Или оказалось, что диски сервера резервного копирования почти заполнены, и нужно их почистить, либо добавить дисковую память.
С другой стороны, есть события, требующие немедленной реакции, например недоступность серверов или критичных сервисов. Если в результате выхода «железа» сервера из строя или аварии на каналах передачи данных в дата-центре сервер стал недоступен, у клиентов могут возникнуть убытки. Поэтому на срабатывание соответствующих триггеров нужно отреагировать как можно быстрее.
В Zabbix можно назначить серьезность для событий, связанных со срабатыванием триггеров. Кроме того, для оповещения о событиях различной серьезности можно задать разные каналы передачи данных.
Например, если событие не требует немедленной реакции, можно ограничиться отправкой сообщения по электронной почте, например, системному администратору. Для более критичных событий можно дополнительно отправить сообщение SMS. И, наконец, о самых критичных событиях Zabbix может сообщить по телефону голосом, предпринимая несколько попыток дозвониться.
Канал SMS и телефонный канал хорош тем, что сообщение будет доставлено даже если интернет не доступен. И если звуковой сигнал о поступлении SMS можно легко пропустить, то многократный дозвон со стороны Zabbix достигнет успеха с большой вероятностью.
В следующей статье мы расскажем об особенностях установки Zabbix и мониторинге дисковых устройств.
Автор: Александр Фролов.
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.