Каковы хорошие способы мониторинга живого магазина?


41

Предисловие: Мы хотим расширить мониторинг одного из наших интернет-магазинов, поскольку у провайдера возникли проблемы с конфигурацией PHP и произошел сбой частей живого интернет-магазина (не работает бэкэнд и оформление заказа). Я не хочу обсуждать переезд к другому провайдеру здесь.

Поскольку мы сейчас думаем о возможностях мониторинга самого интернет-магазина и доступности определенных деталей (например, «Работает ли оформление заказа?»), Возникает вопрос:

Какие инструменты и стратегии вы предлагаете для мониторинга живого веб-сайта?

Некоторые идеи:

  • Вы автоматически проверяете, работает ли касса на действующем веб-сайте?
  • Какие могут быть хорошие параметры для мониторинга, чтобы обнаружить сбой? Последний заказ <1 день назад, последний пользователь логин, ...
  • Использование заданий cron: проверять, например, дату / время последнего заказа и, если это слишком давно, отправить по электронной почте и / или проверить вручную, если проверка все еще работает?
  • Используя программное обеспечение / инструменты, такие как Icinga, Uptime Robot, ...
  • Отправка предупреждений по электронной почте администраторам, ...

Ждем ваших ответов :)


1
Даже если это выглядит немного «основанным на мнении», я очень хочу увидеть ответы :).
Мариус

Спасибо @Marius, я знаю, что это субъективно, но в любом случае было бы интересно поделиться :)
Анна Фёлькл

Отличный вопрос, мне интересно то же самое! Благодарность!
Вессель

Ответы:


30

Есть несколько вещей, которые вы можете сделать автоматизированными.

  1. Если части магазина перестают работать, юнит-тесты - хороший способ определить, работают ли определенные функции.
  2. Для тестирования внешнего интерфейса я использую phpQuery на удаленном сервере, чтобы периодически искать определенные элементы DOM на определенных ключевых страницах, таких как «есть ли еще продукты в списке категорий», «есть ли нижний колонтитул * на домашней странице» и т. Д.
  3. Установите простой cronjob, который пингует ваш хост, чтобы увидеть, если он все еще доступен
  4. Используйте RSS-канал заказов Magento, чтобы проверить, поступают ли заказы. В магазинах с высоким трафиком заказ на час в пятницу вечером - хороший индикатор того, что что-то не так :)
  5. Следите за своим поставщиком платежных услуг. В Нидерландах мы используем iDeal для обработки платежей. Этот веб-сайт отображает их время безотказной работы, ваш PSP может предоставлять аналогичные услуги

* если на странице нет нижнего колонтитула, который может указывать на ошибку PHP, прерывающую рендеринг.

Это пара решений, которые мы используем. Им просто нужно некоторое время на установку и они могут свободно работать.

Кстати, большой вопрос, я с нетерпением жду ответов на все вопросы!


25

Я согласуюсь с фантастическим ответом Сандера на следующее: предполагается, что вы настроили и используете службу мониторинга, такую ​​как Pingdom *:

  • Следите за содержанием на странице; обычно закрывающий </html>тег. Я видел очень много before_body_endсценариев с ошибками от сторонних разработчиков (необработанные исключения и т. Д.), Которые невидимы для конечных пользователей, но возвращают 500 статусов - очень плохо для SEO / Google / Инструментов для веб-мастеров
  • Настройте Инструменты для веб-мастеров, чтобы уведомлять вас, когда количество ошибок превышает определенный порог
  • Настройте оповещения для недействительного SSL на странице
  • Настройте оповещения для ошибок JavaScript на странице
  • Используйте группы электронной почты / скрытую копию для электронных писем с ошибками, отчетов об ошибках.
  • Тесно общайтесь с людьми из вашего колл-центра и убедитесь, что они знают, как снимать скриншоты - они обычно первыми указывают, когда что-то идет не так.
  • Медленный сайт так же плох, как и неработающий сайт. Убедитесь, что ваши оповещения чувствительны к тому, когда ваш сайт загружается дольше, чем обычно.
  • Подпишитесь на каналы Twitter для всех ваших ключевых сторонних / размещенных сервисов. У крупных хостов обычно есть триггеры Twitter, когда возникают проблемы. Вы можете настроить Twitter, чтобы он отправлял вам сообщения по электронной почте или отправлял текстовые сообщения при публикации определенных учетных записей.

DevOps:

  • Настройте Nagios для мониторинга критических систем и отправки оповещений
  • Настройте системный журнал или Splunk (освобождайте до определенного количества запросов / день) для агрегирования журналов и выдачи предупреждений на основе данных журнала
  • Настройте рутинную проверку вашего сетевого оборудования по сценарию. Я видел (более одного раза), что сетевые адаптеры возвращаются с 1 ГБ до 10 МБ без нашего ведома.

