2026-09-19

Установка и настройка Alerta на Ubuntu: сервер алертов и веб-консоль

Alerta — сервер мониторинга, который принимает тревожные события от разных систем и собирает их в единую консоль. Он умеет интегрироваться с Zabbix, Prometheus, Nagios и другими источниками, поддерживает дедупликацию, группировку, эскалации и аутентификацию через LDAP/Active Directory.

В этой инструкции разберём установку Alerta Server (актуальная версия — 9.1.0), веб-консоли (8.7.1), настройку PostgreSQL, автозапуск и аутентификацию через AD.


Установка сервера баз данных

Alerta поддерживает MongoDB и PostgreSQL. Рассмотрим оба варианта.

apt-get update

PostgreSQL (рекомендуется)

apt-get install postgresql postgresql-contrib
systemctl enable postgresql --now

Подключаемся к консоли:

su postgres -c "psql -Upostgres template1"

Создаём пользователя:

=# CREATE USER alerta WITH ENCRYPTED PASSWORD 'alerta123';

Пример: пользователь alerta с паролем alerta123.

Создаём базу:

=# CREATE DATABASE alerta WITH ENCODING='UTF-8';
=# GRANT all ON DATABASE alerta TO alerta;
=# q

Правим pg_hba.conf (каталог ищем по строке запуска postgres):

ps aux | grep postgres | grep -- -D
postgres 3356 ... /usr/lib/postgresql/16/bin/postgres -D /var/lib/postgresql/16/main -c config_file=/etc/postgresql/16/main/postgresql.conf

Нас интересует путь до postgresql.conf — в примере /etc/postgresql/16/main.

vi /etc/postgresql/16/main/pg_hba.conf

Находим строку:

local   all       all            peer

и выше неё добавляем:

local   alerta    alerta         md5

Разрешаем пользователю alerta подключаться к базе alerta локально с паролем.

systemctl restart postgresql
psql -d alerta -Ualerta -W

После ввода пароля увидим приглашение alerta=>. Выходим:

alerta=> q

MongoDB

В репозиториях Ubuntu пакета mongodb больше нет — ставим официальный mongodb-org по инструкции MongoDB, после чего:

systemctl enable mongod --now

Установка Alerta Server

apt-get install python3-pip
pip3 install --upgrade pip

Устанавливаем сервер:

pip3 install alerta-server

Для PostgreSQL дополнительно:

apt-get install libpq-dev python3-psycopg2
pip3 install psycopg2-binary

Создаём конфигурацию:

vi /etc/alertad.conf
CORS_ORIGINS = [
    'http://alerta.local',
    'http://alerta.local:8000',
    'http://alerta.local:8080',
    'http://alerta.local:8081',
    r'https?://w*.?local.alerta.io:?d*/?.*'
]

В примере используется домен alerta.local — в продакшене замените на свой.

Для PostgreSQL добавляем:

DATABASE_URL = 'postgresql://alerta:alerta123@localhost'
DATABASE_NAME = 'alerta'

Запускаем:

alertad run --port 8080
Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)

Проверяем во второй SSH-сессии:

ss -tunlp | grep 8080
tcp LISTEN 0 128 127.0.0.1:8080 *:* users:(("alertad",pid=7729,fd=4))

Установка веб-консоли

Загрузка и распаковка

mkdir -p /var/www/alerta
wget https://github.com/alerta/alerta-webui/releases/latest/download/alerta-webui.tar.gz
tar zxvf alerta-webui.tar.gz -C /var/www/alerta --strip-components 1

Настройка NGINX

Правим endpoint консоли:

vi /var/www/alerta/config.json
{"endpoint": "http://alerta.local:8081"}

Меняем localhost на свой домен и порт 8080 на 8081.

