Перейти к содержимому


× Быстрый вопрос
Пользователь месяца
Olya23 Olya23 1-й за Июнь
Очков активности: 1 278 3 темы, 133 сообщения, 6 баллов репутации
ТОП самых активных за этот месяц
  • Фотография web-coder
    #1

    web-coder (good-hoster.ru)
    Очков активности: 850.5 0 тем, 63 сообщения, 9 баллов репутации

  • Фотография Rodiola
    #2

    Rodiola (rukodelkovo.ru)
    Очков активности: 207 1 тема, 66 сообщений, 2 балла репутации

  • Фотография FIvYUr
    #3

    FIvYUr (moy-evroopt.ru)
    Очков активности: 84 1 тема, 25 сообщений, 2 балла репутации

  • Фотография BLIK
    #4

    BLIK
    Очков активности: 79.5 Вне конкурса за определение пользователя месяца

  • Фотография Андрей WPMasterKZ
    #5

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 75 1 тема, 22 сообщения, 2 балла репутации

  • Фотография Megoydagi
    #6

    Megoydagi (24ho.ru)
    Очков активности: 57 3 темы, 10 сообщений, 2 балла репутации

  • Фотография maxnik
    #7

    maxnik (konovalovpavel.ru)
    Очков активности: 48 0 тем, 16 сообщений, 2 балла репутации

  • Фотография lena220678
    #8

    lena220678
    Очков активности: 40.5 3 темы, 18 сообщений, 1 балл репутации

  • Фотография лоуренс
    #9

    лоуренс
    Очков активности: 27 3 темы, 9 сообщений, 1 балл репутации

  • Фотография WGN
    #10

    WGN (worldgamenews.com)
    Очков активности: 22.5 1 тема, 12 сообщений, 1 балл репутации

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 25.06.2019
  • Яндекс выдача: 12.07.2019
Топ 5 участников по репутации


Так как же мониторить сайты?

#1 Yoh

Yoh
  • Оф. представитель
  • 12 сообщений
  • Репутация: 2
0

Отправлено 03 Июль 2019 - 23:56

Всем привет.
 
Относительно недавно, @re-search создал тему “Как мониторить собственный сайт?”, которая попала в горячие темы мая, однако вопрос, на мой взгляд, раскрыт до конца не был.
 
Хочу ответить на поставленный вопрос, поделиться своим опытом мониторинга и интересными сервисами.
Немного обо мне: меня зовут Евгений Русаченко, занимаюсь системным администрированием и немного программированием на протяжении 12 лет.
 
Мой мониторинг разделен на две части – внутренний и внешний. За счет внутреннего я достигаю максимальной автоматизации, внешний идет как страховка на случай, если что-то пошло не так. Разберем детальнее каждую часть.
 
Внутренний мониторинг
 
Он проверяет работу основных служб сервера, которые отвечают за сайты: Apache (отвечает за обработку PHP скриптов), Nginx (отвечает в основном за отдачу картинок и стилей) и MySQL (сервер базы данных).
 
Проверка делается консольным скриптом, который ежеминутно проверяет содержимое PHP скрипта, набора CSS стилей (делаются запросы по тестовым адресам) и содержимое базы данных.
 
Когда необходимое содержимое не найдено, то мне отправляется уведомление о проблеме (сначала на почту) и перезапускается проблемный сервис. Если при повторной проверке ошибка повторилась, то уведомление уходит на телефон (звонок + сообщение, чтобы точно не пропустить).
 
С точки зрения внутреннего мониторинга есть еще много различных частей (например: мониторинг дисков, сбор и анализ нагрузки), но это больше относится в целом к серверу. Если интересно, готов рассказать об этом в отдельной теме.
 
Внешний мониторинг
 
В целом он повторяет логику внутреннего мониторинга. Ищет заданное содержимое по определенным адресам. Чтобы минимизировать ложные срабатывания, мониторинг выполняет проверку каждые 10 минут (это необходимо для того, чтобы у внутреннего было время на самостоятельное восстановление работы сайта). Внешний мониторинг спасает в тех случаях, когда проблемы глобальны (например, упала сеть в дата-центре).
 
Немного историй и фактов
 
Мониторинг от Яндекс.Метрики: на мой взгляд достаточно непредсказуемая система. Иногда она проверяет раз в несколько минут, а когда-то пропадает на час. Если простой в час критичен, нужно использовать другие средства мониторинга. Чтобы не быть голословным, журнал запросов одного из сайтов.
 
