Установка и настройка 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.