Сервер Alerta может принимать тревожные события, таким образом, она представляет из себя систему мониторинга. Также Alerta может интегрироваться с другими системами мониторинга, например, Zabbix.
Alerta позволяет использовать разные системы управления базами данных. Мы рассмотрим варианты установки с MongoDB и PostgreSQL.
Перед началом установки обновим списки пакетов:
apt-get update
Вводим следующую команду:
apt-get install mongodb
Разрешаем автозапуск сервиса и запускаем его:
systemctl enable mongodb
systemctl start mongodb
Установку выполняем командой:
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;
Отключаемся от базы:
Открываем на редактирование файл 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:
Выходим из sql-оболочки:
Ставим менеджер 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:[email protected]’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
Вносим изменение в настройку портала:
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. Теперь необходимо автоматизировать эти запуски.
Создаем сервис systemd:
vi /etc/systemd/system/alertad.service
[Unit]Description=Alerta ServiceAfter=network.target
[Service]Type=simpleExecStart=/usr/local/bin/alertad run –port 8080ExecReload=/bin/kill -HUP $MAINPIDRestart=on-failure
[Install]WantedBy=multi-user.target
Применяем изменения в systemd:
systemctl daemon-reload
Разрешаем автозапуск сервиса и стартуем его:
systemctl enable alertad
systemctl start alertad
vi /etc/systemd/system/alertaweb.service
[Unit]Description=Alerta Web ServiceAfter=network.target
[Service]Type=simpleWorkingDirectory=/var/www/alertaExecStart=/usr/bin/python3 -m http.server 8000ExecReload=/bin/kill -HUP $MAINPIDRestart=on-failure
systemctl enable alertaweb
systemctl start alertaweb
Устанавливаем компоненты, необходимые для установки 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
Открываем конфигруационный файл алерты:
Добавляем строки для настройки LDAP:
AUTH_REQUIRED = TrueAUTH_PROVIDER = ‘ldap’ADMIN_USERS = [‘[email protected]’]
LDAP_URL = ‘ldap://ldap-server:389’LDAP_DOMAINS = { ‘admins24.local’: ‘cn=%s,ou=Пользователи,dc=admins24,dc=local’}LDAP_DOMAINS_BASEDN = { ‘admins24.local’: ‘dc=admins24,dc=local’}
* где: AUTH_REQUIRED — требовать или нет аутентификацию (по умолчанию, алерта разрешает неконтролируемый вход); AUTH_PROVIDER — указыввает на механизм проверки подлинности; ADMIN_USERS — перечисляет список пользователей с правами администратора; LDAP_URL — сервер AD DS; LDAP_DOMAINS — фильтр для поиска учетных записей; LDAP_DOMAINS_BASEDN — корень домена. В данном примере мы требуем аутентификацию; подключаемся к серверу ldap-server; ищем пользователей по cn, которая соответствует логину в организационном юните Пользователи; в моем случае используется домен admins24.local.* стоит обратить внимание, что Alerta требует в качестве логина cn из AD, а также в качестве лонинов требуются email — таким образом, имена учетных записей в AD должны быть написаны латиницей.
Перезапускаем службу, созданную нами для алерты:
systemctl restart alertad
Готово. Чтобы войти в систему необходимо в качестве логина использоваться email — <логин>@<домен>, например, [email protected]
Для анализа ошибок и предупреждений в работе alerta можно включить режим отладки и записать результат в log-файл.
Для этого открываем конфигурационный файл:
Добавляем:
LOG_HANDLERS = [‘console’, ‘file’]LOG_FILE = ‘/var/log/alertad.log’LOG_MAX_BYTES = 5*1024*1024LOG_BACKUP_COUNT = 2LOG_FORMAT = ‘verbose’
Перезапускаем наш сервис:
Лог файл можно читать командой:
tail -f /var/log/alertad.log
Рассмотрим процесс обновления Alerta Server и Web Console.
Обновление серверной части выполняется с помощью менеджера pip. Сначала можно обновить его самого:
После можно обновить алерту:
pip3 install –upgrade alerta-server
Перезапускаем службу:
Перейдя по ссылке https://github.com/alerta/alerta-webui/releases/latest/ можно получить информацию о последней версии веб-портала для алерты. Если наша версия ниже и мы хотим ее обновить, сначала скачаем архив на сервере. Если мы ранее уже ставили обновление, может остаться ранее загруженный файл — удалим его:
rm 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
И распаковываем в него скачанный архив:
Возвращаем из старого каталога конфигурационный файл:
cp /backup/alerta_web/alerta_old_`date +%Y-%m-%d`/config.json /var/www/alerta/
systemctl restart alertaweb
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies