Установка и запуск сервера Alerta на Ubuntu

Обновлено Обновлено: Опубликовано Опубликовано:

Сервер Alerta может принимать тревожные события, таким образом, она представляет из себя систему мониторинга. Также Alerta может интегрироваться с другими системами мониторинга, например, Zabbix.

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

Вводим следующую команду:

apt-get install mongodb

Разрешаем автозапуск сервиса и запускаем его:

systemctl enable mongodb

systemctl start mongodb

Установка Alerta Server

Ставим менеджер python пакетов pip:

apt-get install python3-pip

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

pip3 install alerta-server

Создаем конфигурационный файл со следующим содержимым:

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>
]

И запускаем его:

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))

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

Создаем каталог для консоли:

mkdir -p /var/www/alerta

Скачиваем консоль:

wget -O alerta-web.tgz https://github.com/alerta/angular-alerta-webui/tarball/master

Распаковываем ее:

tar zxvf alerta-web.tgz -C /var/www/alerta --strip-components 1

Вносим изменение в настройку портала:

vi /var/www/alerta/app/config.json

{"endpoint": "http://alerta.local:8081"}

* в данном примере, мы поменяли localhost на alerta.local (домен, который я использую у себя) и порт 8080 на 8081.

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

cd /var/www/alerta/app

python3 -m http.server 8000

Установка и настройка веб-сервера NGINX

Устанавливаем пакет командой:

apt 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;
        }
}

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;
        }
}

Разрешаем автозапуск nginx и стартуем сервис:

systemctl enable nginx

systemctl start nginx

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

Внешний вид веб-консоли Alerta

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

Устанавливаем консольную команду alerta:

pip3 install alerta

Отправляем тревогу:

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

В нашей консоли появится сообщение:

Отправленная тревога в веб-консоли Alerta

Автозапуск

В данной инструкции мы запускали вручную сервисы 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/app
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

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 — требовать или нет аутентификацию (по умолчанию, алерта разрешает неконтролируемый вход); 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.

# Серверы # Ubuntu
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет