1. ОБЩИЕ СВЕДЕНИЯ#
1.1 Наименование программы
Полное наименование: Система мониторинга ПАК семейства Скала^р: ПО «Скала^р Визион».
Краткое наименование: Визион.
1.2 Область применения
Основным назначением ПО «Скала^р Визион» (далее Визион) является предоставление возможности контроля жизненного цикла ПАК (машин) производства Скала^р, обслуживаемых персоналом, к квалификации которого не предъявляется серьезных требований. Осуществляется процесс мониторинга программных компонент ПАК, сбор информации о количестве и составе управляемых объектов, метрик, обеспечивает оповещение при сбоях работы.
1.3 Уровень подготовки администратора
Администратор должен обладать следующими навыками:
- установка, настройка системного программного обеспечения в ОС Linux;
- просмотр и редактирование файлов с использованием команд ls, cat, less, vim, nano.
2 УСЛОВИЯ ПРИМЕНЕНИЯ ПРОГРАММЫ#
2.1 Состав программного обеспечения
Визион состоит из трех компонентов
- Визион.Сервер (предоставляет функционал единой точки доступа к управлению мониторинга; ставится в одном экземпляре на контур)
- Визион.Прокси (промежуточное звено, аккумулирует метрики с узлов ПАК; устанавливается по одному на каждый ПАК)
- Визион.Агент (сбор данных с узла, устанавливается на узел ПАК или на виртуальную машину)
Все компоненты должны находится в одной сети.
Поддерживается установка компонентов в двух вариантах конфигурации. Оптимальным решением является выделение под Визион.Сервер и Визион.Прокси отдельных виртуальных серверов в рамках узлов управления Машин (вариант 1). Допускается установка Визион.Сервер на сервер с одним из Визион.Прокси (вариант 2).
Варианты конфигурации Визион
Архитектура Визиона
В состав компонентов входят следующие экспортеры:
Экспортер | Порт | Конечная точка | Компонент | Описание |
---|---|---|---|---|
node_exporter | 9101 | /metrics | Агент | базовый агент для мониторинга узла |
utlz_exporter | 9092 | /metrics | Агент | мониторинг утилизации ресурсов |
ha_cluster_exporter | 9664 | /metrics | Агент | мониторинг corosync/pacemaker |
postgres_exporter_agent | 9187 | /metrics | Агент | мониторинг PostgreSQL с узла ПАК |
postgres_exporter_proxy | 9188 | /metrics | Агент | мониторинг PostgreSQL с узла мониторинга |
snmp_exporter | 9116 | /snmp | Прокси | мониторинг устройств по SNMP (коммутаторы, роутеры и т.п.) |
ipmi_exporter | 9290 | /ipmi | Прокси | опрос интерфейсов IPMI |
blackbox_exporter | 9115 | /probe | Прокси | опрос цели по модели “черный ящик” через HTTP, HTTPS, DNS, TCP, ICMP и gRPC |
supv_exporter | 9179 | /metrics | Прокси | мониторинг сервисов СУПВ |
one_exporter | 9621 | /metric | Прокси | мониторинг сервиса OpenNebula |
2.2 Используемые сетевые порты
Порт | Протокол | Назначение |
---|---|---|
9101 | HTTPS | получение метрик с экспортера |
9092 | HTTPS | получение метрик с экспортера |
9664 | HTTPS | получение метрик с экспортера |
9187 | HTTPS | получение метрик с экспортера |
9188 | HTTPS | получение метрик с экспортера |
9179 | HTTPS | получение метрик с экспортера |
9621 | HTTPS | получение метрик с экспортера |
9099 | HTTPS | получение метрик с экспортера |
5432 | HTTPS | мониторинг баз данных Postgres |
9000 | HTTPS | получение метрик с экспортера |
8429 | HTTPS | мониторинг компонента |
9179 | HTTPS | получение метрик с экспортера |
80, 443 | HTTP/HTTPS | мониторинг API СУПВ МВ.С |
9290 | HTTPS | получение метрик с экспортера |
623 | IPMI | мониторинг BMC |
9116 | HTTPS | получение метрик с экспортера |
161 | SNMP | мониторинг сетевых устройств |
9115 | HTTPS | получение метрик с экспортера |
80, 443 | HTTPS | мониторинг API |
161 | SNMP | мониторинг сетевых устройств |
9188 | HTTPS | получение метрик с экспортера |
5432 | HTTPS | мониторинг баз данных Postgres |
8430 | HTTPS | прием метрик от Агентов |
2023 | HTTPS | получение конфигурации компонентов |
8433 | HTTPS | прием и выдача метрик |
3000 | HTTPS | доступ к API Grafana |
8428 | HTTPS | прием и выдача метрик |
8432 | HTTPS | прием и выдача метрик |
10111 | HTTPS | прием уведомлений об алертах |
8881 | HTTPS | мониторинг компонента |
8880 | HTTPS | мониторинг компонента |
9093 | HTTPS | прием уведомлений об алертах |
9464 | HTTPS | прием уведомлений об алертах |
5432 | HTTPS | доступ к БД Визиона |
8088 | HTTPS | доступ к API Визиона |
80, 8092 | HTTPS | доступ к API Визиона |
443 | HTTPS | доступ к API Визиона, Grafana |
80, 433 | HTTPS | уведомление об алертах (webhook) |
25, 587, 465 | SMTP | уведомление об алертах (email) |
9464 | SNMP | уведомление об алертах (SNMP-трап) |
2.3 Системные требования
Тип реализующей ЭВМ: x86-64.
Минимальная аппаратная конфигурация сервера для установки Визион.Агента:
- CPU: от 1 ядра;
- RAM: от 4 Гб;
- ROM: в зависимости от требуемой глубины кеширования данных;
- NET: от 1 Гб Ethernet.
Минимальная аппаратная конфигурация сервера для установки Визион.Прокси:
- CPU: от 2 ядер;
- RAM: от 16 Гб;
- ROM: в зависимости от требуемой глубины кеширования данных;
- NET: от 1 Гб Ethernet.
Минимальная аппаратная конфигурация сервера для установки Визион.Сервера:
- CPU: от 8 ядер;
- RAM: от 32 Гб;
- ROM: в зависимости от количества ПАК на контуре и требуемой глубины хранения метрики, от 600 Гб SSD на каждый ПАК;
- NET: от 1 Гб Ethernet.
Для установки “Визиона” требуется наличие ПО ОС “АльтЛинукс” версий 8.4 или 10.
3. УСТАНОВКА ПРОГРАММЫ#
Перед началом установки необходимо убедиться в доступности узлов ПАК с хоста Визиона. Проверить доступность можно при помощи команды ping. Если в выводе команды ping содержатся ошибки, необходимо убедиться в том, что в инсталляционной карте содержатся коректные данные, обеспечена сетевая связность между узлами и файрвол не блокирует доступ по протоколу SSH (порт 22).
В приведенных в данном руководстве примерах команд в качестве интерпретатора команд терминала используется Bash.Все команды выполняются под привилегированным пользователем root. Для повышения привилегий пользователя может потребоваться использование команды sudo. В примерах команд опущено приглашение интерпретатора.
В данном руководстве приводятся примеры команд для версии Визиона 1.1.1 Номер версии используется в имени файла с архивом дистрибутива vision-distrib-1.1.1-140.tar.gz.
На момент выполнения установки или обновления “Визиона” пользователем, версия может отличаться.
3.1 Зависимости
- ansible >= 2.9
- sshpass
- nginx
- postgresql = 11|12
Данные пакеты и их зависимости будут установлены при развертывании. При невозможности их автоматической установки требуется вручную установить данные пакеты.
3.2 Установка сервера Визиона
Дистрибутив Визиона представляет собой tar.gz архив, который необходимо распаковать в произвольный каталог на узле Визион.Сервер (например, в /root). Все команды, приводимые ниже, требуется выполнять из директории распакованного архива (например, vision-distrib-1.1.1-140.tar.gz). Для установки необходимо перейти в директорию, в которую был распакован архив, и выполнить скрипт install_server.sh:
cd /root
tar -xvf vision-distrib-1.1.1-140.tar.gz
cd vision-distrib-1.1.1-140
./install\_server.sh
В ходе установки будут созданы все необходимые каталоги, установлено необходимое ПО, установлено ПО СУБД Postgres, создана необходимая для работы Визиона база данных.
Успешным считается получение вывода в терминале строк вида
PLAY RECAP **************************************************************************************localhost: ok=112 changed=9 unreachable=0 failed=0 skipped=8 rescued=0 ignored=0 |
---|
После данной операции необходимо посетить веб-интерфейс Визион по адресу https://VISION_IP_ADRESS/ и выбрать пункт «Модуль администратора»
Веб-интерфейс Визион
Затем в боковом меню выбрать «Параметры» -> «Инсталляционная карта». В открывшемся окне выбрать ⠇и пункт «Добавить ПАК»:
Раздел “Инсталляционная карта”
В окне «Добавление ПАК» перенести из инсталляционной карты конфигурацию ПАК и назначить идентификаторы модулей, узлов, виртуальных машин и сервисов. Данные идентификаторы будут использоваться при работе с мониторингом в метриках и уведомлениях.
Форма “Добавления ПАК”
После создания структуры ПАК, выбрать ⠇и нажать «Инвентори»:
Контекстное меню раздела “Инсталляционная карта”
Плейбук Ansible, необходимый для дальнейшего развертывания, будет сохранен на машине оператора, а так же доступен на узле мониторинга по пути /opt/skala-r/vision/server/inventory/, и будет иметь в названии имя ПАК, дату и время создания, например, МБД.П_2024-01-09 14:54:44.793815.yml
Необходимо отредактировать файл, заменив строки "»>REPLACE ME!«<" на соответствующие корректные данные. Не рекомендуется изменять метки в разделах labels.
Параметры:
- all (общие параметры по-умолчанию)
ansible_user - пользователь для подключения к хосту по ssh
ansible_ssh_pass - пароль для подключения к хосту по ssh
ansible_become_user - пользователь для проведения операций на узле (рекомендуется root)
ansible_become_password - пароль пользователя для проведения операций на узле
1.1) ipmi_auth_params - параметры по-умолчанию для подключения через ipmi
username – имя пользователя
password - пароль
- vision_proxy (настройки Визион.Прокси)
ansible_host - IP-адрес для подключения к хосту с Визион.Прокси по ssh
vision_server_host - IP-адрес хоста Визион.Сервер
snmp_targets – раздел для указания списка IP-адресов коммутационных узлов
ceph_exporter - раздел для указания IP-адреса для подключения к Ceph в формате ip:port
2.1) supv_exporter
endpoint – URL панели администратора СУПВ, например, https://192.168.186.1/
login - логин для подключения к панели администратора
password - логин для подключения к панели администратора
trust – использовать ли для подключения HTTP взамен HTTPS
2.2) one_exporter
endpoint - URL панели администратора OpenNebula
username - логин для подключения к панели администратора
password - пароль для подключения к панели администратора
- vision_agents
ansible_host - IP-адрес для подключения к хосту с Визион.Агентом по ssh
3.1) ipmi_exporter
bmc_ip - IP-адрес соответствующего BMC узла, для подключения по IPMI
3.2) postgres_exporter
pg_postgres_user – пользователь для подключения к Postgres для мониторинга
pg_postgres_pass - пароль для подключения к Postgres для мониторинга
3.3 Установка Визион.Прокси и Визион.Агентов
Для установки требуется описать будущую конфигурацию Визиона в двух файлах (так называемых inventory) с параметрами развёртывания Визиона согласно инсталляционной карте. Шаблоны файлов расположены в директории /inventory_template
.
Для установки Визион.Прокси необходимо последовательно запустить команды:
ansible-playbook -i МБД.П_2024-01-09 14:54:44.793815.yml proxy_install.yml
ansible-playbook -i МБД.П_2024-01-09 14:54:44.793815.yml proxy_config.yml
Для установки Визион.Агентов необходимо последовательно запустить команды:
ansible-playbook -i МБД.П_2024-01-09 14:54:44.793815.yml agent_install.yml
ansible-playbook -i МБД.П_2024-01-09 14:54:44.793815.yml agent_config.yml
Успешным считается получение в результате каждой команды вывода сообщений, в которым параметр failed
равен 0
, например:
vision_proxy: ok=96 changed=43 unreachable=0 failed=0 skipped=5 rescued=0 ignored=0
3.4 Настройки безопасности
3.4.1 Межкомпонентное взаимодействие
В целях повышения безопасности работа между компонентами Визиона реализована через TLS и Basic Auth. Стандартные сертификаты расположены в директории cert в корне дистрибутива. Сгенерировать уникальный сертификат можно с помощью скрипта _generate_components_cert.sh. Настройка аутентификации и размещение сертификатов выполняется автоматически при развертывании компонентов Визиона. Параметры технической учетной записи для авторизации между компонентами конфигурируются в файле _deploy_settings.yml, расположенном в корне дистрибутива - basic_auth_username и basic_auth_password (имя пользователя и пароль соответственно).
3.4.2 Сертификат nginx
После развертывания Визиона при необходимости можно заменить сертификат nginx для эндпоинтов https://<vision-host>/ и https://<vision-host>:8092/
1. Скопируйте сертификат и ключ в /opt/skala-r/vision/cert/
2. В файле /etc/nginx/conf.d/cert.conf
замените пути к сертификату и ключу на новые
ssl_certificate /opt/skala-r/vision/cert/nginx_default.crt;
ssl_certificate_key /opt/skala-r/vision/cert/nginx_default.key;
3. Перезапустите nginx
systemctl restart nginx.service
4. Убедитесь, что на https://<vision-host>/ и https://<vision-host>:8092/ установлен новый сертификат
curl --cacert /opt/skala-r/vision/cert/<YOU-CERT>.crt https://<vision-host>/
4 УСТАНОВКА ОБНОВЛЕНИЙ ПРОГРАММЫ#
Установка обновлений ПО “Визион” и дополнительного ПО выполняется в случае, если на хосте “Визиона” уже существует ранее установленные версии ПО. Для установки и для обновления “Визиона” используется один и тот же пакет установочных файлов, поставляемый в виде архива.
5 ПРОВЕРКА ПРОГРАММЫ#
5.1 Отображение веб-интерфейса
По завершении процесса установки должен быть доступен веб-интерфейс ПО Визион через браузер по адресу http://<хост Визиона>
, далее пункт Аналитические панели и Модуль Администратора.
5.2 Проверка работоспособности сервисов
Для проверки успешности установки каждого компонента зайти по ssh
на требуемый узел и запустить команду:
cd /opt/skala-r/vision
./check_service.sh
В результате, например для Визион.Сервера, вывод должен быть следующий:
Пример результата для Визион.Сервер
Критерием успешности развертывания является значение active для перечисленных сервисов:
Визион.Сервер:
-
grafana
-
victoriametrics_st
-
promlens
-
alertmanager
-
vmalert_st
-
snmp_notifier
-
vision_core
-
vision_alertcollector
-
vision_taskdaemon
-
nginx
-
postgresql
Визион.Прокси (в зависимости от типа ПАК)
-
vmagent_proxy
-
ipmi_exporter
-
snmp_exporter
-
blackbox_exporter
-
supv_exporter
-
one_exporter
-
postgres_exporter_proxy (в версии 1.1.1 не используется)
Визион.Агент (в зависимости от типа ПАК)
-
vmagent_agent
-
node_exporter
-
utlz_exporter
-
postgres_exporter_agent
При статусе равном failed обратиться к пункту 5.3 для получения дополнительной информации.
Конфигурация компонентов после развертывания находится в директориях /opt/skala-r/vision/<server|proxy|agent>/<vision_component>/etc.
5.3 Просмотр логов компонентов
Просмотреть логи работы компонентов за интересующий период можно, используя службу журналирования логов journalctl, выполнив команду:
journalctl -u <имя сервиса> --since "начало интервала YYYY-MM-DD hh:mm:ss" --until "конец интервала YYYY-MM-DD hh:mm:ss"
Просмотреть текущие логи в режиме онлайн можно, используя cлужбу журналирования логов journalctl, выполнив команду
journalctl -fu <имя сервиса>
Для просмотра событий за временной период можно использовать команду:
journalctl -u <имя сервиса> --since "начало интервала YYYY-MM-DD hh:mm:ss" --until "конец интервала YYYY-MM-DD hh:mm:ss"
Например
journalctl -u vision_core --since "2022-10-26 11:05:00" --until "2022-10-26 11:10:00"
6 УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ ВИЗИОНА#
6.1 Выводятся всплывающие сообщения об ошибках в Grafana
Описание неисправности
В браузере отображается сообщение об ошибке браузера в виде всплывающего сообщения.
Способ устранения
Очистить cookies браузера. Обратитесь к инструкции к вашему браузеру.
6.2 На стартовом дашборде Grafana отсутствуют вычислительные узлы или виртуальные машины
Описание неисправности
При посещении стартовой страницы Grafana по адресу <IP адрес Визион.Сервера>/vision/grafana/?orgId=1
, в списке узлов (виртуальных машин) отсутствует один или все узлы (виртуальные машины).
Способ устранения
-
Убедится, что все сервисы Визиона на отсутствующих узлах (виртуальных машинах) находятся в запущенном состоянии (пункт 5.2 данного руководства). При необходимости просмотреть логи (пункт 5.3 данного руководства).
-
С помощью браузера перейти по адресу
<IP адрес узла или ВМ>:8429/targets
и убедится, что все таргеты находятся в состоянии (State) равному up.
Пример состояния таргетов
- Проверить корректность текущего времени и даты командой
date
на отсутствующих узлах (виртуальных машинах).
6.3 При установке Визиона некоторые пакеты не устанавливаются
Описание неисправности
При установке Визиона версии 1.1.1 в процессе развертывания не удается установить rpm пакет по причине конфликта с предыдущей версией (согласно выводу в терминале).
Способ устранения
Необходимо убедиться, что пакеты предыдущих инсталляций удалены. Проверить факт наличия старого пакета можно командой:
rpm -qa | grep <имя конфликтного пакета Визиона>
А удалить командой
rpm -e <имя конфликтного пакета Визиона>
После чего повторно развернуть компонент Визиона.