Сервер Alerta может принимать тревожные события, таким образом, она представляет из себя систему мониторинга. Также Alerta может интегрироваться с другими системами мониторинга, например, Zabbix.
Сервер баз данных
MongoDB
PostgreSQL
Alerta Server
Консоль управления
Загрузка
«>NGINX
Тестовая отправка тревоги
Настройка автозапуска
Alertad
Alerta Web Console
Пользователи Active Directory
Логирование
Обновление
Сервер
Веб-консоль
Установка сервера баз данных
Alerta позволяет использовать разные системы управления базами данных. Мы рассмотрим варианты установки с MongoDB и PostgreSQL.
Перед началом установки обновим списки пакетов:
apt-get update
MongoDB
Вводим следующую команду:
apt-get install mongodb
Разрешаем автозапуск сервиса и запускаем его:
systemctl enable mongodb
systemctl start mongodb
PostgreSQL
Установку выполняем командой:
apt-get install postgresql postgresql-contrib
Стартуем postgresql с включением автозапуска:
systemctl enable postgresql —now
Подключимся к командной оболочке postgresql:
su postgres -c "psql -Upostgres template1"
Создадим пользователя:
=# CREATE USER alerta WITH ENCRYPTED PASSWORD 'alerta123';
* в данном примере мы создадим пользователя alerta с паролем alerta123.
Создадим базу данных:
=# CREATE DATABASE alerta WITH ENCODING='UTF-8';
* данной командой мы создадим базу alerta.
Дадим полные права пользователю alerta на базу alerta:
=# GRANT all ON DATABASE alerta TO alerta;
Отключаемся от базы:
=# q
Открываем на редактирование файл pg_hba.conf. Он находится в одной и той же директории с конфигом postgresql. Чтобы узнать его расположение, вводим команду:
ps aux | grep postgres | grep — -D
Мы увидим что-то на подобие:
postgres 3356 0.0 0.4 318768 27312 ? S 09:47 0:00 /usr/lib/postgresql/10/bin/postgres -D /var/lib/postgresql/10/main -c config_file=/etc/postgresql/10/main/postgresql.conf
Нас интересует строка с указанием местоположения файла postgresql.conf — в нашем примере, /etc/postgresql/10/main. Теперь, открываем в данной директории файл pg_hba.conf:
vi /etc/postgresql/10/main/pg_hba.conf
Находим строку:
local all all peer
… и выше нее добавляем:
local alerta alerta md5
* в данном примере мы добавили право пользователю alerta подключаться к базе alerta с локального сервера. При подключении пользователь должен ввести пароль.
Перезапускаем СУБД:
systemctl restart postgresql
Пробуем подключиться к базе alerta:
psql -d alerta -Ualerta -W
Вводим пароль (в нашем примере, alerta123) — мы должны увидеть командную оболочку SQL:
alerta=>
Выходим из sql-оболочки:
=> q
Установка Alerta Server
Ставим менеджер python пакетов pip:
apt-get install python3-pip
Обновляем его (устанавливается не самая последняя версия):
pip3 install —upgrade pip
Устанавливаем сервер алертов:
pip3 install alerta-server
Если мы хотим работать с базой PostgreSQL, то также установим пакеты:
apt-get install libpq-dev python-psycopg2
pip3 install psycopg2
Создаем конфигурационный файл со следующим содержимым:
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*/?.*' # => http(s)://*.local.alerta.io:<port>
]
* я у себя буду использовать домен alerta.local для работы с алертой — в продуктивной среде домен нужно заменить другим.
Если мы хотим использовать СУБД PostgreSQL, то также добавим 2 строки:
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-сессией. Проверяем, что сервер запустился и слушает на порту 8080:
ss -tunlp | grep 8080
Должны увидеть:
tcp LISTEN 0 128 127.0.0.1:8080 *:* users:(("alertad",pid=7729,fd=4))
Установка веб-консоли
Для использования веб-консоли необходимо сначала ее загрузить и распаковать архив, а также установить http-прокси (мы будем использовать NGINX).
Загрузка и распаковка
Создаем каталог для консоли:
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
Вносим изменение в настройку портала:
vi /var/www/alerta/config.json
{"endpoint": "http://alerta.local:8081"}
* в данном примере, мы поменяли localhost на alerta.local (домен, который я использую у себя) и порт 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 на тот, что будет использоваться у вас.
Разрешаем автозапуск nginx и стартуем сервис:
systemctl enable nginx
systemctl restart nginx
Снова запускаем веб-консоль алерты:
cd /var/www/alerta && python3 -m http.server 8000
Открываем браузер и переходим на нашу веб страницу: http://alerta.local (доменное имя должно быть зарегистрировано в DNS или прописано в локальном файле hosts). Должна открыться консоль Alerta:

