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

Установка

Важно

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

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

sudo -i

Важно

Установка производится на управляющий узел. Для работы модуля необходимо установить службу OpenStack Nova API.

  1. Перед началом установки сохраните список установленных ранее пакетов, это позволит Вам безболезненно восстановить систему в случае ее повреждения. Для этого выполните следующие команды:

    mkdir -p /tmp/rollback/monitor
    pip3 freeze > /tmp/rollback/monitor/pip_before.txt
    

    После чего в каталоге /tmp/rollback/monitor будет находиться файл pip_before.txt с перечнем установленных приложений.

  2. Также сохраните версии миграции:

    openstack aos db list -n monitor > /tmp/rollback/monitor/migrations.txt
    

    Где:

    • /tmp/rollback/monitor/ - директория файла;
    • migrations.txt - наименование файла с версиями миграций.
  3. Установите пакет Monitor:

    pip3 install monitor
    
  4. Сохраните список установленных пакетов после установки для возможности отката изменений:

    pip3 freeze > /tmp/rollback/monitor/pip_after.txt
    

Примечание

Для установки Monitor на Astra Linux (Smolensk) выполните следующее:

  1. Подключите предоставленный Вам репозиторий с пакетами AccentOS.

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

    sudo apt install -y aos-monitor
    

Установка на двух и более контроллерах

При установке Monitor на двух и более контроллерах, необходимо устанавливать модуль с одинаковыми параметрами на каждый из контроллеров.

Примечание

Удаление и диагностика модуля на каждом контроллере происходит таким же образом, как и в случае с одним контроллером.

Настройка

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

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

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

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

    # Зайдите в базу данных, используя пароль пользователя root
    mysql -uroot -p
    # Создайте базу данных monitor
    CREATE DATABASE monitor;
    # Дайте пользователю права на чтение, редактирование, выполнение любых действий над всеми таблицами базы данных monitor
    GRANT ALL PRIVILEGES ON monitor.* TO 'aos'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON monitor.* TO 'aos'@'%' IDENTIFIED BY 'password';
    # Осуществите выход из базы данных
    
  3. Отредактируйте секцию [database] конфигурационного файла etc/aos/monitor.conf, например:

    [database]
    url = mysql+pymysql://aos:password@tst.stand.loc:3306/monitor?charset=utf8
    
  4. Выполните синхронизацию базы данных:

    openstack aos db migrate -n monitor
    
  5. Добавьте пользователя в RabbitMQ:

    rabbitmqctl add_user aos password
    rabbitmqctl add_vhost aos
    rabbitmqctl set_permissions -p aos aos ".*" ".*" ".*"
    rabbitmqctl set_permissions aos ".*" ".*" ".*"
    
  6. Создайте пользователя в OpenStack для API сервисов:

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

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

    systemctl daemon-reload
    systemctl enable aos-monitor-api.service
    systemctl start aos-monitor-api.service
    systemctl enable aos-monitor-listener.service
    systemctl start aos-monitor-listener.service
    
  9. Создайте сервис Monitor API:

    openstack service create --name monitor --description "Monitor Service" monitor
    
  10. Создайте точки входа:

    openstack endpoint create --region RegionOne monitor internal http://controller:9363
    openstack endpoint create --region RegionOne monitor admin http://controller:9363
    openstack endpoint create --region RegionOne monitor public http://controller:9363
    

Настройка Zabbix

Настройка системы мониторинга Zabbix для работы с модулем Monitor.

Примечание

В разделе описан процесс создания проверки доступности FTP сервиса.

Авторизация

Перейдите по адресу веб-приложения Zabbix и, используя свои учетные данные, авторизуйтесь в сервисе:

../../_images/login1.png

Окно авторизации

Создание группы узлов сети

  1. Перейдите в меню «Настройка»/«Группы узлов сети» и нажмите кнопку «Создать группу узлов сети»:

    ../../_images/create_host_group.png

    Список группы узлов

  2. На открывшейся странице задайте имя группы узлов, например, aos_group, и нажмите «Добавить»:

    ../../_images/add_host_group.png

    Форма создания группы узлов

