Сбор сведений об окружении

Мониторинг и наблюдаемость

В этой главе предлагается несколько способов настройки мониторинга системы ROSA Virtualization и получения системных метрик и журналов. В числе этих методов:

  • Мониторинг ROSA Virtualization с помощью хранилища данных и Grafana.
  • Отсылка метрик на удалённый экземпляр Elasticsearch.

Мониторинг систем ROSA Virtualization с помощью хранилища данных и Grafana

Обзор Grafana

Grafana — это веб-утилита с графическим интерфейсом для создания отчётов на базе данных, собранных в БД PostgreSQL хранилища данных oVirt с именем ovirt_engine_history. Подробности о доступных сводных панелях отчётов смотрите в п. Встроенные панели мониторинга Grafana.

Данные диспетчера виртуализации собираются каждую минуту и агрегируются в почасовых и ежедневных наборах данных. Собранные данные хранятся согласно параметру масштаба, настраиваемому в конфигурации хранилища данных во время выполнения engine-setup (масштаб Basic или Full):

  • Basic (по умолчанию) ‒ выборки данных, сохранённых за 24 часа, почасовых данных за 1 месяц; для ежедневных данных выборки не сохраняются.
  • Full (рекомендуется) ‒ выборки данных, сохранённых за 24 часа, почасовых данных за 2 месяца, ежедневных данные за 5 лет.

Для полномасштабных данных может потребоваться миграция хранилища данных на отдельную ВМ.

Примечание — На одной и той же машине поддерживается только совместная установка БД хранилища данных, службы Data Warehouse и Grafana, хотя каждый из этих компонентов можно установить отдельно от других на отдельной машине.

Установка Grafana

Интеграция Grafana включается и устанавливается по умолчанию при выполнении engine-setup для СУСВ в отдельной установке диспетчера, а также при установке виртуализированного ЦУ.

Настройка механизма единого входа для Grafana

Команда engine-setup автоматически настраивает на Grafana разрешение для уже существующих пользователей диспетчера на выполнение входа с Портала администрирования с помощью механизма единого входа, но не создаёт пользователей автоматически. Новых пользователей нужно создать (раздел Invite в графическом интерфейсе Grafana) и подтвердить, только после этого они могут входить в систему:

  1. Настройте почтовый адрес пользователя на диспетчере, если он ещё не настроен.
  2. Выполните вход в систему Grafana для существующего пользователя admin (изначально настроенный admin).
  3. Нажмите "Configuration → Users" и выберите "Invite".
  4. Введите почтовый адрес и имя, затем выберите "Роль".
  5. Пошлите приглашение, используя одну из следующих возможностей:
  • Выберите "Send invite mail" и нажмите Submit. Для этой возможности необходимо иметь рабочий локальный почтовый сервер, настроенный на машине с Grafana.
  • Выберите "Pending Invites".
  • Найдите нужную запись.
  • Выберите "Copy invite".
  • Скопируйте ссылку и используйте её для создания учётной записи, либо скопировав напрямую в адресную строку браузера, либо отослав её другому пользователю.

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

Для входа на Портал мониторинга с этой учётной записью:

  1. Выполните вход на приветственной странице веб-администрирования ROSA Virtualization с помощью учётной записи с этим почтовым адресом.
  2. Чтобы перейти на панель мониторинга Grafana, выберите "Портал мониторинга".
  3. Выберите "Вход с помощью oVirt Engine Auth".

Встроенные панели мониторинга Grafana

В начальной установке Grafana доступны панели мониторинга со сводками из ЦОД, кластера, хоста и ВМ, приведенные в таблице 72.

Примечание — На панелях Grafana присутствуют прямые ссылки на Портал администрирования ROSA Virtualization, что позволяет быстро просмотреть дополнительные сведения о кластерах, хостах и ВМ.

Настраиваемые панели Grafana

Панели Grafana можно копировать и изменять, а также создавать пользовательские панели согласно требованиям отображения сводок отчётов.

Примечание — Встроенные панели нельзя перенастроить.

Отправка метрик и журналов на удалённый экземпляр Elasticsearch

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

На диспетчере и хостах ROSA Virtualization можно настроить отправку данных метрик и журналов на существующий экземпляр Elasticsearch.

Для этого запустите роль Ansible, настраивающую collectd и rsyslog на диспетчере и на всех хостах для сбора метрик engine.log, vdsm.log и collectd и отправки их на экземпляр Elasticsearch.

Установка collectd и rsyslog

В данном разделе описано развёртывание collectd и rsyslog на хостах для сбора журналов и метрик.

