Uptime Kuma (или просто Kuma) – это инструмент мониторинга с открытым исходным кодом, используемый для мониторинга сервисов по протоколам HTTP, HTTPS, DNS и другим. Uptime Kuma предлагает множество возможностей, таких как многоязычность, несколько страниц состояния, поддержка прокси и т.д.
В этой статье мы настроим Uptime Kuma с Apache в качестве обратного прокси. Установка Uptime Kuma на Debian 12 с Apache в качестве обратного прокси займёт не более 20 минут.
Шаг 1. Обновление системы
Каждая новая установка ОС требует обновления системных пакетов до последних доступных версий.
sudo apt-get update -y && sudo apt-get upgrade -y
Шаг 2. Установка веб-сервера Apache
Для установки Apache выполните следующую команду:
sudo apt install apache2 -y
После установки Apache можно запустить и включить службу следующим образом:
sudo systemctl enable apache2 && sudo systemctl start apache2
Проверьте, работает ли служба:
sudo systemctl status apache2
Вы должны получить следующий результат:
root@host:~# sudo systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; preset: enabled) Active: active (running) since Wed 2023-10-05 06:26:23 CDT; 1 day 5h ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 661 (apache2) Tasks: 10 (limit: 4644) Memory: 29.6M CPU: 9.372s CGroup: /system.slice/apache2.service
Шаг 3. Установка NodeJS
Для установки NodeJS выполните следующую команду:
sudo apt install nodejs -y
Для проверки установленной версии NodeJS выполните следующую команду:
node -v root@host:~# node -v v18.13.0
После успешной установки NodeJS нам необходимо установить также NPM:
sudo apt install npm -y
Для проверки установленной версии NPM выполните следующую команду:
npm -v root@host:~# npm -v 9.2.0
Шаг 4. Установка Uptime Kuma
Теперь, когда все необходимое программное обеспечение установлено, можно приступать к установке самого Uptime Kuma. Для начала необходимо клонировать репозиторий Uptime Kuma с GitHub:
cd /opt git clone https://github.com/louislam/uptime-kuma.git
Для клонирования репозитория в каталог /opt необходимо дать некоторое время:
root@host:/opt# git clone https://github.com/louislam/uptime-kuma.git Cloning into 'uptime-kuma'... remote: Enumerating objects: 28276, done. remote: Counting objects: 100% (5082/5082), done. remote: Compressing objects: 100% (446/446), done. remote: Total 28276 (delta 4745), reused 4771 (delta 4619), pack-reused 23194 Receiving objects: 100% (28276/28276), 21.69 MiB | 5.30 MiB/s, done. Resolving deltas: 100% (21463/21463), done.
После загрузки перейдите в каталог uptime-kuma и установите pm2 production process manager:
sudo npm install pm2 -g
После этого выполните следующую команду для установки:
npm run setup
После установки запустите сервер Uptime Kuma с помощью следующей команды:
pm2 start server/server.js --name uptime-kuma
После запуска вы должны получить следующий результат:
[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2 [PM2] PM2 Successfully daemonized [PM2] Starting /opt/uptime-kuma/server/server.js in fork_mode (1 instance) [PM2] Done. │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ 0 │ uptime-kuma │ default │ 1.23.2 │ fork │ 17161 │ 0s │ 0 │ online │ 0% │ 42.3mb│ root
После этого необходимо включить запуск службы pm2 при загрузке системы следующей командой:
pm2 startup
Вы должны получить следующий результат:
[PM2] Writing init configuration in /etc/systemd/system/pm2-root.service [PM2] Making script booting at startup... [PM2] [-] Executing: systemctl enable pm2-root... Created symlink /etc/systemd/system/multi-user.target.wants/pm2-root.service → /etc/systemd/system/pm2-root.service. [PM2] [v] Command successfully executed. +---------------------------------------+ [PM2] Freeze a process list on reboot via: pm2 save [PM2] Remove init script via: pm2 unstartup systemd
После установки вы можете получить доступ к экземпляру Uptime Kuma по адресу http://YourServerIPAddress:3001. Следует помнить, что для доступа к сервису необходимо добавить в конце URL номер порта 3001.
Шаг 5. Настройка Apache в качестве обратного прокси
Несмотря на то, что Uptime Kuma установлен, неудобно использовать его номер порта для доступа к сервису. Чтобы решить эту проблему, мы будем использовать Apache в качестве фронтенда, который будет находиться между посетителем и экземпляром Uptime Kuma. Это также позволит повысить безопасность экземпляра Uptime Kuma за счет ограничения доступа с помощью Apache.
Апач можно установить с помощью команды apt install apache2, если он у вас еще не установлен. Войдите в каталог конфигурации Apache и создайте файл конфигурации для экземпляра Uptime Kuma.
cd /etc/apache2/sites-available/ touch kuma.conf
Откройте файл, вставьте следующие строки кода, сохраните файл и закройте его. Обязательно измените yourdomain.com на доменное имя, которое вы планируете использовать для доступа к экземпляру Kuma.
<VirtualHost *:80> ServerName yourdomain.com DocumentRoot /var/www/html/ ProxyPass / http://localhost:3001/ RewriteEngine on RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteCond %{HTTP:Connection} upgrade [NC] RewriteRule ^/?(.*) "ws://localhost:3001/$1" [P,L] ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Включите конфигурацию Apache для Kuma и включите модули Apache rewrite, proxy и proxy_http.
a2dissite 000-default.conf sudo a2enmod rewrite sudo a2enmod proxy sudo a2enmod proxy_http sudo a2ensite kuma.conf
Проверьте синтаксис:
apachectl -t
Вы должны получить следующий результат:
root@vps:~# apachectl -t Syntax OK
Если с синтаксисом все в порядке, перезапустите службу Apache.
systemctl restart apache2
Шаг 6. Завершение установки Uptime Kuma
Если все настроено правильно, вы сможете получить доступ к Uptime Kuma по адресу http://YourDomainName.
Введите имя пользователя и надежный пароль.
После нажатия на кнопку Create вы будете перенаправлены на панель управления Uptime-Kuma.
Комментарии (0)