Как установить Uptime Kuma на Debian 12

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.

Зарубин Иван Эксперт по Linux и Windows

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

Вдохновлен www.rosehosting.com

Похожие статьи

Комментарии (0)