Создание шаблона мониторинга

  1. Перейдите в меню «Настройка»/«Шаблоны» и нажмите кнопку «Создать шаблон»:

    ../../_images/create_template1.png

    Список шаблонов мониторинга

  2. На открывшейся странице задайте имя и группу узлов:

    ../../_images/add_template.png

    Форма создания шаблона

    В нашем случае имя шаблона ftp-check, так как мы хотим проверять доступность FTP сервиса. В качестве группы узлов укажите созданную ранее aos_group. Поля «Видимое имя», «Узлы сети / шаблоны» и «Описание» не обязательны к заполнению.

  3. После создания в шаблон необходимо добавить: группы элементов данных (Applications) и элементы данных (Items). Данные параметры будут отслеживать шаблон и триггеры, которые будут реагировать на изменение этих данных и срабатывать при заданных значениях.

Создание группы элементов данных

  1. Перейдите в меню «Настройка»/«Шаблоны», найдите в списке созданный шаблон ftp-check и нажмите на «Группы элементов данных»:

    ../../_images/template_list.png

    Список шаблонов

  2. В открывшемся окне нажмите «Создать группу элементов данных»:

    ../../_images/create_application.png

    Список групп элементов данных

  3. В форме создания укажите имя:

    ../../_images/add_application.png

    Форма создания группы элементов данных

    Добавьте группу элементов кнопкой «Добавить».

Создание элемента данных

  1. Перейдите в меню «Настройка»/«Шаблоны», найдите в списке шаблон ftp-check и нажмите на «Элементы данных»:

    ../../_images/item_list.png

    Список шаблонов

  2. В открывшемся окне нажмите «Создать элемент данных»:

    ../../_images/create_item.png

    Перечень элементов данных шаблона

  3. На странице создания элемента данных заполните необходимые поля:

    ../../_images/item_options.png

    Форма создания элемента данных

    • Имя – FTP.test;
    • Тип – простая проверка;
    • Ключ – net.tcp.service[ftp].

    Примечание

    Поле «Ключ» можно заполнить не вручную, а выбрать подходящий вариант из стандартных элементов данных, в нашем случае net.tcp.service[service,<ip>,<port>], который позволяет проверять любые TCP службы.

    ../../_images/standart_items.png

    Перечень стандартных элементов данных

    • Интервал обновления (в сек) – 60;
    • Период хранения истории (в днях) – 7;
    • Отображение значения – Service state;
    • Группы элементов данных - Ftp service.

    Завершите процедуру создания элемента данных FTP.test кнопкой «Добавить».

После создания FTP.test будет осуществлять простую проверку FTP сервиса на удаленном узле, то есть без использования Zabbix клиента с интервалом в 60 секунд. Также созданный элемент был добавлен в группу элементов данных (Applications) Ftp service, которая была создана ранее.

