Сбор сведений об окружении
Мониторинг и наблюдаемость
В этой главе предлагается несколько способов настройки мониторинга системы 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) и подтвердить, только после этого они могут входить в систему:
- Настройте почтовый адрес пользователя на диспетчере, если он ещё не настроен.
- Выполните вход в систему Grafana для существующего пользователя admin (изначально настроенный admin).
- Нажмите "Configuration → Users" и выберите "Invite".
- Введите почтовый адрес и имя, затем выберите "Роль".
- Пошлите приглашение, используя одну из следующих возможностей:
- Выберите "Send invite mail" и нажмите Submit. Для этой возможности необходимо иметь рабочий локальный почтовый сервер, настроенный на машине с Grafana.
- Выберите "Pending Invites".
- Найдите нужную запись.
- Выберите "Copy invite".
- Скопируйте ссылку и используйте её для создания учётной записи, либо скопировав напрямую в адресную строку браузера, либо отослав её другому пользователю.
Примечание — При использовании возможности с отложенными приглашениями почтовое сообщение не отсылается, и почтовый адрес на самом деле может не существовать — сработает любой адрес, выглядящий корректным и похожий на настроенный почтовый адрес пользователя диспетчера.
Для входа на Портал мониторинга с этой учётной записью:
- Выполните вход на приветственной странице веб-администрирования ROSA Virtualization с помощью учётной записи с этим почтовым адресом.
- Чтобы перейти на панель мониторинга Grafana, выберите "Портал мониторинга".
- Выберите "Вход с помощью 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:
- Выполните вход на машине диспетчера с помощью SSH.
- Скопируйте /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
- Измените параметры 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.
- Разверните 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:
- Включите отладку SPICE, выполнив команду remote-viewer с параметром --spice-debug. По запросу команды введите URL подключения, например spice://virtual_machine_IP:port:
remote-viewer --spice-debug
- Для запуска клиента SPICE с параметром debug и для передачи ему файла .vv скачайте файл console.vv, запустите команду remote-viewer с параметром --spice-debug и укажите полный путь до файла console.vv.
remote-viewer --spice-debug /path/to/console.vv
Для клиентских машин на Windows:
- В версиях virt-viewer 2.0-11.el7ev и более поздних файл virt-viewer.msi устанавливает virt-viewer и debug-viewer.exe.
- Запустите команду 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:
- Добавьте следующее содержимое в файл sysconfig службы:
OVIRT_SERVICE_DEBUG=1
- Перезапустите службу:
systemctl restart <service>
Уровень файла журнала sysconfig службы теперь будет отладочным.
Сообщения журналов, создаваемые с этим параметром, поступают в системный журнал, поэтому создаваемые файлы нужно искать в /var/log/messages, а не в конкретных файлах журналов служб. Также их можно просмотреть с помощью команды journalctl.
Основные файлы конфигураций служб ROSA Virtualization
В дополнение к файлам sysconfig для каждой службы системы ROSA Virtualization существует ещё один файл конфигурации, используемый гораздо чаще (таблица 80).
Настройка сервера журналирования хоста
Хосты создают и обновляют файлы журналов, записывают действия и неполадки. Централизованный сбор этих файлов журналов упрощает отладку.
Данная последовательность действий должна применяться на централизованном сервере журналов. Можно использовать отдельный сервер или использовать данную процедуру для включения использования журналирования хостов в диспетчере ROSA Virtualization.
Последовательность действий по настройке сервера журналирования хоста:
- Проверьте, разрешён ли трафик на порте UDP 514, и открыт ли он для трафика службы syslog:
firewall-cmd --query-service=syslog
- При выводе "no" разрешите трафик на порте UDP 514 с помощью:
firewall-cmd --add-service=syslog --permanent
firewall-cmd --reload
- Создайте новый файл .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")
- Перезапустите службу rsyslog:
systemctl restart rsyslog.service
- Выполните вход в систему на гипервизоре и добавьте следующую строку в /etc/rsyslog.conf:
*.info;mail.none;authpriv.none;cron.none @<syslog-FQDN>:514
- Перезапустите службу rsyslog на гипервизоре:
systemctl restart rsyslog.service
Централизованный сервер теперь настроен на получение, хранение и обеспечение защиты для файлов журналов хостов виртуализации.
Включение использования SyslogHandler для передачи журналов диспетчера ROSA Virtualization на удалённый сервер syslog
В данной реализации используется диспетчер журналов JBoss EAP SyslogHandler с настройкой передачи записи журналов из engine.log и server.log на сервер syslog.
Выполните следующую последовательность действий на центральном сервере syslog. Можно использовать отдельный сервер журналирования, или выполнить процедуру для передачи файлов engine.log и server.log с диспетчера на сервер syslog. См. также п. Настройка сервера журналирования хоста.
Для настройки реализации SyslogHandler:
- В каталоге
/etc/ovirt-engine/engine.conf.dсоздайте файл 90-syslog.conf со следующим содержимым:
SYSLOG_HANDLER_ENABLED=true
SYSLOG_HANDLER_SERVER_HOSTNAME=localhost
SYSLOG_HANDLER_FACILITY=USER_LEVEL
- Разрешите трафик rsyslog в SELinux:
semanage port -a -t syslogd_port_t -p udp 514
- Создайте файл конфигурации
/etc/rsyslog.d/rv.confсо следующим содержимым:
user.* /var/log/jboss.log
module(load="imudp") # needs to be done just once input(type="imudp" port="514")
- Перезапустите службу rsyslog:
systemctl restart rsyslog.service
- Если межсетевой экран включён и активен, выполните следующую команду для добавления необходимых правил для открытия портов rsyslog в Firewalld:
firewall-cmd --permanent --add-port=514/udp
firewall-cmd --reload
- Перезапустите диспетчер ROSA Virtualization:
systemctl restart ovirt-engine
- Сервер syslog теперь может получать и хранить файлы engine.log.