Бесплатный мониторинг сайтов с уведомлениями в Telegram с помощью Uptime-Kuma

Введение

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

Для этих целей используют мониторинг, его разновидностей достаточно много, можно мониторить с помощью сложного комбайна Zabbix и отслеживать работу сайта и сервера, выявляя проблемы до их наступления, можно воспользоваться готовыми сервисами, которые предоставляют услуги за деньги или “условно-бесплатно”, с какими-либо ограничениями (обычно на количество хостов или на время проверки, способы оповещения и т.д.), а можно развернуть свой сервис проверки доступности сайта с уведомлениями в Telegram (90+ методов уведомлений), с мониторингом истечения SSL сертификатов и других плюшек.


Немного о мониторинге Uptime-Kuma

Uptime-Kuma – многоязычный, Open Source проект с мониторингом в реальном времени веб-сайтов (HTTPs), TCP портов, Docker контейнеров и получением информации о DNS записях, Steam Game Server, SQL Server, PostgreSQL, MQTT.

Умеет отправлять уведомления на электронную почту, Telegram, Discord и 90+ других способов, имеет поддержку proxy и возможность создать статус страницу с состоянием хостов, минимальный опрос вашего сервиса – 20 секунд.

Все манипуляции по настройке и добавлении хостов производятся из браузера.

Обзор бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Визуальный пример графиков и данных которые показывает Uptime-Kuma

Установка своего мониторинга Uptime-Kuma в Docker

Для установки Uptime-Kuma потребуется установленный Docker и Docker-Compose (если нет своего сервера, можно воспользоваться этим или создать у себя виртуальную машину)


Создаем директорию, где у нас будет храниться docker-compose.yml и данные Uptime-Kuma:

mkdir -p app/uptime-kuma/data

Переходим в нее:

cd app/uptime-kuma/

Создаем и вносим в docker-compose.yml следующие данные:

nano docker-compose.yml
version: "3"

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: unless-stopped
    ports:
      - 3001:3001
    volumes:
      - ./data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock
    security_opt:
      - no-new-privileges:true

Жмем Ctrl+x, Y, Enter для сохранение и запускаем наш docker-compose.yml:

docker compose up -d

Обзор и настройка Uptime-Kuma


Установка произведена, теперь наш сервис будет доступен по адресу:

http://IP_ВАШЕГО_СЕРВЕРА_ИЛИ_ДОМЕН:3001

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

Настройка бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Создание аккаунта в Uptime-Kuma

Далее нас встречает непосредственно сам интерфейс Uptime-Kuma
В левой колонке будет список наших сервисов которые нам нужно мониторить, колонка Статистика отображает информацию о доступности сервисов и подробную информацию с графиками, скоростью ответа, аптаймом и информацией о SSL сертификате

Обзор бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Пример на моем сайте lsetc.ru

Давайте настроим наш мониторинг перед использованием, в правом верхнем углу жмем на аватар нашего пользователя и переходим в настройки

Настройка бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Настройка Uptime-Kuma

Во вкладке Общие выбираем свой Часовой пояс, если выбран не ваш, запрещаем Индексацию поисковым системам, она нам ни к чему, Основной URL можем нажать Авто-получение и жмем Сохранить

Настройка бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Настройка Uptime-Kuma

Вкладка Внешний вид настраиваем по вкусу, выставляем русский язык

Далее нас ждет пожалуй самая интересная вкладка с Уведомлениями, в которой мы можем указать с какой периодичностью до истечения срока SSL сертификата напоминать, по умолчанию стоит 7, 14, 21 дней до истечения сертификата, можно добавить любое свое значение, если вы обновляете руками SSL сертификаты, а не автоматически, очень удобная функция что бы не забывать.
Тут же создания уведомлений, доступно более 90 способов, я пользуюсь уведомлением в Telegram.


Уведомления в Telegram от Uptime-Kuma

Регистрация бота для уведомлений в Telegram от Uptime-Kuma

Нам нужно создать с вами бота, по желанию группу или канал, куда будут приходить уведомления, сложного в этом ни чего нет.
Для создания бота нам потребуется бот @BotFather

Настройка бота для бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Создание бота в Telegram для Uptime-Kuma

Жмем старт Старт или пишем /start, появиться сообщение с доступными командами, нас интересует команда /newbot, после этого нам будет предложено выбрать имя боту и уникальный Username который обязательно должен содержать в себе слово bot

Настройка бота для бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Username бота в моем случае будет @uptime_web_bot, а имя Uptime-Web-Site

Если вы все сделали правильно, то будет выдана полная ссылка на наш бот и token для использования Telegram API, данный token нужно хранить в секрете и ни кому не передавать, на данном этапе создание бота завершено.