Создание триггера

  1. Перейдите в «Настройка»/«Шаблоны», найдите в списке шаблон ftp-check и нажмите на «Триггеры»:

    ../../_images/trigger_list.png

    Список шаблонов

  2. В открывшемся окне нажмите «Создать триггер»:

    ../../_images/create_trigger.png

    Перечень триггеров шаблона

  3. На странице создания триггера заполните необходимые поля:

    ../../_images/trigger_options.png

    Форма создания триггера

    • Имя – FTP service is down on {HOST.NAME};
    • Важность – Средняя;
    • Выражение - {ftp-check:net.tcp.service[ftp].max(#3)}=0.

    Завершите процедуру создания триггера FTP service is down on {HOST.NAME} кнопкой «Добавить».

После создания триггер будет срабатывать в том случае, когда за последние три опроса FTP сервиса от него не было получена ответа.

На этом процедура создания и настройки шаблона для проверки доступности FTP сервиса завершена. По такой же аналогии можно легко настроить шаблоны для SSH и HTTP сервисов.

Дополнительно

  • Для корректной работы системы мониторинга необходимо настроить конфигурационный файл модуля Monitor - /etc/aos/monitor.conf. Пример:

    [zabbix]
    url = http://localhost/zabbix
    username = Admin
    password = zabbix
    host_group = aos
    

    Где:

    • url - адрес сервера Zabbix;
    • username - логин для подключения к серверу Zabbix;
    • password - пароль для подключения к серверу Zabbix;
    • host_group - имя группу узлов Zabbix.
  • Проверить работу системы мониторинга можно в графическом интерфейсе Dashboard. Для этого необходимо на вкладке «Идентификация» - «Проекты» для нужного проекта настроить интеграцию с системой мониторинга Zabbix. Учетные данные пользователя Zabbix, созданного для интеграции проекта, понадобятся для авторизации в системе мониторинга Zabbix и просмотра данных мониторинга.

  • Далее на вкладке «Администратор» - «Интеграция» - «Мониторинг» выберите необходимую виртуальную машину проекта, для которого настроена интеграция с Zabbix, воспользуйтесь функцией «Управление шаблонами» и назначьте для машины необходмые шаблоны мониторинга.

  • Для просмотра данных мониторинга виртуальных машин авторизуйтесь в Zabbix, используя учетные данные пользователя, созданные на этапе настройки мониторинга для проекта.

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

Примечание

Файл конфигурации позволяет переопределять секции и параметры общего файла aos.conf для конкретного модуля.

Примечание

По умолчанию в файле monitor.conf.example строки с уровнем логирования нет, она указывается при необходимости. Уровень логирования по умолчанию выставлен в общем конфигурационном файле. Подробнее ознакомиться с файлами конфигурации можно в соответствующем разделе.

Конфигурационный файл представлен в ini формате и состоит из следующих секций и параметров:

Секция Параметр Описание Значение по умолчанию
DEFAULT ceilometer_meters Список метрик, которые отображаются при запросе статистики работы виртуальных машин. memory.usage, cpu, ne twork.incoming.bytes, network.outgoing.byte s, network.incoming.p ackets, network.outgo ing.packets
DEFAULT enable_backup Параметр для включения или отключения функционала работы со службой Bareos. False
DEFAULT enable_ceilometer_monitoring Параметр для включения или отключения функционала работы со службой Ceilometer. True
DEFAULT enable_zabbix_monitoring Параметр для включения или отключения функционала работы со службой Zabbix. True
api host IP-адрес, на котором будет запущена служба Monitor API. 0.0.0.0
api logfile Путь до лог файла службы aos-monitor-api.  
api port Порт, на котором будет запущена служба Monitor API. 9363
database url Настройка подключения к базе данных. mysql+pymysql://aos:p assword@localhost:330 6/monitor?charset=utf 8
listener logfile Путь до лог файла службы aos-monitor-listener.  
listener nova_rabbit_vhost Виртуальный хост RabbitMQ службы Nova. /
zabbix host_group Имя группы хостов, в которой по умолчанию будет осуществляться поиск шаблонов в Zabbix. aos
zabbix password Пароль пользователя с правами администратора в Zabbix. zabbix
zabbix url Путь к сервису Zabbix. http://localhost/zabb ix
zabbix username Имя пользователя с правами администратора в Zabbix. Admin

Дополнительные параметры

Секция Параметр Описание Значение по умолчанию
DEFAULT traceback_enabled

Параметр для вывода трассировки ошибки при логировании. Возможные значения:

  • true;
  • false.

Значения являются регистронезависимыми.

false

Пример конфигурационного файла

[DEFAULT]
enable_ceilometer_monitoring = true
enable_zabbix_monitoring = true
enable_backup = false
ceilometer_meters =
    memory.usage,
    cpu,
    network.incoming.bytes,
    network.outgoing.bytes,
    network.incoming.packets,
    network.outgoing.packets

[api]
port = 9363
logfile = /var/log/aos/monitor/monitor-api.log

[database]
url = mysql+pymysql://aos:password@localhost:3306/monitor

[listener]
logfile = /var/log/aos/monitor/listener.log

[nova_listener]
logfile = /var/log/aos/monitor/nova-listener.log
nova_rabbit_vhost = /

[zabbix]
url = http://localhost/zabbix
username = Admin
password = zabbix
host_group = aos

Важно

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

План восстановления

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

  1. Сравните версии миграций в файле /tmp/rollback/monitor/migrations.txt с текущими. При наличии отличий произведите миграцию на предыдущую версию. Пример миграции:

    openstack aos db list -n monitor
    openstack aos db migrate -n monitor --migration 14
    
  2. Произведите возврат к предыдущему состоянию пакетов:

    cd /tmp/rollback/monitor
    diff --changed-group-format='%>' --unchanged-group-format='' pip_before.txt pip_after.txt > pip_uninstall.txt
    diff --changed-group-format='%<' --unchanged-group-format='' pip_before.txt pip_after.txt > pip_install.txt
    pip3 uninstall -r pip_uninstall.txt
    pip3 install -r pip_install.txt