Проверьте свой сайт с помощью этой интуитивно понятной и легкой программы

В этой статье я хочу поделиться своим опытом настройки мониторинга своих сайтов. В то время как другие стеки мониторинга, такие как использование prometheus, node-exporter и graphana в сочетании с оповещениями, предоставляют массу интересных функций, я хочу представить легкий и простой стек. Основным компонентом этого стека является проект под названием uptime-kuma. Он написан на node.js и vue и имеет действительно красивый пользовательский интерфейс. Основные аргументы, которые убедили меня запустить uptime-kuma:

  • Супер простая установка и настройка
  • Потрясающий интерфейс
  • Простая интеграция уведомлений телеграмм
  • Аккуратный набор конфигураций для проверки сайтов

Итак, приступим к развертыванию uptime-kuma. Мне нравится использовать traefik в качестве обратного прокси-сервера, развернутого с помощью docker-compose. Эта простая установка с одним хостом позволяет автоматически выдавать сертификаты LetsEncrypt для доменов.

Итак, вот все, что вам нужно для настройки: хост с общедоступным IP-адресом, домен, под которым должен быть доступен ваш мониторинг, и запись A, которая указывает домен на соответствующий хост. На хосте нужно установить docker и docker-compose. Существует несколько руководств по установке обоих инструментов для разных ОС, например, docker и docker-compose. Вот и все.

Развертывание Traefik Docker-Compose

Для traefik существует множество различных компоновочных файлов, поэтому вы можете выбрать то, что предпочитаете. Если вы просто хотите следовать этому руководству, позвольте мне показать вам мое. Мне нравится размещать развертывания с компоновкой докеров в разделе /usr/docker. Итак, для traefik у нас есть следующие файлы под /usr/docker/traefik. Во-первых, в docker-compose.yml необходимо поместить следующее содержимое:

Составной файл содержит одну службу и одну сеть. Служба представляет собой контейнер traefik с некоторыми флагами командной строки. В основном, вам просто нужно изменить свой адрес электронной почты. Если вы хотите избежать ограничения скорости LetsEncrypt при тестировании вашей установки, вы можете изменить преобразователь acme на staging (см. комментарий в сути). Вы можете запросить столько сертификатов, сколько хотите, без ограничения скорости, но получите сертификаты, которым браузеры не доверяют автоматически.

Так что это не для производства. Служба traefik перенаправляет ports 80 и 443 для HTTPS-трафика и 127.0.0.1:8080 для панели управления, которая доступна только с локального хоста. Кроме того, существует одна внешняя сеть докеров под названием reverseproxy. Мы присоединим к этой сети все контейнеры, для которых traefik будет служить обратным прокси. Второй файл, который нам нужно поместить в эту папку, это traefik.toml:

Эта конфигурация устанавливает точки входа для трафика HTTP и HTTPS и ведения журнала. Это все, что касается траефика.

Теперь вы можете выполнять следующие команды в папке /usr/docker/traefik:
- docker network create -d bridge reverseproxy
- touch access.log
- docker-compose up -d

Развертывание Uptime-Kuma Docker-Compose

Для uptime-kuma авторы предоставляют файл docker-compose, который работает из коробки. Чтобы запустить его за traefik с сертификатами LetsEncrypt, нам просто нужно изменить его на следующий файл /usr/docker/uptime-kuma/docker-compose.yml:

Нам нужно настроить некоторые метки traefik, чтобы позволить traefik получать правильные сертификаты для домена. Кроме того, в сеть обратного прокси необходимо добавить контейнер uptime-kuma, чтобы traefik мог перенаправлять на него входящий трафик. Наконец, просто запустите следующую команду в папке uptime-kuma, чтобы запустить контейнер: docker-compose up -d

Настройка Uptime-Kuma

При первом доступе к экземпляру uptime-kuma необходимо настроить безопасный пароль администратора. Когда вы закончите, вы можете начать добавлять конечные точки. Пользовательский интерфейс выглядит следующим образом. Вы можете определить конкретное поведение того, как и как часто uptime-kuma должен проверять ваш сайт, например, коды возврата HTTP, проверку сертификата и т. д. Это здорово.

После того, как вы добавили свои первые конечные точки, я рекомендую настроить уведомления телеграмм. При этом вы будете получать уведомления всякий раз, когда одна или несколько конечных точек не работают должным образом. Настроить уведомления телеграм довольно просто. Вам нужно создать группу, бота и настроить идентификатор чата группы и токен бота в uptime-kuma.

Итак, давайте делать это шаг за шагом. Чтобы создать бота, вам нужно написать Botfather. Зайдите в телеграм (или веб-телеграмм), откройте чат с Botfather (перейдите по ссылке в доке), затем напишите боту /newbot в качестве команды. Вам нужно дать ему имя и имя пользователя в соответствии с требованиями. Вы можете увидеть свой токен, который является первой частью конфигурации, необходимой для безотказной работы.

Теперь создайте новую группу телеграмм и добавьте в нее бота. Теперь вы можете получить идентификатор чата, следуя инструкциям здесь. По сути, вам нужно написать сообщение в групповой чат, сделать запрос на получение с помощью любого инструмента, который вам нравится https://api.telegram.org/bot<YourBOTToken>/getUpdates, а затем найти поле чата. Иногда это число отрицательное. Не волнуйтесь, это нормально.

С помощью chatId вы можете завершить настройку. Вы можете протестировать уведомления телеграмм с помощью кнопки в диалоговом окне настроек.

Краткое содержание

В этой статье показано, как установить uptime-kuma в сочетании с обратным прокси-сервером traefik и как настроить уведомления телеграмм. На мой взгляд, это отличный инструмент для мониторинга веб-сайтов с множеством полезных настроек. Я определенно могу порекомендовать его использовать, если вам нужно только убедиться, что ваши веб-сайты работают правильно.

Пожалуйста, не стесняйтесь делиться любыми отзывами. С удовольствием добавлю в эту статью.