Примечание — Данную последовательность действий нет необходимости повторять для новых хостов. Новые хосты при добавлении автоматически настраиваются диспетчером для отправки данных на Elasticsearch во время выполнения host-deploy.

Последовательность действий по установке collectd и rsyslog:

  1. Выполните вход на машине диспетчера с помощью SSH.
  2. Скопируйте /etc/ovirt-engine-metrics/config.yml.example для создания /etc/ovirt-engine- metrics/config.yml.d/config.yml:
cp /etc/ovirt-engine-metrics/config.yml.example  \
/etc/ovirt-engine- metrics/config.yml.d/config.yml
  1. Измените параметры ovirt_env_name и elasticsearch_host в config.yml и сохраните файл. В файл можно добавить следующие дополнительные параметры:
use_omelasticsearch_cert: false rsyslog_elasticsearch_usehttps_metrics: !!str off rsyslog_elasticsearch_usehttps_logs: !!str off
  • Если используются сертификаты, для параметра use_omelasticsearch_cert укажите значение true.
  • Для отключения журналирования или метрик используйте параметры rsyslog_elasticsearch_usehttps_metrics и/или rsyslog_elasticsearch_usehttps_logs.
  1. Разверните collectd и rsyslog на хостах:
/usr/share/ovirt-engine-metrics/setup/ansible/configure_ovirt_machines_for_metrics.sh

Сценарий configure_ovirt_machines_for_metrics.sh запускает роль Ansible, включающую в себя набор linux-system-roles, и использует их для развёртывания и настройки rsyslog на хосте. rsyslog собирает метрики из collectd и отправляет их в Elasticsearch.

Схема журналирования и анализ журналов

Для интерактивного просмотра данных, собранных в системе ROSA Virtualization, используйте страницу "Обнаружение". Каждый набор собранных данных представляется в виде документа. Документы составляются из следующих файлов журналов:

  • engine.log ‒ содержит сведения обо всех аварийных сбоях графического интерфейса виртуализированного ЦУ, поиски по Active Directory, проблемы с БД и другие события.
  • vdsm.log ‒ файл журнала VDSM ‒ агента диспетчера на хостах виртуализации ‒ содержит события, связанные с хостами.

Поля в файлах просмотров данных описаны в таблице 73.

Файлы журналов

Файлы журналов процесса установки диспетчера виртуализации

Файлы журналов процесса установки диспетчера виртуализации приведены в таблице 74.

Файлы журналов диспетчера ROSA Virtualization

Файлы журналов диспетчера ROSA Virtualization приведены в таблице 75.

Файлы журналов SPICE

Файлы журналов SPICE удобны в ситуациях поиска и решения проблем с подключениями SPICE. Для начала запуска журналирования SPICE смените уровень журналирования на debugging. Затем укажите местоположение файла журнала.

Файлы журналов SPICE существуют как для клиентов, получающих доступ к гостевым машинам, так и для самих гостевых машин. Для активации журналирования и создания вывода журналов на стороне клиента, если клиент SPICE был запущен с помощью встроенного клиента, для которого был скачан файл console.vv, используйте команду remote-viewer.

Журналы SPICE для серверов SPICE гипервизора

Журналы SPICE для гостевых машин

Журналы SPICE для клиентов, запущенных с помощью console.vv

Для клиентских машин на Linux:

  1. Включите отладку SPICE, выполнив команду remote-viewer с параметром --spice-debug. По запросу команды введите URL подключения, например spice://virtual_machine_IP:port:
remote-viewer --spice-debug
  1. Для запуска клиента SPICE с параметром debug и для передачи ему файла .vv скачайте файл console.vv, запустите команду remote-viewer с параметром --spice-debug и укажите полный путь до файла console.vv.
remote-viewer --spice-debug /path/to/console.vv

Для клиентских машин на Windows:

  1. В версиях virt-viewer 2.0-11.el7ev и более поздних файл virt-viewer.msi устанавливает virt-viewer и debug-viewer.exe.
  2. Запустите команду remote-viewer с аргументом spice-debug и направьте команду на путь до консоли:
remote-viewer --spice-debug path\to\console.vv

Для просмотра журналов подключитесь к ВМ, чтобы увидеть приглашение командной строки с выполняющимся GDB со стандартным выводом и стандартные ошибки для remote-viewer.

Файлы журналов хостов

Настройка отладочного уровня журналирования для служб ROSA Virtualization

Примечание — Указание отладочного уровня для журналирования может открыть доступ к такой конфиденциальной информации, как пароли или внутренние данные ВМ. Убедитесь, что у недоверенных или неавторизованных пользователей не будет доступа к журналам отладки.

