Хочу на конкретном примере показать как можно сделать собственную систему мониторинга и быстрого оповещения за вашими сайтами или нодами (для тех кто знает что это такое).
Ни каких специальных знаний кроме умения внимательно читать и кликать мышкой нам не понадобится. А, ну да, осталось пояснить зачем это вообще все нужно.
Предположим, создали ли вы где то сайт или установили ноду, все наладили, все работает как нужно. По началу, вы естественно проверяете работоспособность своего детища чуть ли не раз в пять минут. Потом, понимая что все работает как нужно — время между проверками как то само собой начинает увеличиваться, и вы уже проверяете сначала раз в час, потом раз в день и в конце концов — вообще время от времени. И вот однажды, при очередной проверке, вы понимаете что — «О ужас!»- ваш проект недоступен уже некоторое время.
И все это время вы несли потери — в трафике, или в токинах, или просто в репутации. И тогда приходит мысль — нужно что то делать. Нужна какая то система которая будет мониторить работу вашего проекта и в случае возникновения каких то проблем — как минимум, оперативно сообщать вам об этом.
Пытливый читатель конечно же возразит мне — да как правило в чате по конкретной ноде уже есть телеграм бот где всего то нужно что ввести свои данные и он все сделает сам. На&ига очередной костыль?
И коллега окажется во многом прав. Если у вас один проект и бот которым пользуетесь вас полностью устраивает — вы только зря тратите время на чтение этой статьи. Просто закройте ее и займитесь любимым делом.
Для остальных попробую описать те преимущества которые я вижу в создании собственной системы мониторинга.
Первое — она собственная. Вы полностью управляете что и с какой периодичностью она будет мониторить.
Второе — она масштабируемая. Из одного места вы можете управлять мониторингом любого количеством абсолютно не связанных между собой нод или сайтов.
Третье — выбирать куда будут отправляться вам сообщения.
Четвертое — смотреть так называемый uptime. Т.е. динамику падения вашего проекта за длительный промежуток времени. Это, например, будет показательно, при сравнении двух хостинг-провайдеров.
Пятое — это то что вы придумаете сами.
Если вы еще по прежнему со мной — переходим к практической части. Еще два слова — мы будем пользоваться просто одним из многих сервисов, коих, я думаю, десятки в интернете. И пользоваться бесплатной его частью (она имеет определенные ограничения, но для нашей задачи это не существенно).
Итак, прошу любить и жаловать: https://uptimerobot.com/
Шаг первый
Данный сайт предлагает возможность мониторить до 50 источников с периодичностью минимум 5 минут в бесплатной версии.
Для начала проходим стандартную регистрацию на сайте.
После активации ссылки которая придет вам на почту попадаем внутрь сервиса.
Теперь маленькое отступление — что будет маркером по которому мы будем понимать что нашей нодой/сайтом все в порядке.
Для нод это будет доступный в данный момент порт ноды на вашем удаленном сервере. Скажем так — если нода работает — то мы можем «достучатся» до определенного порта. Если нода перестает работать по какой то причине — данный порт перестает быть доступным. Для каждой ноды эти порты разные. Какие именно это порты указывается в документациях на установку конкретной ноды. Почти со стопроцентной вероятностью это будет один из портов которые по гайду нужно открыть «наружу».
Для сайтов — это может быть как доступный порт web-сервера, так и кое что другое.
С этого момента я разделю повествование — продолжу инструкцию по мониторингу ноды, мониторинг сайта — будет в конце страницы.
Для ноды «Massa» порт который мы будем мониторить — «31244» Еще нам понадобится ip-адрес сервера где находится ваша нода. Посмотреть ip-адрес можно в консоли вашего сервера при помощи команды «wget -qO- eth0.me»
Итак, предположим, что ip нашего сервера 62.171.148.115 порт 31244
Шаг второй
Добавляем новый монитор
В выпадающем меню выбираем «Port»
Выставляем ваш IP, порт, интервал, по примеру картинки снизу
Если все сделали правильно — получаем подтверждение что монитор удачно создан.
С этого момента сервис будет непрерывно мониторить вашу ноду и записывать результаты у вас в аккаунте.
Так как, у этого сервиса есть собственное приложение как в Google Play, так и в Apple Store, можно просто установить их приложение к себе на телефон и на этом закончить настройку.
Приложение само оповестит вас на телефоне.
Но этот вариант для слабаков 🙂 Мы не ищем легких путей. Поэтому продолжим.
Переходим на вкладку «My Settings» и нажимаем на кнопку «Add Alert Contact»
Во всплывающем окне выбираем тот сервис через который мы хотим получать уведомление о сбоях — в нашем случае это Телеграм
И прописываем имя вашего аккаунта в телеграм
Далее нам нужно подтвердить в нашем телеграм канале что это мы и готовы принимать сообщения от этого сервиса. Для этого переходим по линку указанному в аккаунте и подтверждаем в телеграме что мы — это мы
На этом с настройками можно считать закончили.
Теперь проверяем как это работает. У самого сервиса есть такая функция.
Нажимаем на кнопку «Test notification setup» и затем на «Send test notifications»
Сервис отправит вам два оповещения в телеграм — ваш сервис упал и ваш сервис поднялся.
Если все прошло нормально — то на этом настройка мониторинга закончена. Осталось лишь наслаждаться работой и надеется что вы не получите сообщение о падение ваших сервисов.
Немножко о том как приходят уведомления.
Сервис мониторит вашу ноду/сайт постоянно, не зависимо от того есть там на той стороне что то или нет.
Но сообщение присылает только если состояние наблюдаемого объекта меняется. Упала нода/сайт — вам отправили сообщение о событии. Через пять минут мониторинг видит что нода/сайт по прежнему «лежит» — мониторинг у себя фиксирует это состояние, но сообщение вам не отправляет (т.е. вы не получаете сообщения каждые 5 минут). Следующее сообщение вы получите только после того как мониторинг увидит что ваша нода/сайт вернулись к жизни.
Мониторинг сайта, блога, страницы.
Тут все практически то же самое, за некоторыми нъюансами.
Если у вас собственный хостинг и на нем один единственный сайт, то можно полностью использовать инструкцию выше, поменяв только номер порта на 80 (стандартный порт на котором висит apache или nginx)
Но, зачастую, на одном ip-адресе может висеть десяток сайтов и тогда отслеживание пары ip-адресс:порт точно не наш случай. Но, данный сервис позволяет отслеживать довольно нестандартные задачи.
Для отслеживания сайта я использую такую пару — адрес страницы:текст на странице.
Покажу на конкретном примере. Как я отслеживаю «живость» сайта на котором вы сейчас находитесь.
На обычной странице я просто разместил некое уникальное слово. В моем случае это просто набор
цифр. Можно сделать это слово белым цветом, что бы его не было видно. Или просто слово из текста на странице. И сервис мониторинга будет просто проверять наличие этого слова на данной странице. Если слово на странице есть — сайт живой. Если что то пошло не так — и сервис не смог найти данное слово — вам пришлют соответствующее оповещение.
Данный сервис в бесплатном варианте поддерживает до 50 сайтов/нод. Так что на первое время хватит.
Если у вас есть что сказать по тексту статьи или «напихать» автору — добро пожаловать в телеграм-канал
Контроль за падением rolls и автоматическая их покупка
Все что вам нужно знать про bootstrap
Почему слетают rolls и что с этим делать?
Костыль для 8 эпизода ноды massa
Утечка памяти — определяем — перегружаем ноду