Установка и настройка¶
Установка¶
Важно
Перед началом установки необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.
Режим суперпользователя:
sudo -i
Перед началом установки сохраните список установленных ранее пакетов, это позволит Вам безболезненно восстановить систему в случае ее повреждения. Для этого выполните следующие команды:
mkdir -p /tmp/rollback/journal pip3 freeze > /tmp/rollback/journal/pip_before.txt
После чего в каталоге
/tmp/rollback/journal
будет находиться файлpip_before.txt
с перечнем установленных приложений.Также сохраните версии миграции:
openstack aos db list -n journal > /tmp/rollback/journal/migrations.txt
Где:
/tmp/rollback/journal/
- директория файла;migrations.txt
- наименование файла с версиями миграций.
Установите пакет Journal:
из репозитория Python-пакетов:
pip3 install journal
Сохраните список установленных пакетов после установки для возможности отката изменений:
pip3 freeze > /tmp/rollback/journal/pip_after.txt
Примечание
Для установки Journal на Astra Linux (Smolensk) выполните следующее:
Подключите предоставленный Вам репозиторий с пакетами AccentOS.
Установите пакет командой:
sudo apt install -y aos-journal
Настройка¶
Примечание
Рассматривается настройка запуска API сервиса журналирования через WSGI- сервер, поставляемый вместе с библиотекой eventlet
. Для настройки запуска сервиса через другой WSGI- сервер (Nginx + Gunicorn, Apache + mod_wsgi и др.) смотрите документацию соответствующего сервера. Путь до WSGI приложения: journal.api.journal_api.wsgi
.
Выполните первичную настройку модуля:
openstack aos configure -n journal
Создайте каталог для лог файлов с нужными правами:
mkdir -p /var/log/aos/journal chown -R aos:aos /var/log/aos/journal
Скопируйте образец конфигурационного файла. При использовании нестандартных параметров отредактируйте их (подробнее см. Файл конфигурации):
cp /etc/aos/aos.conf.example /etc/aos/aos.conf cp /etc/aos/journal.conf.example /etc/aos/journal.conf
Создайте базу данных на примере MySQL, настройте права, тип базы и остальные параметры:
# Зайдите в базу данных, используя пароль пользователя root mysql -uroot -p # Создайте базу данных journal CREATE DATABASE journal; # Дайте права на чтение, редактирование, выполнение любых действий над всеми таблицами базы данных journal GRANT ALL PRIVILEGES ON journal.* TO 'aos'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON journal.* TO 'aos'@'%' IDENTIFIED BY 'password'; # Осуществите выход из базы данных
Отредактируйте секцию
[database]
конфигурационного файлаetc/aos/journal.conf
, например:[database] url = mysql+pymysql://aos:password@tst.stand.loc:3306/journal?charset=utf8
Выполните миграцию базы данных:
openstack aos db migrate -n journal
Настройте брокер сообщений RabbitMQ Server:
rabbitmqctl add_user aos password rabbitmqctl add_vhost aos rabbitmqctl set_permissions -p aos aos ".*" ".*" ".*" rabbitmqctl set_permissions aos ".*" ".*" ".*"
Добавьте пользователю в RabbitMQ права на виртуальные хосты служб Openstack (по умолчанию
/
):rabbitmqctl set_permissions -p / aos ".*" ".*" ".*"
Создайте пользователя в OpenStack для API сервисов:
openstack user create --domain default --project service --project-domain default --password password --or-show aos
Назначьте пользователю роль service:
openstack role add --user aos --user-domain default --project service --project-domain default service
Включите и запустите службы systemd:
systemctl daemon-reload systemctl enable aos-journal-api.service systemctl start aos-journal-api.service systemctl enable aos-journal-listener.service systemctl start aos-journal-listener.service
Создайте сервис Journal API:
openstack service create --name journal --description "Journal Service" journal
Создайте точки входа (endpoint):
openstack endpoint create --region RegionOne journal internal http://controller:9360 openstack endpoint create --region RegionOne journal admin http://controller:9360 openstack endpoint create --region RegionOne journal public http://controller:9360
Перезапустите службы Nova, данное действие необходимо для включения журналирования:
# Debian systemctl restart nova-api.service
Файл конфигурации¶
Примечание
Файл конфигурации позволяет переопределять секции и параметры общего файла aos.conf
для конкретного модуля.
Примечание
По умолчанию в файле journal.conf.example
строки с уровнем логирования нет, она указывается при необходимости. Уровень логирования по умолчанию выставлен в общем конфигурационном файле. Подробнее ознакомиться с файлами конфигурации можно в соответствующем разделе.
Конфигурационный файл представлен в ini
формате и состоит из следующих секций и параметров:
Секция | Параметр | Описание | Значение по умолчанию |
---|---|---|---|
api | host | IP-адрес, на котором будет запущена служба Journal API. | 0.0.0.0 |
api | logfile | Путь до лог файла службы aos-journal-api. | |
api | port | Порт, на котором будет запущена служба Journal API. | 9360 |
certificates | requests_ca_bundle | Путь до файла корневого сертификата. | /etc/ssl/certs/ca- certificates.crt |
database | url | Настройка подключения к базе данных. | mysql+pymysql://aos:p assword@localhost:330 6/journal |
listener | durability | Устойчивость к перезагрузке RabbitMQ очереди и exchange. | True |
listener | keystone_rabbit_vhost | Виртуальный хост RabbitMQ службы Keystone. | / |
listener | logfile | Путь до лог файла службы aos-journal-listener. | |
listener | nova_rabbit_vhost | Виртуальный хост RabbitMQ службы Nova. | / |
Настройка аудита действий над объектами OpenStack¶
Установите и настройте драйвер Nova Journal Middleware.
Для логирования действий над объектами Keystone нужно выполнить следующие действия:
В конфигурационном файле
/etc/keystone/keystone.conf
задайте формат уведомлений:[DEFAULT] notification_format = cadf
Настройте драйвер сообщений в файле
/etc/keystone/keystone.conf
:[oslo_messaging_notifications] driver = messagingv2 transport_url = rabbit://username:password@hostname
После чего необходимо перезапустить веб-сервер, службы, а также службы Nova и Keystone:
# Debian: systemctl restart apache2 systemctl restart nova-api.service systemctl restart keystone.service systemctl restart aos-*