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

Важно

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

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

sudo -i

Важно

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

Установка

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

    mkdir -p /tmp/tionix_rollback/monitor
    pip freeze > /tmp/tionix_rollback/monitor/pip_before.txt
    

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

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

    openstack tnx db list -n tnx_monitor > /tmp/tionix_rollback/monitor/migrations.txt
    

    Где:

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

    • из репозитория Python-пакетов:

      # Ubuntu, CentOS:
      pip install tionix-monitor
      
    • из репозитория RPM пакетов:

      # ALT Linux 7:
      apt-get -y install python-module-tionix_monitor
      
      # CentOS:
      yum -y install python-tionix_monitor
      
  4. Сохраните список установленных пакетов после установки для возможности отката изменений:

    pip freeze > /tmp/tionix_rollback/monitor/pip_after.txt
    

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

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

Примечание

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

Настройка

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

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

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

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

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

    openstack tnx db migrate -n tnx_monitor
    
  4. Добавьте пользователя в RabbitMQ:

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

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

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

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

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

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

Настройка Zabbix

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

Примечание

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

Авторизация

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

../../../_images/login1.png

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

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

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

    ../../../_images/create_host_group.png

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

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

    ../../../_images/add_host_group.png

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

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

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

    ../../../_images/create_template.png

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

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

    ../../../_images/add_template.png

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

    В нашем случае имя шаблона ftp-check, так как мы хотим проверять доступность FTP сервиса. В качестве группы узлов укажите созданную ранее tionix_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 сервисов.

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

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

    ZABBIX:
     HOST: 'ip_address'
     ADMIN_USER: 'zabbix_user'
     PASSWORD: 'zabbix_password'
     HOST_GROUP: 'tionix_group'
    

    Где:

    • HOST - адрес сервера Zabbix;
    • ADMIN_USER - логин для подключения к серверу Zabbix;
    • PASSWORD - пароль для подключения к серверу Zabbix;
    • HOST_GROUP - имя группу узлов Zabbix.
  • Проверить работу системы мониторинга можно в графическом интерфейсе TIONIX.Dashboard. Для этого перейдите во вкладку «ТИОНИКС/Метрики/Виртуальные машины», выберите необходимую виртуальную машину и воспользуйтесь функцией «Управление шаблонами».

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

Примечание

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

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

Параметр Описание Значение по умолчанию
DB

Настройки базы данных:

tionix_monitor
LOG_LEVEL

Уровень логирования. Доступные значения:

  • DEBUG;
  • INFO;
  • WARNING;
  • ERROR;
  • CRITICAL.

Значения являются регистронезависимыми. Подробное описание параметров доступно в разделе Уровни логирования.

INFO
CEILOMETER_METERS Список метрик, которые отображаются при запросе статистики работы виртуальных машин.  
ZABBIX

Настройка подключения к системе мониторинга Zabbix, где:

  • HOST - путь к сервису Zabbix;
  • ADMIN_USER - имя пользователя с правами администратора в Zabbix;
  • PASSWORD - пароль пользователя с правами администратора в Zabbix;
  • HOST_GROUP - имя группы хостов, в которой по умолчанию будет осуществляться поиск шаблонов в Zabbix.
  • HOST - localhost;
  • ADMIN_USER - Admin;
  • PASSWORD - zabbix;
  • HOST_GROUP - tionix.
ENABLE_CEILOMETER_MONITORING

Параметр для включения или отключения функционала работы со службой Ceilometer. Допустимые значения:

  • True;
  • False.

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

True
ENABLE_ZABBIX_MONITORING

Параметр для включения или отключения функционала работы со службой Zabbix. Допустимые значения:

  • True;
  • False.

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

True
ENABLE_BACKUP

Параметр для включения или отключения функционала работы со службой Bareos. Допустимые значения:

  • True;
  • False.

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

False
SENTRY

Настройки логирования Sentry, где:

  • ENABLED - Флаг, отвечающий за отправку сообщений об ошибках в Sentry. Возможные значения:

    • True;
    • False.

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

  • DSN - Адрес сервера Sentry, содержит ключ пользователя и идентификатор проекта;

  • LOG_LEVEL - Уровень логирования в Sentry. Значения являются регистронезависимыми.

  • False;
  • Адрес внутреннего сервера Sentry;
  • CRITICAL.
MONITOR_API_LISTEN IP-адрес, на котором будет запущена служба NodeControl API. 0.0.0.0
MONITOR_API_LISTEN_PORT Порт, на котором будет запущена служба NodeControl API. 9363
MONITOR_API_LOGFILE Путь до лог файла службы tionix-monitor-api. /var/log/tionix/monitor/monitor-api.log
MONITOR_NOVA_LISTENER_LOGFILE Путь до лог файла службы tionix-monitor-nova-listener. /var/log/tionix/monitor/nova-listener.log

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

Параметр Описание Значение по умолчанию
TRACEBACK_ENABLED

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

  • True;
  • False.

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

False

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

DB:
    NAME: 'tionix_monitor'
LOG_LEVEL: 'INFO'
CEILOMETER_METERS:
    - 'memory.usage'
    - 'cpu_util'
    - 'disk.read.requests.rate'
    - 'disk.write.requests.rate'
    - 'disk.read.bytes.rate'
    - 'disk.write.bytes.rate'
    - 'disk.latency'
    - 'disk.iops'
    - 'network.incoming.bytes.rate'
    - 'network.outgoing.bytes.rate'
    - 'network.incoming.packets.rate'
    - 'network.outgoing.packets.rate'

ZABBIX:
    HOST: 'localhost'
    ADMIN_USER: 'Admin'
    PASSWORD: 'zabbix'
    HOST_GROUP: 'tionix'

ENABLE_CEILOMETER_MONITORING: True
ENABLE_ZABBIX_MONITORING: True
ENABLE_BACKUP: False
MONITOR_API_LISTEN: '0.0.0.0'
MONITOR_API_LISTEN_PORT: 9363

Важно

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

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

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

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

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

    cd /tmp/tionix_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
    pip uninstall -r pip_uninstall.txt
    pip install -r pip_install.txt