Отладочный уровень журналов служб ROSA Virtualization, указанных в таблице 79, можно настроить, отредактировав файл sysconfig каждой из служб.

Это изменение влияет на журналирование, выполняемое оболочкой Python, а не процессом главной службы.

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

Убедитесь в существовании файла sysconfig, который необходимо изменить. Создайте его при необходимости.

Последовательность действий для настройки отладочного уровня журналирования для служб ROSA Virtualization:

  1. Добавьте следующее содержимое в файл sysconfig службы:
OVIRT_SERVICE_DEBUG=1
  1. Перезапустите службу:
systemctl restart <service>

Уровень файла журнала sysconfig службы теперь будет отладочным.

Сообщения журналов, создаваемые с этим параметром, поступают в системный журнал, поэтому создаваемые файлы нужно искать в /var/log/messages, а не в конкретных файлах журналов служб. Также их можно просмотреть с помощью команды journalctl.

Основные файлы конфигураций служб ROSA Virtualization

В дополнение к файлам sysconfig для каждой службы системы ROSA Virtualization существует ещё один файл конфигурации, используемый гораздо чаще (таблица 80).

Настройка сервера журналирования хоста

Хосты создают и обновляют файлы журналов, записывают действия и неполадки. Централизованный сбор этих файлов журналов упрощает отладку.

Данная последовательность действий должна применяться на централизованном сервере журналов. Можно использовать отдельный сервер или использовать данную процедуру для включения использования журналирования хостов в диспетчере ROSA Virtualization.

Последовательность действий по настройке сервера журналирования хоста:

  1. Проверьте, разрешён ли трафик на порте UDP 514, и открыт ли он для трафика службы syslog:
firewall-cmd --query-service=syslog
  1. При выводе "no" разрешите трафик на порте UDP 514 с помощью:
firewall-cmd --add-service=syslog --permanent
firewall-cmd --reload
  1. Создайте новый файл .conf на сервере syslog, например /etc/rsyslog.d/from_remote.conf, и добавьте в него следующие строки:
template(name="DynFile" type="string" string="/var/log/%HOSTNAME%/%PROGRAMNAME%.log") RuleSet(name="RemoteMachine"){ action(type="omfile" dynaFile="DynFile") }
Module(load="imudp")
Input(type="imudp" port="514" ruleset="RemoteMachine")
  1. Перезапустите службу rsyslog:
systemctl restart rsyslog.service
  1. Выполните вход в систему на гипервизоре и добавьте следующую строку в /etc/rsyslog.conf:
*.info;mail.none;authpriv.none;cron.none @<syslog-FQDN>:514
  1. Перезапустите службу rsyslog на гипервизоре:
systemctl restart rsyslog.service

Централизованный сервер теперь настроен на получение, хранение и обеспечение защиты для файлов журналов хостов виртуализации.

Включение использования SyslogHandler для передачи журналов диспетчера ROSA Virtualization на удалённый сервер syslog

В данной реализации используется диспетчер журналов JBoss EAP SyslogHandler с настройкой передачи записи журналов из engine.log и server.log на сервер syslog.

Выполните следующую последовательность действий на центральном сервере syslog. Можно использовать отдельный сервер журналирования, или выполнить процедуру для передачи файлов engine.log и server.log с диспетчера на сервер syslog. См. также п. Настройка сервера журналирования хоста.

Для настройки реализации SyslogHandler:

  1. В каталоге /etc/ovirt-engine/engine.conf.d создайте файл 90-syslog.conf со следующим содержимым:
SYSLOG_HANDLER_ENABLED=true
SYSLOG_HANDLER_SERVER_HOSTNAME=localhost
SYSLOG_HANDLER_FACILITY=USER_LEVEL
  1. Разрешите трафик rsyslog в SELinux:
semanage port -a -t syslogd_port_t -p udp 514
  1. Создайте файл конфигурации /etc/rsyslog.d/rv.conf со следующим содержимым:
user.* /var/log/jboss.log
module(load="imudp") # needs to be done just once input(type="imudp" port="514")
  1. Перезапустите службу rsyslog:
systemctl restart rsyslog.service
  1. Если межсетевой экран включён и активен, выполните следующую команду для добавления необходимых правил для открытия портов rsyslog в Firewalld:
firewall-cmd --permanent --add-port=514/udp
firewall-cmd --reload
  1. Перезапустите диспетчер ROSA Virtualization:
systemctl restart ovirt-engine
  1. Сервер syslog теперь может получать и хранить файлы engine.log.