apt-get install nginx
vi /etc/nginx/conf.d/alerta.conf
server {
    listen 80;
    server_name alerta.local;

    location / {
        proxy_pass http://127.0.0.1:8000/;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
    rewrite /alerts.* / permanent;
}

server {
    listen 8081;
    server_name alerta.local;

    location / {
        proxy_pass http://127.0.0.1:8080/;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}

Замените alerta.local на своё имя.

systemctl enable nginx
systemctl restart nginx

Запускаем веб-консоль:

cd /var/www/alerta && python3 -m http.server 8000

Открываем http://alerta.local (имя должно разрешаться в DNS или быть в hosts) — увидим консоль Alerta.


Тестовая отправка тревоги

pip3 install alerta
alerta send -r server01 -e NotPing -E Production -S Website -s major -t "Server01 is down." -v ERROR

Событие появится в консоли.


Автозапуск

Alertad

vi /etc/systemd/system/alertad.service
[Unit]
Description=Alerta Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/alertad run --port 8080
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable alertad
systemctl start alertad

Веб-консоль

vi /etc/systemd/system/alertaweb.service
[Unit]
Description=Alerta Web Service
After=network.target

[Service]
Type=simple
WorkingDirectory=/var/www/alerta
ExecStart=/usr/bin/python3 -m http.server 8000
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable alertaweb
systemctl start alertaweb

Аутентификация через Active Directory

Ставим зависимости для python-ldap:

apt-get install libpq-dev python3-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev
pip3 install python-ldap
vi /etc/alertad.conf
AUTH_REQUIRED = True
AUTH_PROVIDER = 'ldap'
ADMIN_USERS = ['mosk@imaxis.local']
LDAP_URL = 'ldap://ldap-server:389'
LDAP_DOMAINS = {
    'imaxis.local': 'cn=%s,ou=Пользователи,dc=imaxis,dc=local'
}
LDAP_DOMAINS_BASEDN = {
    'imaxis.local': 'dc=imaxis,dc=local'
}

где:

  • AUTH_REQUIRED — требовать аутентификацию (по умолчанию Alerta разрешает свободный вход);
  • AUTH_PROVIDER — механизм проверки подлинности;
  • ADMIN_USERS — пользователи с правами администратора;
  • LDAP_URL — сервер AD DS;
  • LDAP_DOMAINS — фильтр поиска учётных записей;
  • LDAP_DOMAINS_BASEDN — корень домена.

В примере требуется аутентификация, подключение к ldap-server, поиск по cn (логин) в OU «Пользователи» домена imaxis.local.

systemctl restart alertad

Для входа используйте email вида <логин>@<домен>, например master@imaxis.local. Учтите: Alerta в качестве логина берёт cn из AD, а также требует email — имена учётных записей должны быть латиницей.


Логирование

vi /etc/alertad.conf
LOG_HANDLERS = ['console', 'file']
LOG_FILE = '/var/log/alertad.log'
LOG_MAX_BYTES = 5*1024*1024
LOG_BACKUP_COUNT = 2
LOG_FORMAT = 'verbose'
systemctl restart alertad
tail -f /var/log/alertad.log

Обновление

Alerta Server

pip3 install --upgrade pip
pip3 install --upgrade alerta-server
systemctl restart alertad

Веб-консоль

Информацию о последней версии смотрим на странице релизов. Скачиваем свежий архив (старый при наличии удаляем):

rm alerta-webui.tar.gz
wget https://github.com/alerta/alerta-webui/releases/latest/download/alerta-webui.tar.gz

Сохраняем текущий портал:

mkdir -p /backup/alerta_web
mv /var/www/alerta /backup/alerta_web/alerta_old_`date +%Y-%m-%d`
mkdir /var/www/alerta
tar zxvf alerta-webui.tar.gz -C /var/www/alerta --strip-components 1
cp /backup/alerta_web/alerta_old_`date +%Y-%m-%d`/config.json /var/www/alerta/
systemctl restart alertaweb

Тонкости и подводные камни

  • Пакет mongodb убран из Ubuntu — используйте mongodb-org из официального репозитория MongoDB.
  • python-psycopg2 не существует — для Python 3 это python3-psycopg2 и psycopg2-binary из pip.
  • Порядок строк в pg_hba.conf — правило md5 для alerta должно стоять выше peer, иначе оно не сработает.
  • CORS и endpoint — домен в CORS_ORIGINS и config.json должен совпадать с реальным, иначе консоль не увидит API.
  • Не запускайте консоль без проксиpython3 -m http.server отдаёт статику без авторизации; прячьте за NGINX.
  • Аутентификация AD — имена учётных записей латиницей, вход по email.

Шпаргалка

apt-get install python3-pip nginx
pip3 install alerta-server
vi /etc/alertad.conf          # DATABASE_URL, CORS_ORIGINS
alertad run --port 8080
mkdir -p /var/www/alerta
wget https://github.com/alerta/alerta-webui/releases/latest/download/alerta-webui.tar.gz
tar zxvf alerta-webui.tar.gz -C /var/www/alerta --strip-components 1
systemctl enable alertad alertaweb nginx --now

Проверено на: Ubuntu 22.04/24.04/26.04 + Alerta Server 9.1.0, WebUI 8.7.1.
Дата: Сентябрь 2026.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *