Установка и настройка

Установка

Важно

Сначала необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.

Режим суперпользователя:

sudo -i

Важно

Модуль также устанавливается в процессе установки других модулей TIONIX.

Установите модуль TIONIX.Client из репозитория RPM-пакетов:

yum -y install python-tionix_client

Настройка

Примечание

Рассматривается настройка запуска API сервиса журналирования через WSGI-сервер, поставляемый вместе с библиотекой eventlet. Для настройки запуска сервиса через другой WSGI-сервер (Nginx + Gunicorn, Apache + mod_wsgi и др.) смотрите документацию соответствующего сервера. Путь до WSGI приложения: tionix_client.api.journal_api.wsgi.

  1. Выполните первичную настройку модуля:

    openstack tnx configure -n tnx_client
    
  2. Создайте каталог для лог файлов с нужными правами:

    mkdir -p /var/log/tionix/client
    chown -R tionix:tionix /var/log/tionix/client
    
  3. Скопируйте образец конфигурационного файла. При использовании нестандартных параметров отредактируйте их (подробнее см. Файл конфигурации):

    cp /etc/tionix/tionix.yaml.example /etc/tionix/tionix.yaml
    
  4. Создайте базу данных на примере MySQL, настройте права, тип базы и остальные параметры:

    # Зайдите в базу данных, используя пароль пользователя root
    mysql -uroot -p
    # Создайте пользователя tionix c паролем password
    CREATE USER 'tionix'@'localhost' IDENTIFIED BY 'password';
    # Создайте базу данных tionix
    CREATE DATABASE tionix;
    # Дайте пользователю права на чтение, редактирование, выполнение любых действий над всеми таблицами базы данных tionix
    GRANT ALL PRIVILEGES ON tionix.* TO 'tionix'@'localhost';
    # Осуществите выход из базы данных
    
  5. Выполните синхронизацию базы данных:

    openstack tnx db migrate -n tnx_client
    
  6. Настройте брокер сообщений RabbitMQ Server:

    rabbitmqctl add_user tionix password
    rabbitmqctl add_vhost tionix
    rabbitmqctl set_permissions -p tionix tionix ".*" ".*" ".*"
    rabbitmqctl set_permissions tionix ".*" ".*" ".*"
    
  7. Добавьте пользователю в RabbitMQ права на виртуальные хосты служб Openstack (по умолчанию /):

    rabbitmqctl set_permissions -p / tionix ".*" ".*" ".*"
    
  8. Создайте пользователя в OpenStack для API сервисов:

    openstack user create --domain default --project service --project-domain default --password password --or-show tionix
    
  9. Назначьте пользователю роль admin:

    openstack role add --user tionix --user-domain default --project service --project-domain default admin
    
  10. Включите и запустите службы systemd:

    systemctl daemon-reload
    systemctl enable tionix-journal-api.service
    systemctl start tionix-journal-api.service
    systemctl enable tionix-journal-keystone-listener.service
    systemctl start tionix-journal-keystone-listener.service
    systemctl enable tionix-journal-listener.service
    systemctl start tionix-journal-listener.service
    systemctl enable tionix-journal-nova-listener.service
    systemctl start tionix-journal-nova-listener.service
    
  11. Создайте сервис Journal API:

    openstack service create --name tnx-journal --description "TIONIX Journal Service" tnx-journal
    
  12. Создайте точки входа (endpoint):

    openstack endpoint create --region RegionOne tnx-journal internal http://controller:9360
    openstack endpoint create --region RegionOne tnx-journal admin http://controller:9360
    openstack endpoint create --region RegionOne tnx-journal public http://controller:9360
    
  13. Перезапустите службы Nova, данное действие необходимо для включения журналирования:

    systemctl restart openstack-nova-api
    

Настройка аудита действий над объектами OpenStack

  1. Для логирования действий над объектами Nova нужно подключить фильтр аудита в конфигурационный файл сервиса:

    • В конфигурационный файл /etc/nova/api-paste.ini добавьте определение фильтра:

      [filter:tnx_audit]
      paste.filter_factory = tionix_client.journal.api_filter:filter_factory
      
    • Добавьте созданный фильтр в цепочку обработки API запроса в ключ keystone:

      [composite:openstack_compute_api_v21]
      use = call:nova.api.auth:pipeline_factory_v21
      noauth2 = cors compute_req_id faultwrap sizelimit noauth2 osapi_compute_app_v21
      keystone = cors compute_req_id faultwrap sizelimit authtoken keystonecontext tnx_audit osapi_compute_app_v21
      
    • Настройте отправку уведомлений в очередь сообщений в файле /etc/nova/nova.conf на управляющем узле и всех вычислительных узлах:

      [oslo_messaging_notifications]
      driver = messagingv2
      
  2. Для логирования действий над объектами Keystone нужно выполнить следующие действия:

    • В конфигурационном файле /etc/keystone/keystone.conf задайте формат уведомлений:

      [DEFAULT]
      notification_format = cadf
      
    • Настройте драйвер сообщений в файле /etc/keystone/keystone.conf:

      [oslo_messaging_notifications]
      driver = messagingv2
      

Файл конфигурации

Модуль TIONIX.Client использует общий файл конфигурации - tionix.yaml. После установки и настройки модуля убедитесь, что в директории etc/tionix создался файл конфигурации tionix.yaml. Если файл не создался, требуется создать его командой:

cp /etc/tionix/tionix.yaml.example /etc/tionix/tionix.yaml

Также проверьте содержимое файла, при необходимости изменив параметры на правильные. При изменении параметров необходимо перезапустить веб-сервер, службы TIONIX, а также службу Nova:

systemctl restart httpd
systemctl restart openstack-nova-api
systemctl restart tionix-*

Подробное описание параметров конфигурации доступно в разделе - «Общий файл конфигурации».