Сервер Alerta может принимать тревожные события, таким образом, она представляет из себя систему мониторинга. Также Alerta может интегрироваться с другими системами мониторинга, например, Zabbix.
Сервер баз данных
MongoDB
PostgreSQL
Alerta Server
Консоль управления
Загрузка
NGINX
Тестовая отправка тревоги
Настройка автозапуска
Alertad
Alerta Web Console
Пользователи Active Directory
Логирование
Обновление
Сервер
Веб-консоль
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;
Отключаемся от базы:
=# 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
Ставим менеджер 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
Вносим изменение в настройку портала:
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 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
Создаем сервис 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
Устанавливаем компоненты, необходимые для установки 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@remontka.local’]
LDAP_URL = ‘ldap://ldap-server:389’
LDAP_DOMAINS = {
‘remontka.local’: ‘cn=%s,ou=Пользователи,dc=remontka,dc=local’
}
LDAP_DOMAINS_BASEDN = {
‘remontka.local’: ‘dc=remontka,dc=local’
}
* где: AUTH_REQUIRED — требовать или нет аутентификацию (по умолчанию, алерта разрешает неконтролируемый вход); AUTH_PROVIDER — указыввает на механизм проверки подлинности; ADMIN_USERS — перечисляет список пользователей с правами администратора; LDAP_URL — сервер AD DS; LDAP_DOMAINS — фильтр для поиска учетных записей; LDAP_DOMAINS_BASEDN — корень домена. В данном примере мы требуем аутентификацию; подключаемся к серверу ldap-server ; ищем пользователей по cn , которая соответствует логину в организационном юните Пользователи ; в моем случае используется домен remontka.local .
* стоит обратить внимание, что Alerta требует в качестве логина cn из AD, а также в качестве лонинов требуются email — таким образом, имена учетных записей в AD должны быть написаны латиницей.
Перезапускаем службу, созданную нами для алерты:
systemctl restart alertad
Готово. Чтобы войти в систему необходимо в качестве логина использоваться email — <логин>@<домен>, например, master@remontka.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.
Обновление серверной части выполняется с помощью менеджера 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
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…