178.154.200.61 - - [02/Jul/2019:23:28:09 +0300] "GET / HTTP/1.1" 301 178 "-" "Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots yabs01)"
5.45.207.22 - - [02/Jul/2019:23:47:03 +0300] "GET / HTTP/1.1" 200 9441 "-" "Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots yabs01)"
5.45.207.22 - - [03/Jul/2019:00:25:55 +0300] "GET / HTTP/1.1" 200 9426 "-" "Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots yabs01)"
5.45.207.22 - - [03/Jul/2019:00:28:01 +0300] "GET / HTTP/1.1" 200 9418 "-" "Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots yabs01)"
5.45.207.22 - - [03/Jul/2019:00:30:33 +0300] "GET / HTTP/1.1" 301 178 "-" "Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots yabs01)"
5.45.207.22 - - [03/Jul/2019:01:28:15 +0300] "GET / HTTP/1.1" 200 9453 "-" "Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots yabs01)"
141.8.132.2 - - [03/Jul/2019:01:37:29 +0300] "GET / HTTP/1.1" 301 178 "-" "Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots yabs01)"
5.45.207.22 - - [03/Jul/2019:02:02:02 +0300] "GET / HTTP/1.1" 200 9409 "-" "Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots yabs01)"
141.8.132.2 - - [03/Jul/2019:02:05:55 +0300] "GET / HTTP/1.1" 200 9428 "-" "Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots yabs01)"

Частоты мониторинга каждую минуту иногда недостаточно. Я всегда проверял доступность сайтов каждую минуту и не думал, что это сыграет злую шутку со мной в сентябре 2018 года. В один из дней мониторинг не сработал, так как сайты только изредка отдавали 500 ошибки. После того случая внутренний мониторинг стал делать по 100 запросов к тестовым адресам. При наличии 3 ошибок он высылает уведомление о проблеме.
 
Зачем проверять разные сервисы (Apache, Nginx)? Это необходимо для исключения ситуаций с частичной поломкой отображения сайтов, как была у автора прошлой темы. Например, Apache продолжает обрабатывать без ошибок PHP скрипты, а Nginx по каким-то причинам перестал отдавать картинки и стили сайта.
 
Немного полезных сервисов
  • https://smsc.ru/monitoring/ (реф) - данный сервис берет деньги только за уведомления о проблемах, очень выгодно, если сайты падают редко. Цены на сами уведомления можно посмотреть в соседнем разделе https://smsc.ru/tariffs/

    Последний раз пользовался данным сервисом в 2017 году, он имел проблемы с ложным срабатыванием (сайт работает, но уведомления о падении приходят). Общался с поддержкой, что-либо внятное сказать не смогли, пришлось отказаться от него. Если кто-то имеет опыт использования, расскажите.

  • https://monitorus.ru/tariffs/ (реф) – по цене / качество самый хороший сервис. Использую его с 2016 года в качестве основного, число заданий без ограничений, бесплатные уведомления, оплата только за сами проверки.

  • https://ping-admin.ru – имеет много точек мониторинга, для постоянного наблюдения никогда не использовал. Однако часто использую для разовой проверки доступности сайта из разных точек мира https://ping-admin.ru/free_test/

  • https://www.host-tracker.com/ru/ - неплохие ребята, использовал их до 2016 года. Цены в долларах, ушел из-за роста курса валют и поднятия цен с их стороны. Оплата только помесячная.

  • https://uptimerobot.com – мне нравится данный сервис за простой интерфейс и возможность бесплатного добавления 50 задач с уведомлениями по почте. Использую его сейчас для задач с низким приоритетом.
Надеюсь, информация была полезной для Вас. Благодаря описанным подходам в своем основном проекте https://lite.host (обсуждение) мне удалось добиться среднего UPTIME 99.995% по всем серверам за 2018 год.
 
Буду благодарен тем, кто опишет свой опыт мониторинга сайтов и интересные истории, с которыми сталкивались. Возможно мне еще есть что улучшать

 

 

Сообщение отредактировал Yoh: 03 Июль 2019 - 23:58

  • 0

#2 Sosnovskij

Sosnovskij
  • Администратор
  • 5 162 сообщений
  • Репутация: 775

Отправлено 04 Июль 2019 - 15:57

@Yoh, консольный скрипт - собственная разработка или есть в паблике?


  • 0

Блог — https://sosnovskij.ru/.



#3 Yoh

Yoh
    Topic Starter
  • Оф. представитель
  • 12 сообщений
  • Репутация: 2

Отправлено 04 Июль 2019 - 17:17

@Sosnovskij, собственная разработка, но так как она примитивная, то основной частью поделюсь в том виде, в каком она есть.

 

Скрипт services.php проверяет свободное место, файлы конфигурации и доступность Apache, Nginx, MySQL, ISPmanager, а также каждой версии PHP (от 5.2 до 7.3). Уведомления отправляет на почтовый ящик, а также по SMS и звонком (через smsc.ru). 

 

Прикрепленный файл  services.php   21,01К   Количество загрузок: 1

 

Скрипт stress.php делает 100 запросов в минуту по определенной ссылке и считает ошибки, если их более 3, то отправляет письмо на почту.

 

Прикрепленный файл  stress.php   1,85К   Количество загрузок: 1

 

В скриптах необходимо поправить порты сервисов, в некоторых случаях дополнительно настроить вывод дополнительной информации со стороны Apache и Nginx. Подготовить специальные файлы для выполнения проверки. Думаю, rnj умеет настраивать серверы и немного читать код - справятся  :) Кто не справится - пишите, постараюсь подсказать.


  • 2



Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru