e
Представьте, что вы администрируете сервер крупной компании. Однажды утром ваш день начался не с кофе, а с десятка пропущенных звонков и писем от коллег и руководителей — оказалось, ночью сервер упал. Такое неприятное утро может грозить всем, кто не использует систему мониторинга. Рассказываем, почему важно мониторить серверы и каких ошибок стоит при этом избегать.
Сервер — довольно сложное техническое устройство. В отличие от какой-нибудь лампочки накаливания, которая просто работает, пока к ней поступает электричество, с состоянием сервера всё может быть не так просто. Например, он правильно отвечает на все запросы, но делает это крайне медленно из-за проблем с производительностью. И сбои могут возникать на физическом уровне, уровне операционной системы, веб-сервера или программного обеспечения, что приводит к широкому спектру проблемных сценариев.
Для обнаружения и предотвращения сбоев нужно иметь хорошую систему мониторинга, которая будет анализировать аппаратное обеспечение, сети и коммуникации, работу операционной системы и приложений. Это даст вам:
— контроль над аппаратными компонентами сервера;
— предотвращение инцидентов;
— оперативное оповещение о проблемах и, как следствие, их быстрое решение;
— меньше затрат на ручные проверки правильного функционирования систем.
Мы рассмотрим несколько рекомендаций по мониторингу, которые помогут грамотно поддерживать работоспособность сервера.
Есть такое понятие, как «изобретать велосипед» — значит пытаться придумать что-то, что уже давно сделано и работает. И хотя вопрос «разрабатывать или покупать» часто возникает на фоне обоснованных дискуссий, поверьте, мониторинг сервера не входит в их число. Компании ведь обычно не делают свою собственную систему контроля версий, операционную систему или веб-сервер (если это, конечно, не GitHub, Microsoft или Nginx). Для мониторинга стоит выбирать надёжные и проверенные годами решения — например связку из Grafana (интерфейс визуализации) и ELK (агент, который обрабатывает метрики и логи сервера). Из других популярных систем можно рассмотреть Prometheus, Netdata, InfluxData.
Как только вы выбрали готовый инструмент мониторинга, нужно понять, что он вам даст. Вы должны получить чёткое наглядное представление ключевых данных, отражающих состояние сервера.
Система мониторинга немного напоминает приборную панель автомобиля, где есть как важные показатели: скорость, уровень топлива, обороты двигателя и тому подобное; так и ряд индикаторов, которые сообщают о возникающих проблемах. Это позволяет быстрее понять, в чём причина поломки, и принять верное решение. Поэтому убедитесь, что мониторинг вашего сервера включает в себя упорядоченное визуальное представление о состоянии сервера.
Теперь, когда вы нашли свой инструмент мониторинга, настроили и сконфигурировали его так, чтобы получить понятные визуальные показания о состоянии своих серверов, пришло время донести эти данные до ответственных людей — то есть тех, кто будет заниматься устранением сбоев и аварий.
И здесь важно понять один момент: вся информация наглядно представлена на панели мониторинга, но это не означает, что любой может посмотреть на неё и сразу понять причину сбоя. Тратить время на поиск проблемы — куда менее эффективно, чем сразу же узнать, в чём именно она состоит. Поэтому визуальный мониторинг — это полезно, но не в тех ситуациях, когда нужно срочно что-то чинить. И чтобы понять, как быстрее получить нужные данные в случае аварии, мы переходим к следующему совету.
Оповещения — очень эффективный способ контролировать серверы. Но оповещение оповещению рознь.
Хорошее предупреждение должно быть подробным и полезным для человека, который его получает. Поэтому при настройке оповещений продумайте, кто их получит, насколько это важно и что нужно будет делать дальше. Грамотное оповещение помимо самой сути проблемы должно включать следующее:
— серьёзность проблемы;
— последствия (какие сервисы затронуты);
— изменения каких показателей привели к проблеме;
— что должен делать человек, получивший предупреждение (желательно со ссылкой на инструкцию).
Также стоит выбрать правильный канал для оповещений: например e-mail, сообщения в мессенджерах или какие-либо другие виды уведомлений. При этом надо учитывать, как часто ответственные люди проверяют почту/мессенджеры и насколько быстро они среагируют на проблему. Если правильно настроить оповещения, у вас будет гораздо больше шансов быстрее устранять все сбои.
Да, здесь правило «нет новостей — хорошие новости» не работает. Любая система рано или поздно сталкивается с проблемами разной степени тяжести. Поэтому если в течение нескольких недель вам не пришло ни одного оповещения от системы мониторинга, есть повод забеспокоиться. Возможно, вы неправильно настроили метрики или не подключили к системе какие-либо важные параметры.
Возвращаясь к автомобильной аналогии: представьте, что вы ездите на машине уже несколько месяцев или даже лет, и до сих пор она не сигнализировала ни о каких проблемах, — даже о низком уровне бензина или омывателя. Скорее всего, это признак поломки систем оповещения.
Мониторинг сервера решает много проблем, но этого может быть недостаточно. Система присылает вам сообщения об ошибках, но она вряд ли объяснит, почему они возникли и как их исправить. Для этого всё ещё нужно вмешательство специалиста.
Убедитесь, что вы делаете всё возможное, чтобы облегчить устранение неполадок. Используйте структурированные логи, чтобы вы могли легко найти их и понять, что произошло. Всё, что облегчает получение и доступность информации, очень поможет в решении проблем.
Не дайте себя одурачить чрезмерно упрощёнными метриками сервера. Чтобы понять, что это такое, рассмотрим гипотетический пример.
Допустим, у вас есть общедоступный API, который обрабатывает сложные в вычислительном отношении запросы. В идеале вы хотите, чтобы запросы обрабатывались менее чем за секунду. Поэтому в системе мониторинга вы настроили оповещение на случай, если среднее время обработки станет больше трёх секунд.
Оказалось, что на практике 90 из 100 поступающих запросов API обрабатывает за 0,5 секунды, но для остальных 10 требуется по 20 секунд на каждый. Это приводит к тому, что среднее время обработки составляет 2,45 секунды, и вы не получаете никаких оповещений о проблемах. Хотя 10% пользователей совершенно недовольны работой вашего сервиса.
Именно это называется упрощённой метрикой. Всегда стоит убедиться, что вы действительно продумали все возможные условия, которые могут привести к неприемлемой производительности.
Если вы не уверены на 100%, что сможете самостоятельно справиться с настройкой системы мониторинга, доверьте эту задачу специалистам — грамотному системному администратору или вашему хостинг-провайдеру. Например, в REG.RU сейчас доступен бесплатный (на время β-тестирования) онлайн-мониторинг Dedicated-серверов. Система server monitoring отслеживает нагрузку сервера, состояние дисков и сетевую активность, а также присылает оповещения о возникающих проблемах.
⌘⌘⌘
Надеемся, мы убедили вас в важности системы мониторинга и поиске правильных способах работы с ней. Пишите в комментариях, какие ещё советы вы дали бы тем, кто не хочет начинать своё утро с сообщений об упавшем сервере.
По мотивам: "Server monitoring best practices: 9 dos and don'ts"
Один способ позволяет отслеживать каждую деталь изделия, другой – сфокусироваться на брендинге и маркетинге. Разбираемся…
Рассказываем, как помогли российскому разработчику систем аналитики мигрировать в частное облако и сократить затраты на…
Рассказываем, как создать сайт-визитку и какой должна быть структура. Внутри — инструкция, которая поможет предпринимателям.
Онлайн-карты — хорошая площадка для привлечения аудитории в бизнес. Рассказываем об инструментах продвижения в геосервисах.
Можно стартовать с багажом знаний из найма или практически без опыта. Рассказываем, что нужно делать:…
Что такое наука о данных, чем занимается Data Scientist и можно ли обучиться этой специальности…