Для больших команд:

  • Настройте CI-сервер (Трэвис, Дженкинс / Хадсон, Капистрано), чтобы предупредить вас о возможных неудачных тестах после фиксации.
  • Установите хуки pre-commit в вашем контроле исходного кода для обеспечения соблюдения стандартов кода или для проверки на явные проблемы, такие как неработающий код
  • Как сказал Сандер, настройте что-то, чтобы отслеживать RSS-каналы для заказов и объема по времени суток - выгода здесь в том, что он не кэшируется, и, как правило, если вы установите достаточно низкий порог уведомления, потенциальная проблема сразу же сработает
  • Используйте селен. МНОГО. Проведите скриптовые тесты, которые проходят через процесс проверки каждый час или два.
  • Настройка напоминаний календаря и специальных предупреждений для истечения срока действия SSL

Вы собираетесь генерировать МНОГО данных и потенциально ложных срабатываний; не становитесь невосприимчивыми к оповещениям.


Я не связан с Pingdom. Я просто люблю их (бесплатный) продукт.


8

Если у вас проблемы только с вашим хостером, а не с оплатой, вы можете подумать о настройке скрытого продукта, написать тест на селен, положить его в корзину, добавить купон, чтобы сделать его бесплатным, а затем пройти процедуру оформления заказа.


1
хорошо, мне нравится скрытая бесплатная идея продукта :-)
Анна Фёлькл

5

Здесь уже есть несколько отличных ответов, в зависимости от ваших настроек. Я использую NewRelic для мониторинга статистики серверов и транзакций, а также для настройки ключевых транзакций на каждом этапе процесса оформления заказа. Таким образом, я могу посмотреть на один экран в моем телефоне и определить, получаем ли мы все еще необходимое количество людей, проверяющих весь процесс, и получают ли они соответствующее время отклика. Если я вижу кучу пропускной способности во всем до последнего шага, я знаю, что PayPal, вероятно, сломан, поскольку никто не может обрабатывать их карты. Я также получаю оповещения, если есть много ошибок, время отклика отключено и т. Д. Вам не нужен NewRelic для этого, но его очень просто и быстро настроить, и у меня не было времени на сборку. моя собственная панель инструментов / приложение / система оповещения.


1
Я согласен с тобой в том, что NewRelic работает как шарм. Я также хотел бы добавить, что использование службы, такой как Pingdom, также является хорошим вариантом для мониторинга доступности сервера.
Эйрик

5

Мне нравятся NewRelic и PagerDuty для этого, они просто идеальны и уведомляют вас (электронная почта, текст и звонок) через минуту, если ваш сайт или любая часть вашего сайта не работает. Он даже уведомляет, превышает ли ваш процессор или память указанный процент использования, что делает сайт не отвечающим.

  • Настройте New Relic со всеми страницами, которые вы хотите отслеживать, и отслеживая частоту. Пример: домашняя страница, любая страница 1 категории, любая страница 1 продукта, страница корзины, страница оформления заказа и т. Д.
  • Добавьте пользователей (которые все получают уведомления), расписания (день и время, когда вы предпочитаете получать уведомления), службы (оповещения о новых реликвиях) и политики эскалации в оповещения PagerDuty и типы уведомлений, которые вы хотите (электронная почта, текст, вызов)

https://www.pagerduty.com/docs/guides/new-relic-integration-guide/

Отказ от ответственности: я не связан ни с одной из вышеперечисленных услуг.


4

MageMonitoring - https://github.com/magento-hackathon/Hackathon_MageMonitoring Отличный бесплатный инструмент с открытым исходным кодом, который отслеживает состояние сервера и Magento, отправляет электронные письма с исключениями, системные журналы и т. Д.


3
  • Munin на стороне провайдера для получения исторических значений для всех серверов (LB, App, DB, Redis и т. Д.) И всех служб (память, загрузка, IO и т. Д.)
  • Nagios / Icinga включен на провайдере или на локальной стороне для почти непрерывной нагрузки мониторинга на всех серверах
  • Pingdom для сбора времени ответа на «важные» URL-адреса, такие как первая страница, оформление заказа и т. Д.
  • Pingdom для реального мониторинга пользователей, вы получаете значение, подобное APDEX, и видите историческое развитие
  • Pingdom для проверки URL и их правильного содержания
  • Отчет о последних X заказах в режиме автоматической перезагрузки. С его помощью я вижу возможные разрывы
  • Автоматизированные тесты с Selenium на идентичной сценической системе. Я не являюсь другом автоматических проверок в моей действующей системе. Проблемы с вашим бухгалтерским учетом возникнут позже :)
  • Zapier и Twilio для Email2SMS. Критические ошибки отправляются в виде SMS на телефон
  • freeboard.io и dweet.io для отображения всего на красивой панели.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.