Robot Observer
Цель сервиса: предоставить качественные и удобные услуги по мониторингу сайтов и серверов.
Возможности:
Мониторинг сайта (в числе несколько ip) get запрос, ключевые слова.
Сканирование портов.
Мониторинг портов.
Ping серверов
Проверка сертификата SSL
Анализ сайтов (нахождение поддоменов)
Отображение на графиках ответ от сайта
ТЗ
Регистрация пользователя по e-mail с верификацией от пользователя.
Восстановление пароля.
Оплата - платежный агрегатор.
После входа на сайт клиенту нужно добавить свой сайт нажимает кнопку Add Web Sites

Появляется всплывающее окно с полем для ввода сайта или ip и кнопка Analyze или Scan. В сканировании находим поддомены введенного сайта, так же берем информацию с DNS по mx/ns и с сертификата SSL. Выводим в єтом же окне найденные поддомены и предлагаем клиенту добавить.

После добавления клиенту нужно зайти в настройки конкретного домена и выбрать уже предложенные порты для мониторинга или ещё сделать сканирование и добавить найденные порты.

Fast scan отображение можно в браузере, а Full ставиться на сервере в очередь и после сканирования приходит пользователю оповещение о найденных портах которые он может поставить на мониторинг.

Примерная архитектура проекта.
Важно: Monitoring node могут находиться географически далеко друг от друга, первая например в Нью-Йорк, вторая Сан-Франциско, третья в Амстердаме, а четвертая в Азии, также Site analyz node.
Анализ сайтов (нахождение поддоменов)
Для сканирования сайтов используется движок selenium или аналоги, так как обычный GET мало вытаскивает ссылок с динамических сайтов. Найденные ссылки обрезаем до формата: docs.google.com
google.com
www.google.com, alt4.aspmx.l.google.com, ns1.google.com, www.about.google
Найденные домены не повторяются.
Информацию по доменах берем с сайтов так и Whois (rdap - умеет json) и с команды в linux
“host -t mx google.com”
“host -t ns google.com”
Проверка сертификата SSL
Делаем проверку на валидность сертификата, принадлежит ли этому сайту и если да то проверяем срок действия.
Ping серверов
Через N минут отправляем на сервер 4-5 пингов и так далее.
Мониторинг портов
Проверяем открыт ли порт, так же через N минут и так далее.
Сканирование портов
Сканирование можем проводить только на добавленных серверах(сайтах). Fast scan делаеться в браузере, а Full scan в очереди на сервере.
Мониторинг сайта
В сайтов может быть несколько ip, делаем get запрос ко всем серверам где находиться данный сайт, если проверка по ключевым словам то ищем также на всех серверах.
Дизайн:
https://www.figma.com/file/Lfq9UVzOpEU9I6jW7hW2Sp/Robot-Observer?node-id=0%3A1