Сегодня мы рассмотрим как установить свой собственный сервис мониторинга доступности сайтов и сервисов с уведомлением о изменении статуса не только на почту но и в мессенджеры.
Мы установим 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
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-5-1024x792.png)
Первое что нужно будет сделать — создать пользователя и назначить ему пароль
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-6-1024x448.png)
После входа в панель управления мы можем приступить к добавлению хостов для мониторинга.
Для добавления хоста нажимаем на кнопку Новый мониторинг.
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-7-1024x675.png)
Выбираем подходящий тип мониторинга, даем название мониторингу и указываем URL либо хост либо IP, в зависимости от того какой тип мониторинга вы выбрали. В данном примере мы рассмотрим добавление мониторинга HTTP(s), Ping и мониторинг доступности порта на сервере.
Мониторинг HTTP(s)
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-8-1024x716.png)
В качестве примера для мониторинга HTTP(s) зададим домен google.com. Интервал опроса сайта укажем 60 секунд.
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-9-1024x442.png)
После того как мы нажмем сохранить мы попадем на страницу статистики по данному мониторингу и через время будет доступна более детальная статистика.
В статистке доступности помимо времени ответа и аптайма указывается время через которое сертификат будет недействителен.
Мониторинг Ping
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-10-1024x959.png)
В мониторинге типа Ping указывается хост который необходимо пинговать и интервал запросов.
Мониторинг TCP port
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-11-1024x976.png)
Данный тип мониторинга будет полезен для отслеживания доступности конкретного порта сервера. Как пример, чтобы понимать, что определенный сервис перестал работать.
Теги хостов
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-14.png)
Каждому из хостов можно назначить определенный тег либо несколько тегов. Каждому тегу можно указать отдельный цвет.
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-15-1024x646.png)
После того как вы добавите теги, они будут отображаться на странице хостов.
Настройка уведомлений
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-17.png)
Для получения уведомлений от Uptime Kuma предусмотрено порядка 90 разных сервисов в которые могут отправляться уведомления. Среди них такие платформы как Telegrad, Discord, Slack, Signal, Microsoft Teams и другие.
Настройка очень простая, к примеру, для настройки уведомлений в telegram, достаточно получить токен у BotFather и указать ID чата, канала либо группы в которую будут отправляться уведомления.
Отдельно реализовано получение ID чата, достаточно отправить сообщение боту и нажать на кнопку Авто-получение и ID вашего чата будет добавлено в данное поле. После внесения всех данных, нажимаем на кнопку Проверить и если вы получили сообщение в телеграм то уведомление настроено успешно.
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-18.png)
Созданное уведомление вы можете сразу же применить ко всем текущим хостам и установить его уведомлением которое автоматически будет применяться ко всем хостам которые будут добавлены в будущем.
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-19.png)
Возможно установить сразу несколько уведомлений.
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-20.png)
В случаи проблемы с хостом вы получите примерно такое сообщение.
Статистика
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-12-1024x294.png)
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-13-1024x511.png)
Статистика всех хостов который добавлены в мониторинг доступна на главной странице панели управления.
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-21-1024x206.png)
Дополнительно можно создать отдельную страницу статуса хостов на которую будут выводиться выбранные хосты. Для создания страницы статусов, нажмите на кнопку в правом верхнем углу Страницы статусов и создадим отдельную страницу для статуса DNS серверов.
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-22-1024x645.png)
В левом боковом меню вы можете указать название страницы статуса, указать какая тема будет использоваться, тёмная либо светлая. Для того чтобы добавить нужные хосты, нажимаем Добавить группу и выбираем те хосты которые вы хотите добавить на данную страницу. Логотип который будет выводиться рядом с названием можно изменить, необходимо загрузить ваше лого или фото.
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-23-1024x489.png)
После сохранения вы будете переадресованы на созданную страницу статусов и url у нее будет http://serverip:3001/status/dns
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-25-1024x362.png)
Вы также можете создать инцидент, сообщение о проведении работ либо время решения той либо иной проблемы. Доступно несколько вариантов оформления.
![](https://blog.unixhost.pro/wp-content/uploads/2022/09/image-26-1024x660.png)
Добавленный инцидент будет прикреплен в самом верху страницы.