Как узнать chat ID

Самый простой способ, написать любое сообщение нашему созданному боту от себя, а затем переслать это сообщение из нашего бота боту @get_id_bot, в ответ он пришлет нам chat id в строке Forwarded from, копируем его и сохраняем для использования в дальнейшем.

Настройка бота для бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Таким же образом можно узнать chat id для канала

Настраиваем Uptime-Kuma для уведомлений в Telegram

Для создания уведомлений в Telegram, переходим в настройки во вкладку Уведомления, нажимаем Создать уведомление, выбираем Тип уведомления Telegram, выбираем имя нашему способу оповещения, вводим Токен нашего бота который вы получили, вводим ID чата, нажимаем Проверка, если все сделано верно, от нашего бота придет тестовое сообщение, выбираем Использовать по умолчанию, если вы хотите что бы новые хосты по умолчанию присылали уведомления в Telegram и жмем Сохранить и еще раз Сохранить на странице Уведомления

Настройка бота для бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Настройка уведомления в Telegram Uptime-Kuma

Добавление своего сайта для мониторинга в Uptime-Kuma


Нажимаем в левом верхнем углу кнопку Новый монитор, я буду разбирать пример по мониторингу заголовка на сайте, выбираем HTTP(s) – Слово

Установка бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Можете выбрать просто HTTP(s), я буду мониторить загрузку страницы по слову, если мониторинг не увидит заголовок сайта, придет уведомление о проблеме от нашего бота в Telegram


Заполняем Имя для нашего хоста, в URL вставляем ссылку на наш сайт, во вкладку Слово вставляем заголовок с вашей страницы, или любой другой не измененный текст, я буду использовать заголовок статьи с своего сайта “Как установить Portainer Community Edition и начать пользоваться в две команды”

Установка бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Заголовок статьи я использую для примера, в вашем случае лучше использовать неизменные слова, адрес в шапке, о чем сайт или другую статичную и не изменную информацию на странице.


Выставляем время для Частоты опроса, минимальный предел у нее 20 секунд, тут выставляйте на свое усмотрение и значимости сервиса.

Далее у нас идут попытки, я выставляю 2 попытки, если за 2 попытки на сайте не будет обнаружен заголовок “Как установить Portainer Community Edition и начать пользоваться в две команды”, то в Telegram придет уведомление об этом ставим чек бокс на Certificate Expiry Notification для уведомлении о истечении SSL сертификата и не забываем проверить в верхнем правом углу что у нас включ переключатель на нашем способе оповещения и жмем Сохранить

Установка бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Пример настройки мониторинга моего сайта с помощью Uptime Kuma

Тут же можно настроить мониторинг, если вам нужно проверять сайт с авторизацией, в графе Аутентификация.


Проверка нашего мониторинга

Для проверки я скрою статью со своего сайта и посмотрим как на это отреагирует Uptime-Kuma

Установка бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Статус сразу же сменился после проверки по времени
Установка бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
И сразу же пришло уведомление в Telegram

Добавление Status Page в Uptime-Kuma

В Uptime-Kuma есть возможность вывода информации на status page, которой вы можете поделиться с клиентом или просматривать самому

Для ее создания в верхнем правом углу нажимаем на Страницы статуса, далее новая Страница статуса, даем ей имя и во второй графе Slug вписываем имя по которой она будет доступна

Установка бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Настройка Status page Uptime-Kuma

Добавляем описание, меняем логотип если нужно, есть поддержка пользовательских CSS стилей, жмем на область под Добавить монитор, выбираем наши сайты и сервисы которые мы добавили до этого в Uptime-Kuma и жмем Сохранить в левом нижнем углу

Установка бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Настройка status page в Uptime-Kuma

После сохранения у нас будет отдельная страница со статусами наших сервисов и сайтов, которая будет доступна по ссылке

http://ВАШ_IP_ИЛИ_ДОМЕН:3001/status/uptime
(после /status/ поставить то, что вы вписали в колонке Slug выше)
Установка бесплатного мониторинга сайтов с уведомлениями в Telegram с помощью Uptime-Kuma
Данные на странице статусов редактировать нельзя, можно только просматривать состояние сервисов

Обновление Uptime-Kuma

Для обновления переходим в директорию app/uptime-kuma/:

cd docker-app/uptime-kuma/
docker compose pull
docker compose up -d --force-recreate

Вывод

Готово, в данной заметке мы с вами научились разворачивать свой собственный, бесплатный мониторинг сайтов, сервисов, SSL сертификатов – Uptime-Kuma.

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

Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)

Оставьте комментарий