Тестовая отправка тревоги
Устанавливаем консольную команду alerta:
pip3 install alerta
Отправляем тревогу:
alerta send -r server01 -e NotPing -E Production -S Website -s major -t "Server01 is down." -v ERROR
В нашей консоли появится сообщение:

Автозапуск
В данной инструкции мы запускали вручную сервисы alerta и веб-сервис python. Теперь необходимо автоматизировать эти запуски.
Alertad
Создаем сервис systemd:
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
Применяем изменения в systemd:
systemctl daemon-reload
Разрешаем автозапуск сервиса и стартуем его:
systemctl enable alertad
systemctl start alertad
Alerta Web Console
Создаем сервис systemd:
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
Применяем изменения в systemd:
systemctl daemon-reload
Разрешаем автозапуск сервиса и стартуем его:
systemctl enable alertaweb
systemctl start alertaweb
Аутентификация через Active Directory
Устанавливаем компоненты, необходимые для установки python-ldap:
apt-get install libpq-dev python-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev
… после сам python-ldap:
pip3 install python-ldap
Открываем конфигруационный файл алерты:
vi /etc/alertad.conf
Добавляем строки для настройки LDAP:
AUTH_REQUIRED = True
AUTH_PROVIDER = 'ldap'
ADMIN_USERS = ['mosk@dmosk.local']
LDAP_URL = 'ldap://ldap-server:389'
LDAP_DOMAINS = {
'dmosk.local': 'cn=%s,ou=Пользователи,dc=dmosk,dc=local'
}
LDAP_DOMAINS_BASEDN = {
'dmosk.local': 'dc=dmosk,dc=local'
}
* где: AUTH_REQUIRED — требовать или нет аутентификацию (по умолчанию, алерта разрешает неконтролируемый вход); AUTH_PROVIDER — указыввает на механизм проверки подлинности; ADMIN_USERS — перечисляет список пользователей с правами администратора; LDAP_URL — сервер AD DS; LDAP_DOMAINS — фильтр для поиска учетных записей; LDAP_DOMAINS_BASEDN — корень домена. В данном примере мы требуем аутентификацию; подключаемся к серверу ldap-server; ищем пользователей по cn, которая соответствует логину в организационном юните Пользователи; в моем случае используется домен dmosk.local.
* стоит обратить внимание, что Alerta требует в качестве логина cn из AD, а также в качестве лонинов требуются email — таким образом, имена учетных записей в AD должны быть написаны латиницей.
Перезапускаем службу, созданную нами для алерты:
systemctl restart alertad
Готово. Чтобы войти в систему необходимо в качестве логина использоваться email — <логин>@<домен>, например, master@dmosk.local.
Логирование
Для анализа ошибок и предупреждений в работе alerta можно включить режим отладки и записать результат в log-файл.
Для этого открываем конфигурационный файл:
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 и Web Console.
Alerta Server
Обновление серверной части выполняется с помощью менеджера pip. Сначала можно обновить его самого:
pip3 install —upgrade pip
После можно обновить алерту:
pip3 install —upgrade alerta-server
Перезапускаем службу:
systemctl restart alertad
Веб консоль
Перейдя по ссылке https://github.com/alerta/alerta-webui/releases/latest/ можно получить информацию о последней версии веб-портала для алерты. Если наша версия ниже и мы хотим ее обновить, сначала скачаем архив на сервере. Если мы ранее уже ставили обновление, может остаться ранее загруженный файл — удалим его:
rm alerta-webui.tar.gz
Теперь загрузим новый архив:
wget https://github.com/alerta/alerta-webui/releases/latest/download/alerta-webui.tar.gz
Обязательно сохраним текущий портал, перенеся его в другой каталог, например /backup:
mkdir -p /backup/alerta_web
mv /var/www/alerta /backup/alerta_web/alerta_old_`date +%Y-%m-%d`
После создаем новый каталог alerta в /var/www/:
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

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