Мониторинг доступности своих сервисов
Очень важно для вебмастера в любой момент знать, что с его сайтами-кормильцами все в порядке. А если что-то произошло, то необходимо узнать о случившемся как можно раньше чтобы принять меры. А то за несколько часов недоступности сайта можно и из индекса вылететь.
Так как неприятность может случиться на любом уровне и с конкретным скриптом и с сайтом и с сервером, то логично использовать и внешние и внутренние средства мониторинга.
Мониторинг можно разделить на следующие виды:
- Предоставляемый хостером. Например у правильного хостера Hetzner.de есть возможность бесплатно настроить проверку пингом, доступность порта, ответ определенного сервиса. Этим обязательно нужно воспользоваться. Тогда по крайней мере в случае чего мы будем точно знать что проблема внутри ДЦ или где то на внешних каналах.
- Внешние сервисы мониторинга. Здесь хотелось бы представить следующие сайты:
mon.itor.us - много точек мониторинга, графики по времени ответа, бесплатность, статистика за период и другое. Можно купить уведомления на смс.
basicstate - тоже бесплатен, показывает на каком этапе провалилась проверка (днс лукап, подключение, ответ), есть возможность отправлять сообщения в смс-формате. Вообщем рекомендую. - Вспомогательные сервисы. Хороший пример - smsmail.ru. Позволяет за очень небольшие деньги отправляя письмо получать его в в виде смс. Я в курсе, что у многих сотовых операторов есть подобные услуги, но как показала практика у опсосов эти сообщения идут очень долго. А smsmail.ru работает быстро и четко.
- Мониторинг на своих серверах. Тут я предпочитаю использовать связку Nagios + Cacti. От нагиоса мы имеем очень гибкие и разнообразные тесты. Например, можно проверять присутствие определенного слова на странице сайта. А это очень важно! Иногда бывает, что скрипты на сайте выплевывают html-сообщение о ошибке и внешние мониторинги могут не расценить это как ошибку. От какти мы получаем статистику в виде графиков по нагрузке на сервер, по динамике трафика.
- Мониторинг со своего рабочего компьютера. Мне психологически очень приятно видеть зелененький кружок в трее, говорящий о том, что все в порядке. Такую проверку поможет организовать небольшая софтинка Alchemy Eye
Ну и напоследок. После того как вы настроили средства мониторинга обязательно проведите их тест. Например, ненадолго положите какой-нибудь свой сайт и посмотрите какие алармы и в течение какого времени вам придут.
Чек-лист перед выкладыванием сайта
Допустим вы делаете новый партнерский шопик. Вроде он почти готов и можно выкладывать в продакшн. Вот небольшой список, по которому очень желательно пробежаться и проверить, что все пункты у вас выполнены.
- Пройти по всему сайту и протестировать всю функциональность. Протыкать все ссылки. Все должно открываться. Желательно в этот момент иметь открытый Firebug на вкладке "Сеть" и убедиться, что везде ответы 200.
- После "протыкивания" сайта посмотреть error-лог в апаче. Обычно оказывается, что некоторые скрипты все же работают с ошибками =)
- Протестировать скорость загрузки сайта Firebug, Yslow и http://tools.pingdom.com. Возможно окажется, что вы забыли сделать отдачу картинок напрямую nginx-ом или забыли поставить expire-тэг, что снизит скорость загрузки сайта. Желательно, чтобы скорость загрузки не превышала 2-3-4 секунд.
- Проверить не осталось ли на сайте тестового контента. Часто разделы с новостями и статьями набиваются заглушками. Будет не приятно, если это все проиндексируется.
- Проверить работу сайта в разных браузерах и на разных разрешениях. Для ру-сайтов тестирование в Опере обязательно. Не забыть про разрешение 1024x768! Благо, с плагином WebDevelopper это весьма просто сделать.
- Зайти на domain.com/abracadabra и убедиться, что отдается правильная 404 (и http-код ответа тоже 404!)
- Создать favicon. Сайт будет сильно лучше смотреться в выдаче с красивой иконкой соотвествующей тематике сайта.
- Проверить что содержимое отдаваемого сайтмапа правильное. Желательно если сайтмап будет расположен на /sitemap.xml
- Убедиться, что на сайте есть простая и удобная форма обратной связи. Иначе как вы будете получать фидбэк от своих посетителей/покупателей.
- Добавить счетчики Google Analytics (в том числе с данными о продажах и скачиваниях файлов) и Yandex.Metrika - с уведомлением по смс и почте.
- Добавить сайт в мониторинг на monitor.us и basicstate.com. В каждый момент быть уверенным, что сайт приносящий вам деньги действительно работает - это важно!
- Провести тестирование нагрузки на loadimpact на 50 юзерах и посмотреть на загрузку сервера. Существенных торможений быть не должно! Конечно, вряд ли у вас быстро появится по 50 реальных онлайн пользователей, но лучше задуматься о этом заранее.
- Добавить сайт в вебмастер-сервисы Яндекса и Гугла. Не забыть туда же добавить ссылку на сайтмап.
Все, можно запускаться!
Правильный хостинг для вебмастера
Сегодня я расскажу свое мнение о том, каким должен быть правильный хостинг для настоящего вебмастера. Т.е. для человека живущего за счет доходов в онлайне. Оговорюсь, что в данном случае я имею в виду только белые проекты.
Здесь под "хостингом" я подразумеваю не только сам сервер, но и комплекс мероприятий направленных на обеспечение стабильности функционирования ваших проектов.
Итак, основные условия, которым должен удовлетворять хостинг:
- Только выделенные сервера. Почему не виртуалы или вдс? Потому что нынешняя стоимость дедиков не так велика (от 2000р за отличный дедик), зато есть гарантии по производительности и управляемости. Вы всегда сможете настроить сервер так, чтобы выжать из него максимум возможного, поставить туда любой софт или модуль, сделать любую конфигурацию. Виртуалы по 3 бакса от реселлеров-реселлеров это для пионеров. А ВДС-ки, к сожалению, часто продают с сильным оверселлом. Вообщем, для профессионалов в области онлайн-заработка дедики это обязательно.
- Управляемость. Идеальный вариант - это когда вы сами имеете необходимые скиллы для качественного администрирования. Если таких нет - надо найти админа, который будет сотрудничать с вами на постоянной основе и которому можно будет без проблем позвонить ночью в случае аварии. Нельзя судьбу вашего главного источника дохода доверять дефолтному саппорту хостинга. К сожалению, я не слышал о том, чтобы в России можно было заключать какой-то договор о качестве обслуживания.
- Желательно обойтись без реселлеров. Работа через посредников часто приводит к увеличению времени реагирования на запросы, а в критических ситуациях время очень важно. Плюс, в случае с реселлером сервер будет "записан" на него, а не на вас и если реселлер загнется, то вы можете потерять свой сервер.
- Несколько IP адресов. Не нужно стараться сэкономить пару баксов и вешать все свои проекты на один ип. Понятно, что в случае белых проектов и отсутствия перелинковок какие-либо санкции от ПС вряд ли последуют, но все же лучше не навешивать больше 3-5 проектов на один IP. Тем более, что они весьма не дорогие.
- Обязательное дублирование. В минимальном варианте вам нужно иметь два сервера, которые будут полностью дублировать друг друга. Данные на серверах должны постоянно синхронизироваться. Организовать синхронизацию совсем не сложно. Т.е. даже при серьезной аварии на одном из серверов (например, сгорит материнка) вы должны в минимальное время переключить днс-ы на второй сервер и восстановить функционирование всех проектов. Это называется "горячий резерв".
- Географическое разнесение. Помните историю с 3FN? Как вам такая перспектива: однажды утром оказаться полностью без своего сервера (или даже всех расположенных в данном ДЦ)? Даже при наличии бэкапа на внешнем ресурсе полное восстановление займет дни. Поэтому надо чтобы ваши дедики были расположены в разных ДЦ.
- На каждом сервере должно быть минимум два жестких диска объединенных в зеркало. Желательно программное (md для linux и gmirror для FreeBSD).
- Внешний мониторинг. Обязательно использование хорошего внешнего мониторинга, который будет регулярно (например, раз в 15 мин) проверять доступность и корректность работы проектов с отправкой уведомлений на почту и на смс. О том какие средства мониторинга я рекомендую я расскажу в следующих заметках.
Из моего опыта для РУ-проектов я могу порекомендовать двоих хостеров, расположенных в Европе, которые предоставляют дедики по отличным ценам и с хорошим качеством.
Оба они имеют отличные отзывы и хороший пинг до России.
Стоимость двух дедиков у этих хостеров будет примерно 4 килорубля в месяц, что не может считаться серьезной суммой для серьезного вебмастера. Запас для роста по трафику, который будут способны потянуть эти сервера достаточно большой.
Вообще, очень важно понять одну простую истину - ничего мега-стабильного и надежного не бывает. Может накрыться винт, сервер целиком, каналы у хостера, днс-сервера, даже дата-центр целиком. И поэтому только дублирование и резервирование спасет нас. Надо быть готовым к поломке любого компонента нашей инфраструктуры в любой момент и отрабатывать данные ситуации. Ну и про бэкапы не забывать. А то, знаете как грустно было наблюдать за людьми выскребающими свои сайты из кэша гугла, вебархива, яндекса и других после истории с 3FN.
Вот и все. Соблюдение данных правил позволит вам избежать потерь и простоев да и просто спать спокойно =)
ЗЫ. Про правильную организацию бэкапов я расскажу в дальнейшем.