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

Uptime Kuma — собственный сервис мониторинга

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

Мы установим Uptime Kuma — селфхостед опен-сорс решение для мониторинга серверов и сервисов.

Возможности Uptime Kuma

  • Мониторинг HTTP(s) / TCP / Ключевых слов в HTTP(s) / Ping / DNS Record / Push / Steam Game Server / Docker контейнеров
  • Мониторинг даты окончания SSL сертификата
  • Отправка уведомлений в Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP) и более 90 других сервисов
  • Минимальный интервал для опроса сервисов 20 секунд
  • Двухфакторная аутентификация (2FA)
  • Поддержка proxy
  • Мультиязычность
  • Отдельная страница статуса сервисов с привязкой к доменному имени

Установка Uptime Kuma

Uptime Kuma устанавливается в виде контейнера, а для этого нам потребуется docker. Подробную инструкцию о том как установить docker + docker-compose вы найдете в данной статье.

Перед установкой создадим директорию для uptime kuma в которой у нас будет находится файл docker-compose.yml и директория data для хранения файлов конфигурации и данных Uptime Kuma.

mkdir kuma
cd kuma
mkdir data
touch docker-compose.yml

Откроем файл docker-compose.yml и внесем в него следующие данные.

nano docker-compose.yml
---
version: "3.1"

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    volumes:
      - /home/kuma/data:/app/data
    ports:
      - 3001:3001
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true

Путь к директории data вам необходимо заменить с /home/kuma/data на ваш собственный.

Сохраняем файл и выполняем команду

docker-compose up -d

После того как установка будет завершена, для доступа к панели управления будет доступен по 3001 пору http://serverip:3001

Первое что нужно будет сделать — создать пользователя и назначить ему пароль

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

Для добавления хоста нажимаем на кнопку Новый мониторинг.

Выбираем подходящий тип мониторинга, даем название мониторингу и указываем URL либо хост либо IP, в зависимости от того какой тип мониторинга вы выбрали. В данном примере мы рассмотрим добавление мониторинга HTTP(s), Ping и мониторинг доступности порта на сервере.

Мониторинг HTTP(s)

В качестве примера для мониторинга HTTP(s) зададим домен google.com. Интервал опроса сайта укажем 60 секунд.

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

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

Мониторинг Ping

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

Мониторинг TCP port

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

Теги хостов

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

После того как вы добавите теги, они будут отображаться на странице хостов.

Настройка уведомлений

Для получения уведомлений от Uptime Kuma предусмотрено порядка 90 разных сервисов в которые могут отправляться уведомления. Среди них такие платформы как Telegrad, Discord, Slack, Signal, Microsoft Teams и другие.

Настройка очень простая, к примеру, для настройки уведомлений в telegram, достаточно получить токен у BotFather и указать ID чата, канала либо группы в которую будут отправляться уведомления.

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

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

Возможно установить сразу несколько уведомлений.

В случаи проблемы с хостом вы получите примерно такое сообщение.

Статистика

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

Дополнительно можно создать отдельную страницу статуса хостов на которую будут выводиться выбранные хосты. Для создания страницы статусов, нажмите на кнопку в правом верхнем углу Страницы статусов и создадим отдельную страницу для статуса DNS серверов.

В левом боковом меню вы можете указать название страницы статуса, указать какая тема будет использоваться, тёмная либо светлая. Для того чтобы добавить нужные хосты, нажимаем Добавить группу и выбираем те хосты которые вы хотите добавить на данную страницу. Логотип который будет выводиться рядом с названием можно изменить, необходимо загрузить ваше лого или фото.

После сохранения вы будете переадресованы на созданную страницу статусов и url у нее будет http://serverip:3001/status/dns

Вы также можете создать инцидент, сообщение о проведении работ либо время решения той либо иной проблемы. Доступно несколько вариантов оформления.

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