Документ | Описание | Ссылка на PDF |
---|---|---|
Руководство администратора | v1.4.2 |
1 ОБЩИЕ СВЕДЕНИЯ#
1.1 Наименование программы#
Полное наименование: Система мониторинга ПАК семейства Скала^р: ПО «Скала^р Визион».
Краткое наименование: Визион.
1.2 Область применения#
Основным назначением ПО «Скала^р Визион» (далее Визион) является предоставление возможности контроля жизненного цикла ПАК (машин) производства Скала^р, обслуживаемых персоналом, к квалификации которого не предъявляется серьезных требований. Осуществляется процесс мониторинга программных компонентов ПАК, сбор информации о количестве и составе управляемых объектов, метрик. Обеспечивает оповещение о событиях при сбое работы объектов мониторинга.
1.3 Уровень подготовки администратора#
Администратор должен обладать следующими навыками:
- установка, настройка системного программного обеспечения в ОС Linux;
- просмотр и редактирование файлов с использованием команд ls, cat, less, vim, nano.
1.4 Системные требования#
Параметр | Требование |
---|---|
CPU рекомендованное | |
Визион.Сервер от 8 ядер | |
Визион.Прокси от 2 ядер | |
Визион.Агент от 1 ядра | |
RAM рекомендованное | |
Визион.Сервер от 32 Гб; | |
Визион.Прокси от 16 Гб | |
Визион.Агент от 4 Гб | |
ROM рекомендованное | |
Визион.Сервер - в зависимости от количества ПАК на контуре и требуемой глубины хранения метрики, от 600 Гб SSD на каждый ПАК | |
Визион.Прокси в зависимости от требуемой глубины кеширования данных от 20 Гб SSD | |
Визион.Агент в зависимости от требуемой глубины кеширования данных от 5 Гб SSD | |
Поддерживаемые ОС | |
ОС АЛЬТ 8 СП СЕРВЕР р9, р10 | |
Astra Linux Special Edition 1.7.3 (Воронеж) | |
РЕД ОС 7.3 (Муром) | |
Поддерживаемые браузеры | |
Google Chrome версий от 116 и выше | |
Firefox начиная с 60.хх версии |
Примечание:
Основной потребитель ресурсов на стороне сервера Визиона - VictoriaMetrics
Оценка требований к ресурсам (при периоде извлечения данных каждые 15 секунд для всех временных рядов):
- 1 ГБ ОЗУ на 1 млн активных временных рядов;
- ядро ЦП на каждые 300 тыс. вставленных точек данных в секунду;
- менее байта на точку данных (среднем 0.2-0.5 Б/точка);
- входящий трафик 100 байт на каждую принятую точку данных;
- на долю служебных метрик самого мониторинга приходится около 7 тыс. временных рядов.
На примере S3: на не нагруженном стенде из 4 узлов хранения и 2 балансировщиков, получается порядка 30 тыс. активных временных рядов, что примерно соответствует 120 Кб на одну точку времени или 700 Мб в день при периоде извлечения данных каждые 15 секунд для всех временных рядов.
Данные оценки носят предварительный характер и могут менятся как в большую, так и меньшую сторону.
2 СОСТАВ КОМПОНЕНТОВ#
Для развертывания мониторинга на целевой инфраструктуре поставляется архив, содержащий в себе компоненты программного обеспечения:
- Визион.Сервер - предоставляет функционал единой точки доступа к управлению мониторингом; устанавливается в одном экземпляре на контур (совокупность ПАК);
- Визион.Прокси - промежуточное звено, аккумулирует метрики с узлов ПАК; устанавливается по одному на каждый ПАК, возможно совмещение с сервером Визиона при использовании единой точки Визиона в каждом ПАК (Машине);
- Визион.Агент - агент мониторинга, обеспечивающий сбор данных с узла; устанавливается на узел ПАК или на виртуальную машину
- Агент Платформы - сервис, позволяющий серверу Визиона конфигурировать агенты мониторинга по HTTPS. Агент необходимо развернуть на все узлы, на которые, впоследствии, будут установлены агенты мониторинга.
Все компоненты должны находится в одной сети.
Оптимальным решением является выделение под Визион.Сервер и Визион.Прокси отдельных виртуальных серверов в рамках узлов управления Машин.
Архитектурная схема
Для эффективного мониторинга ПАК важно, чтобы все узлы имели синхронизированное текущее время. Неправильные временные метки могут привести к неточным или вводящим в заблуждение данным мониторинга, что затруднит выявление и устранение проблем.
2.1 Визион.Сервер#
В состав Визион.Сервера входят следующие компоненты:
- Визион backend - бекенд, обеспечивающий API и осуществляющий управление и координацию всех сервисов;
- PostgreSQL - служебная база данных;
- VictoriaMetrics - база данных временных рядов для хранения метрик;
- VMalert - компонент, предназначенный для генерации оповещений на основе данных в Victoriametrics и правил алертинга (триггеров);
- AlertCollector - компонент, регистрирующий оповещения в служебную БД;
- Grafana backend - компонент, обеспечивающий альтернативную визуализацию собираемых метрик;
- AlertManager - компонент, обеспечивающий обработку, группировку и отправку оповещений (поддерживает SMTP и веб-хуки);
- SNMP_notifier - вспомогательный компонент, предназначенный для отправки оповещений с помощью протокола SNMP (Simple Network Management Protocol);
- TaskDaemon - компонент, отвечающий за выполнение фоновых задач (например, развертывание агентов и их плагинов);
- Nginx - прокси-сервер, обеспечивающий получение и перенаправление запросов на компоненты Визион.Сервера.
2.2 Визион.Прокси#
В состав Визион.Прокси входит единственный компонент - VMagent, обеспечивающий перенаправление поступающих метрик в Визион.Сервер.
2.3 Визион.Агент#
В состав Визион.Агента входят следующие компоненты:
- VMagent - компонент, обеспечивающий сбор метрик с плагинов
- Плагины - дополнительно устанавливаемые модули (экспортеры и параметры скрепинга метрик), расширяющие состав, собираемых системой мониторинга, метрик.
2.4 Агент Платформы#
Агент Платформы представлен единственным компонентом - PLagent.
В состав дистрибутива опционально включается плейбук развертывания агента Платформы, необходимый для взаимодействия сервера Визиона с сервером для конфигурирования агентов мониторинга. Данный агент необходимо развернуть на все узлы, на которые в последствии будут установлены Визион.Агент и Визион.Прокси.
В данные момент установка возможна на следующих ОС:
- Alt Linux Server 8 СП p9 (c9f2)
- Alt Linux Server 8 СП p10 (c10f1)
- Astra Linux 1.7.3 (Воронеж)
- РЕДОС 7.3
На целевых системах должны присутствовать следующие пакеты:
- freeipmi (если предполагается присутствие плагина ipmi на узле, как правило, это ВМ Визиона на служебном узле)
- lsblk (для плагина utlz_exporter, необходима поддержка ключей -o и -J)
- sudo (> 1.6.9p15)
Перед началом развертывания агентов необходимо обеспечить сетевую связность между узлами и доступность серверов с хоста Визиона, а также наличие доступа к ним по протоколу SSH (порт 22).
2.5 Состав сервисов#
Сервис ОС | Компонент | Порт | Протокол |
---|---|---|---|
postgresql | Визион.Сервер | 5432 | HTTPS |
vision_core | Визион.Сервер | 8088 | HTTPS |
nginx | Визион.Сервер | 443, 80, 8092 | HTTPS |
grafana | Визион.Сервер | 3000 | HTTPS |
victoriametrics_st | Визион.Сервер | 8428 | HTTPS |
vmalert_st | Визион.Сервер | 8880 | HTTPS |
vision_alertcollector | Визион.Сервер | 10111 | HTTPS |
alertmanager | Визион.Сервер | 9093 | HTTPS |
snmp_notifier | Визион.Сервер | 9464 | HTTPS |
vision_vmagent_proxy | Визион.Прокси | 8430 | HTTPS |
vision_vmagent_agent | Визион.Агент | 7529 | HTTPS |
plagent | Агент Платформы | 7550, 7551 | HTTPS, gRPC |
2.6 Плагины#
Плагины Визиона представляют собой механизм, с помощью которого пользователь может расширять функциональность системы мониторинга. Они дают возможность гибко настраивать процессы мониторинга в соответствии с конкретными потребностями и целями.
Каждому плагину соответствует свой тип объекта мониторинга, с которого извлекается соответствующее ему множество метрик.
Извлекаемые метрики адаптированы под характеристики и особенности объекта мониторинга. Например, для мониторинга серверов могут быть доступны метрики использования памяти и дискового пространства, в то время как для сетевых устройств - метрики пропускной способности, задержек и ошибок передачи данных.
Плагину может соответствовать комплиментарный бинарный файл (экспортер), непосредственно осуществляющий сбор метрик. При добавлении в Визион.Агент такого плагина, он автоматически устанавливается согласно местоположению агента и запускается как сервис операционной системы.
В случае, если плагин не использует экспортер, он является плагином-скреппером, сбор метрик осуществляется непосредственно с эндпоинта объекта мониторинга.
В состав Визиона входят следующие плагины:
Название | Мониторинг | ПАК | Сервер/ВМ** | Сервис ОС | Порт*** |
---|---|---|---|---|---|
node_exporter | ОС сервера | все | все | vision_node_exporter | 9101 |
ipmi_exporter | BMC (IPMI) | все | ВМ с Прокси | vision_ipmi_exporter | 9290 |
snmp_exporter | коммутатор (SNMP) | все | ВМ с Прокси | vision_snmp_exporter | 9116 |
utlz_exporter | утилизация сервера | все | все серверы | vision_utlz_exporter | 9092 |
utlz_exporter_v0* | утилизация сервера | все | все серверы | vision_utlz_exporter_v0 | 17070 |
one_exporter | OpenNebula | МВ.ВК | узел с OpenNebula frontend | vision_one_exporter | 9621 |
ceph_scraper | Ceph | МВ.ВК | ВМ с Прокси | ||
ha_cluster_exporter | Pacemaker/Corosync | МБД.П | узел кластера | vision_ha_cluster_exporter | 9664 |
postgres_exporter_agent | Postgres | МБД.П | узел кластера | vision_postgres_exporter_local | 9187 |
postgres_exporter_multi | Postgres | МБД.П | узел кластера или узел с Прокси | vision_postgres_exporter_multi | 9188 |
sql_exporter | Postgres | МБД.П | узел кластера или узел с Прокси | vision_sql_exporter | 9399 |
spectrum_agent_scraper | агент Спектра | МБД.П | узел кластера | ||
supv_exporter | сервисы СУПВ | МВ.С/ВРМ | ВМ с Прокси | vision_supv_exporter | 9179 |
haproxy_scraper_local | HAProxy | МХД.О | узлы балансировки | ||
s3gateway_compression_server_scraper | шлюз S3 | МХД.О | узлы балансировки | ||
s3gateway_ostor_server_scraper | сервисы S3 | МХД.О | узлы хранения | ||
nginx_exporter | Nginx | МХД.О | все серверы | vision_nginx_exporter | 9113 |
vision_exporter | сервисы ОС | МХД.О/MБД.П | все серверы | vision_exporter | 7531 |
systemd_exporter | systemd юнитов | все | все серверы | vision_systemd_exporter | 9110 |
process_exporter | процессы ОС | все | все серверы | vision_process_exporter | 9120 |
kafka_exporter | Kafka | МБД.С | ВМ с Прокси | vision_kafka_exporter | 9308 |
bash_exporter**** | собственные метрики | все | все серверы | vision_bash_exporter | 17055 |
* utlz_exporter_v0 по умолчанию нет необходимости устанавливать, только по запросу. Для работы ему требуется дополнительный файл конфигурации, который доставляется на хосты с помощью плейбука playbooks/utlz_v0_config.yml
.
** На агенты каких серверов или ВМ рекомендуется добавлять плагины.
*** Порт, занимаемый экспортером по умолчанию. Порты конфигурируются в настройках плагина в интерфейсе Визиона.
**** Плагин bash_exporter устанавливается отдельно от основного дистрибутива Визиона.
3 УСТАНОВКА ПРОГРАММЫ#
Перед началом установки необходимо убедиться в доступности узлов ПАК с хоста Визиона. Проверить доступность можно при помощи команды ping.
Если в выводе команды ping содержатся ошибки, необходимо убедиться в том, что в инсталляционной карте содержатся корректные данные, обеспечена сетевая связность между узлами и файрвол не блокирует доступ по протоколу SSH (порт 22).
В приведенных в данном руководстве примерах команд в качестве интерпретатора команд терминала используется Bash.
Все команды выполняются под привилегированным пользователем root. Для повышения привилегий пользователя может потребоваться использование команды sudo. В примерах команд опущено приглашение интерпретатора.
В данном руководстве приводятся примеры команд для версии Визиона 1.4 Номер версии используется в имени файла с архивом дистрибутива, например vision-distrib-<version>.gz
.
На момент выполнения установки или обновления “Визиона” пользователем, версия может отличаться.
Актуальную инструкцию для сборки можно посмотреть в файле README.MD в архиве дистрибутива.
Алгоритм установки компонентов Визиона и его настройки:
- Установка Визион.Сервер
- Конфигурация объектов мониторинга
- Формирование инвентори-файла
- Установка агентов Платформы
- Настройка плагинов
Зависимости:
- ansible >= 2.9
- sshpass
- nginx
- postgresql = 11|12
Данные пакеты и их зависимости будут установлены или обновлены при развертывании с помощью плейбуков ansible. При невозможности их автоматической установки требуется вручную установить данные пакеты. Все необходимые зависимости включены в состав дистрибутива для возможности установки Визиона без подключения к глобальной сети Internet.
3.1 Установка Визион.Сервер в интерактивном режиме#
Дистрибутив Визиона представляет собой tar.gz архив. Далее описана работа с дистрибутивом.
Для установки Визиона в состав дистрибутива входит скрипт установки setup.sh. Установка должна выполнятся на целевом узле (либо виртуальной машине) и требует привилегий суперпользователя.
- Открыть терминал и перейти в директорию с архивом дистрибутива, например, /root:
cd /root
- Распаковать архив с дистрибутивом `.tar.gz``, например:
tar -xzvf vision-distrib-1.4-289.tar.gz
- Перейти в директорию дистрибутива, например:
`сd /root/vision-distrib-1.4-289
- Запустить скрипт:
./setup.sh
-
Выбрать одно из действий:
3. Установить пакеты зависимостей из репозитория дистрибутива
в случае отсутствия пакетов в системном репозитории ОС;4. Установить пакеты зависимостей из репозитория OC
.
Будут установлены все пакеты зависимостей для соответствующих операционных систем. Так же для запуска этой операции можно вызвать команду ./setup.sh -g
(./setup.sh -p
в случае отсутствия пакетов в системном репозитории ОС).
При невозможности автоматической установки пакетов, требуется вручную установить пакеты из списка, содержащегося в файле ./os_packages/<YOUR_OS>/package_list
(см. документацию на операционную систему).
По окончанию установки пакетов ее лог будет сохранен в файл:
/opt/skala-r/var/log/vision/vision_packages.log.<ДАТА_УСТАНОВКИ>
.
- Запустить скрипт ``./setup.sh` и выбрать действие “1. Установить сервер Визиона.”.
Будут установлены все необходимые компоненты, запущены требуемые сервисы. Так же для запуска этой операции можно вызвать команду ./setup.sh -i
В процессе установки будет предложено выбрать IP-адрес, на который в последствии будут отправляться метрики с агентов мониторинга. Как правило, он соответствует IP-адресу компонента Визион.Сервер в сети, в которой находятся все компоненты мониторинга (менеджмент-сеть).
По окончанию установки лог, сформированный в процессе инсталляции, будет сохранен в файл:
/opt/skala-r/var/log/vision/vision_install.log.<ДАТА_УСТАНОВКИ>
3.2 Установка Визион.Сервер в автоматическом режиме#
Поддерживается автоматическая установка с передачей IP-адреса, на который в последствии будут отправляться метрики с агентов мониторинга. Как правило, он соответствует IP-адресу сервера Визиона в сети, в которой находятся все компоненты мониторинга (менеджмент-сеть).
Установка должна выполнятся на целевом сервере (виртуальной машине).
Требования при установке:
-
наличие привилегии суперпользователя;
-
наличие необходимых пакетов в системном репозитории ОС.
- Открыть терминал и перейти в директорию с архивом дистрибутива, например:
sh
cd /root
- Распаковать архив с дистрибутивом, например:
sh
tar -xzvf vision-distrib-<version>.tar.gz
- Перейти в директорию дистрибутива, например:
sh
сd /root/vision-distrib-<version>
- Запустить скрипт
./setup.sh
с ключом-s
, указав IP-адрес сервера Визиона, например:
sh
./setup.sh -s 192.168.1.1
Автоматически будут установлены пакеты зависимостей из системного репозитория ОС и непосредственно сервер Визиона (аналогично п.3.1).
3.3 Проверка корректности установки Визион.Сервер#
Для проверки корректности установки:
- Открыть терминал и перейти в директорию с установленным Визионом:
sh
cd /opt/skala-r/vision
- Запустить скрипт check_service.sh:
sh
./check_service.sh
Критерием корректности развертывания является значение active для всех сервисов, приведенных в таблице в выводе скрипта check_service.sh.
По завершении процесса установки должен быть доступен веб-интерфейс Визиона через браузер по его IP-адресу (вводим в адресной строке адрес вида https://192.168.186.1, далее выбираем пункты «Аналитические панели» и «Модуль Администратора».
3.4 Просмотр логов компонента#
Просмотреть логи работы компонентов за интересующий период можно, используя службу журналирования логов journalctl, выполнив команду:
journalctl -u <имя сервиса> --since "начало интервала YYYY-MM-DD hh:mm:ss" --until "конец интервала YYYY-MM-DD hh:mm:ss"
Просмотреть текущие логи в режиме онлайн можно, используя службу журналирования логов journalctl, выполнив команду:
journalctl -fu <имя сервиса>
Для просмотра событий за временной период можно использовать команду:
journalctl -u <имя сервиса> --since "начало интервала YYYY-MM-DD hh:mm:ss" --until "конец интервала YYYY-MM-DD hh:mm:ss"
Например:
journalctl -u vision_core --since "2024-04-26 11:05:00" --until "2024-04-26 11:10:00"
3.5 Просмотр журналов Визион.Сервер#
Журнал Визион.Сервера размещаются в директории /opt/skala-r/var/log/vision/journal
, а журнал аудита - в /opt/skala-r/var/log/vision/audit
.
Просмотреть текущие журналы можно выполнив команды, например:
sh
tail -n 20 /opt/skala-r/var/log/vision/journal/journal.log
tail -n 20 /opt/skala-r/var/log/vision/audit/audit.log
3.6 Резервное копирование ВМ Визион#
Инструкция по резервному копированию и восстановлению работоспособности ВМ Визион находится в разделе “Дополнительная документация”.
4 КОНФИГУРАЦИЯ ОБЪЕКТОВ МОНИТОРИНГА#
После развертывания Визион.Сервер, необходимо ввести информацию об объектах мониторинга в систему. В консоли администратора мониторинга предусмотрен пользовательский интерфейс для настройки объектов. Алгоритм настройки выглядит следующим образом:
- Перейти в веб-интерфейс Визиона, открыв Интернет-браузер, ввести в строке для адреса IP-адрес сервера Визиона
https://<vision-ip>
. - Перейти в раздел в боковом меню “Параметры” -> “Объекты”, в панели “Контуры” нажать кнопку ⠇ , выбрать “Добавить ПАК”. Ввести информацию о ПАК.
- В случае отсутствия на добавляемом ПАК агентов Платформы, необходимо его развернуть в соответствии с разделом 6 настоящего Руководства.
- Перейти во вкладку “Агенты” и нажать кнопку “Сконфигурировать агенты”.
- Нажать на иконку 🖉 и включить необходимые плагины.
- Перейти в пункт меню “Конструктор выражений”, ввести выражение up{_pak_id="<ИМЯ_ПАК>"} и проверить, что работают все сконфигурированные плагины (в наличии временные ряды с именем метки “job” и значениями имен агентов).
4.1 Подготовка к настройке#
Перед настройкой требуется убедиться, что имеется инсталляционная карта с соответствующим описанием ПАК, либо все необходимые параметры и доступы для постановки объектов на мониторинг.
Перейти в веб-интерфейс Визиона, открыв Интернет браузер, и введя в строке адреса IP-адрес сервера Визиона, например, https://<vision-ip>
.
Добавить новый ПАК: раздел в боковом меню “Параметры”->“Объекты”, в панели “Контур” нажать кнопку ⠇ и выбрать “Добавить ПАК”.
Откроется форма «Добавление ПАК». Пример интерфейса:
Требуется ввести данные во все разделы (в соответствии с инсталляционной картой) и нажать кнопку “Добавить” внизу экрана, чтобы сохранить введенную конфигурацию. В случае, если обязательные поля остались незаполненными, то при попытке сохранить они будут подсвечены цветной рамкой и соответствующим текстом и данные не будут сохранены до тех пор пока все обязательные поля не будут заполнены. Также поля будут подсвечены в случае ввода значений, которые уже используются в других ПАК, и сохранение таких данных будет невозможно.
При заполнении формы для добавления и удаления строк используются элементы управления:
При нажатии кнопки “Отменить” сохранение будет отменено и введенные данные потеряны.
Возможен альтернативный ввод параметров через импорт CSV файла. Для этого используются элементы управления:
Необходимо экспортировать настройки в CSV файл, изменить их и импортировать измененный файл.
Описание полей формы приведено в разделах ниже.
4.1.1 Описание функций импорта и экспорта настроек в csv-файл#
В режиме создания/редактирования ПАКа имеется возможность импорта/экспорта настроек ПАКа.
В поле изменения компонентов (модули, серверы, ВМ, коммутаторы и т.д.) ПАКа имеются кнопки
При нажатии кнопки импорта появляется окно файлового менеджера, в котором требуется выбрать csv-файл с настройками компонента ПАКа.
Примечание: импорт осуществляется в режиме дозаписи настроек.
При нажатии кнопки экспорта осуществляется скачивание csv-файла в выбранную папку. При этом csv-файл имеет имя аналогичное имени ПАКа в формате PAK_<имя_ПАКа>
. Скачанный csv-файл содержит текущие настройки компонента ПАКа.
4.2 Заполнение формы «Добавление ПАК»#
4.2.1 ПАК#
- «Имя» - ввести идентификатор ПАК (в дальнейшем изменить невозможно без реинсталляции)
- «Тип» - выбрать из справочника тип ПАК в соответствии с поставкой
- «Описание» – ввести произвольный вспомогательный текст
4.2.2 Модуль#
Заполнение информации о модулях. Тип модуля берется из инсталляционной карты. Список меняется в зависимости от предварительно выбранного типа ПАК.
- «Имя» - идентификатор модуля (в дальнейшем изменить невозможно без реинсталляции)
- «Тип» – тип модуля, в соответствие с типом ПАК. Требуется выбрать из списка
- «Описание» – ввести произвольный вспомогательный текст
4.2.3 Сервер#
Требуется ввести информацию об узлах.
- «Имя» - идентификатор сервера (в дальнейшем изменить невозможно без реинсталляции)
- «Модуль» – выбрать из заведенных ранее в пункте Модуль
- «Тип» – выбрать из справочника
- «Адрес» – адрес, по которому будет установлен агент
- «Адрес BMC» – адрес, по которому будут производить опрос агенты мониторинга, расположенные на Визион.Прокси
4.2.4 ВМ#
Требуется ввести информацию о виртуальных машинах, в том числе сервисных (Визиона, Генома и т.д.).
- «Имя» - идентификатор ВМ (в дальнейшем изменить невозможно без реинсталляции)
- «Сервер» – принадлежность ВМ к физическому узлу (серверу)
- «Адрес» – адрес ВМ в соответствии с инсталляционной картой
4.2.5 Коммутатор#
Требуется ввести информацию о серверах маршрутизации (коммутаторы) из инсталляционной карты.
- «Имя» - идентификатор коммутатора (в дальнейшем изменить невозможно без реинсталляции);
- «Модуль» – принадлежность к модулю, выбрать из заведенных ранее
- «Адрес» – адрес коммутатора.
4.3 Редактирование ПАК#
Редактировать ПАК: раздел в боковом меню для ПАК нажать кнопку ⠇ и выбрать “Редактировать”.
Форма редактирования ПАК:
В форме редактирования ПАК используются те же элементы что и в форме добавления ПАК, но нет возможности изменять имена объектов.
4.4 Дублирование ПАК#
В случае, если требуется создать структуру ПАК, аналогичную уже существующему ПАК, можно воспользоваться функцией дублирования.
Дублировать ПАК: раздел в боковом меню для ПАК нажать кнопку ⠇ и выбрать “Дублировать”.
Форма выглядит как при добавлении ПАК, но все объекты уже созданы и остается изменить их имена и заполнить поля:
Возможно также удалять и добавлять объекты при необходимости.
5 ФОРМИРОВАНИЕ ИНВЕНТОРИ-ФАЙЛА#
Для проведения сервисных операций с узлами ПАК может потребоваться так называемый инвентори-файл, описывающий перечень узлов и их технические учетные записи (ТУЗ). С использованием Ansible производится автоматизация управления конфигурациями и выполнение задач на этих узлах.
Данный файл может быть получен из веб-интерфейса Визиона для уже добавленных ПАК.
В этом случае достаточно выбрать необходимый ПАК, нажать ⠇, пункт “Инвентори”. Файл-инвентори скачается, и так же будет доступен в директории /opt/skala-r/vision/server/inventory/. Имя файла состоит из имени ПАК и даты экспорта, например, PAK-1_2024-06-10_10-10-10.yml.
6 УСТАНОВКА АГЕНТОВ ПЛАТФОРМЫ#
- Сформировать инвентори файл для ПАК (см. п.5)
- Отредактировать файл, например:
nano /opt/skala-r/vision/server/inventory/PAK-1_2024-06-10_10-10-10.yml
- Заменить значения “===REPLACE===” на реальные:
- ansible_user и ansible_ssh_pass - имя и пароль учетной записи для подключения к хостам по SSH
- ansible_become_password - пароль учетной записи администратора для установки агента Платформы
- Перейти в директорию дистрибутива:
сd ./vision-distrib-1.4-289
- При необходимости, сконфигурировать установку агента Платформы при помощи файла
./plagent/_plagent_settings.yml
- Запустить развертывание, например:
ansible-playbook -i /opt/skala-r/vision/server/inventory/PAK-1_2024-04-14_23-19-46.yml ./plagent/install.yml
Результат работы скрипта при успешном развёртывании будет иметь вид:
Так же в рамках автоматизации работы с агентами Платформы доступны некоторые сервисные команды. Общий вид команд для их запуска:
ansible-playbook -i <INVENTORY_PATH> <PLAYBOOK>
ansible-playbook -i <INVENTORY_PATH> -l <HOST> <PLAYBOOK>
где <INVENTORY_PATH> - путь до итогового файла инвентори, - выполняемое действие:
./plagent/install.yml
- установить агенты Платформы;./plagent/status.yml
- вывести статус агентов Платформы;./plagent/stop.yml
- остановить агенты Платформы;./plagent/start.yml
- запустить агенты Платформы;./plagent/remove.yml
- удалить агенты Платформы - имя сервера(ов) из инвентори, для которых необходимо выполнить команду, напримерserver1
.
7 НАСТРОЙКА АГЕНТОВ И УСТАНОВКА ВИЗИОН.ПРОКСИ#
7.1 Конфигурирование агентов#
Последовательность действий:
- Перейти во вкладку “Агенты” и нажать кнопку “Сконфигурировать агенты”.
Откроется форма настроек.
- В настройках указать:
- Расположение прокси-сервера Визиона. На выбранный узел будет установлен компонент Прокси-сервер Визиона, а также на нем требуется сконфигурировать плагины, которые обозначены типом «ВМ с прокси» в пункте 2.6 данного руководства.
- Расположение агентов: по умолчанию, в форме отобразятся все серверы и ВМ, которые были ранее указаны в списке объектов. Для корректного расположения, на серверах должны быть предварительно установлены агенты Платформы.
-
Плагины – состав конфигурационных файлов, содержащих в себе инструкции для настройки агентов и расстановки экспортеров. На данном шаге необходимо выбрать Плагины в соответствие с типом узла. Для узла, который будет выбран как Прокси, требуется выбрать плагины, реализующие сбор метрик снаружи относительно объекта мониторинга. Рекомендуется расставлять плагины по таблице применимости, указанной в разделе 2.6 данного руководства.
Если в столбце Сервер/ВМ указано «ВМ с прокси» - плагин рекомендуется разместить на ВМ, выбранную Прокси. Остальные плагины конфигурируются на усмотрение пользователя, в зависимости от расположения сервисов на узлах.
После расстановки всех агентов и нажатия кнопки «Сохранить», поменяются статусы агентов. В случае успеха будет указан статус «Установлен». Если агент не будет настроен, отобразится статус Ошибка. Требуется проверить логи и сетевую связность между компонентами, а также наличие агента Платформы на всех узлах, за которыми требуется осуществлять мониторинг.
7.2 Конфигурирование плагинов#
Для конфигурирования плагинов необходимо перейти в раздел “Объекты” - на вкладку «Плагины»
Для каждого плагина предусмотрен набор настроек, которые необходимо задать в контекстном меню ⋮ - конфигурировать.
Часть плагинов используют настройки, которые были заданы при развертывании Визиона. Для тех, которые не получат доступ к данным, будет выведен статус “Ошибка”. Требуется осуществить настройки.
Перед добавлением убедиться, что при установке плагина его порт не конфликтует с другим ПО.
После заполнения параметров, применяем настройки и происходит автоматическое конфигурирование.
Для проверки корректности настроек, перейдите в пункт меню “Конструктор выражений”, введите выражение up{_pak_id="<ИМЯ_ПАК>"} и проверьте что работают все сконфигурированные плагины (в наличии временные ряды с именем метки “job” и значениями имен плагинов).
Параметры всех плагинов приведены в документе .
Далее будут приведены особенности конфигурации некоторых плагинов.
7.2.1 vision_exporter#
Плагин предназначен для сбора метрик о состоянии сервисов ОС, пользовательских сессиях, некоторой информации S.M.A.R.T, а также о состоянии дисковых массивов, организованных с помощью ПО RAIDIX ERA и лицензиях на ПО RAIDIX ERA.
В поле Enabled Modules нужно включить модули:
- smart, session, services - для мониторинга МХД.О
- eraraid - для мониторинга конфигураций, включающих программный модуль RAIDIX ERA
Для получения метрик eraraid в МХД.О/МБД.П нужно включить одноименный модуль в поле Enabled Modules.
Для настройки мониторинга сервисов в форме конфигурации плагина в поле Module Services
вы можете добавить конфигурацию systemd сервисов в формате
services:
SERVICENAME.service: # имя сервиса
monitor_service: [true|false] # Мониторинг uptime и active сервиса (обязательный параметр, для firewalld указать false)
monitor_port: PORT # Мониторинг порта сервиса
monitor_specific_config: firewalld # Мониторинг конфигурации заранее заданным способом (указывать только для firewalld)
Для МХД.О (S3) рекомендуется следующая конфигурация:
- узел балансировки
services:
firewalld:
monitor_service: false
monitor_specific_config: firewalld
nginx.service:
monitor_service: true
monitor_port: 6006
haproxy.service:
monitor_service: true
monitor_port: 80
postgresql.service:
monitor_service: true
monitor_port: 5432
s3gateway-compression-server.service:
monitor_service: true
monitor_port: 5001
s3gateway-control-server.service:
monitor_service: true
monitor_port: 3000
s3gateway-proxy-server.service:
monitor_service: true
monitor_port: 4000
- узел хранения
services:
nginx.service:
monitor_service: true
monitor_port: 80
s3gateway-ostor-server.service:
monitor_service: true
monitor_port: 5002
vstorage-csd.target:
monitor_service: true
vstorage-mdsd.target:
monitor_service: true
ostor-cfgd.service:
monitor_service: true
ostor-agentd.service:
monitor_service: true
При необходимости скорректировать состав и параметры сервисов, проверьте порты работы указанных сервисов.
7.2.2 nginx_exporter#
Плагин предназначен для локального сбора метрик c Nginx. На данный момент используется для мониторинга компонентов МХД.О.
Плагин представляет собой экспортер, который получает состояние Nginx с помощью модуля http_stub_status_module и преобразует в метрики.
Предварительно Nginx должен быть настроен на отдачу метрик следующим образом:
- Выполните на узле кластера S3 команду
nginx -V 2>&1| grep -o http_stub_status_module
и убедитесь, что Nginx собран с модулем http_stub_status_module. - В файле конфигурации Nginx (по умолчанию,
/etc/nginx/nginx.conf
) в блокеserver
должен присутствовать следующий роут:
location = /nginx_status {
stub_status;
}
В интерфейсе Визиона укажите эндпоинт в конфигурации плагина в поле Nginx Scrape Uri
. Например, http://127.0.0.1:88/nginx_status
.
7.2.3 haproxy_scraper_local#
Плагин предназначен для локального сбора метрик c HAProxy. На данный момент компонент используется в МХД.О на узлах балансировки.
Перед настройкой плагина вы можете убедиться, что HAProxy скомпилирован с Prometheus Exporter с помощью команды haproxy -vv
.
В выводе вы должны увидеть Built with the Prometheus exporter as a service
.
При наличии модуля предоставления метрик необходимо, чтобы включить его в файле конфигурации HAProxy (по умолчанию: /etc/haproxy/haproxy.cfg
).
Пример раздела frontend
:
frontend prometheus
bind :8008
mode http
http-request use-service prometheus-exporter
no log
В интерфейсе Визиона укажите адрес HAProxy в конфигурации плагина в разделе Таргеты
в параметре Адрес
.
Например, 127.0.0.1:8008
, в случае установки плагина локально и предоставления метрик по порту :8008
.
7.2.4 s3gateway_ostor_server_scraper#
Плагин предназначен для локального сбора метрик c s3gateway_ostor_server. На данный момент компонент используется в МХД.О на узлах хранения.
В s3gateway_ostor_server присутствует встроенная поддержка предоставления метрик.
В интерфейсе Визиона укажите адрес s3gateway_ostor_server в конфигурации плагина в разделе Таргеты
в параметре Адрес
.
Например, 127.0.0.1:7002
, в случае установки плагина локально и предоставления метрик по порту :7002
.
7.2.5 s3gateway_compression_server_scraper#
Плагин предназначен для локального сбора метрик c s3gateway_compression_server (компонент используется в МХД.О на узлах балансировки).
В s3gateway_compression_server присутствует встроенная поддержка предоставления метрик.
В интерфейсе Визиона укажите адрес s3gateway_compression_server в конфигурации плагина в разделе Таргеты
в параметре Адрес
.
Например, 127.0.0.1:7001
, в случае установки плагина локально и предоставления метрик по порту :7001
.
7.2.6 node_exporter#
Особое внимание обращать на машине МВ.ДИ на конфликт портов с другим ПО.
7.2.7 bash_exporter#
Внимание! Плагин bash_exporter устанавливается отдельно от основного дистрибутива Визиона.
Необходимо в настройках плагина указать путь к bash
скрипту:
На файл скрипта необходимо назначить права на исполнение для пользователя vision
.
В процессе исполнения скрипт должен отдавать значения метрик в формате prometheus
.
7.2.8 systemd_exporter#
Необходимо в настройках плагина указать сервисы, которые необходимо включить в сбор метрик (include units) либо исключить (exclude units):
Если поле include units
не заполнено и поле exclude units
также не заполнено, то это означает, что будут собираться метрики по всем сервисам.
7.2.9 kafka_exporter#
Плагин обладает множественными настройками:
Описание настроек:
Имя | Описание | Дополнительные параметры поля |
---|---|---|
Kafka Servers | Адрес (host:port) сервера Kafka. | pattern: ^[a-zA-Z0-9.-]+:([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$minItems: 1items: {“type”: “string”, “pattern”: “^[a-zA-Z0-9.-]+:([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$”} |
Kafka Version | Версия брокера Kafka. | pattern: ^(0. |
Topic Filter | Регулярное выражение, определяющее, какие топики собирать. | |
Topic Exclude | Регулярное выражение, определяющее, какие топики исключить. | |
Group Filter | Регулярное выражение, определяющее, какие потребительские группы собирать. | |
Group Exclude | Регулярное выражение, определяющее, какие потребительские группы исключить. | |
Sasl Enabled | Подключение с использованием SASL/PLAIN, по умолчанию — выключено. | |
Sasl Handshake | Выключите, если используется SASL-прокси, не связанный с Kafka. | |
Sasl Username | Имя пользователя SASL. | |
Sasl Password | Пароль пользователя SASL. | writeOnly: Trueformat: password |
Sasl Mechanism | Механизм SASL: scram-sha256, scram-sha512, gssapi или plain. | enum: [‘scram-sha256’, ‘scram-sha512’, ‘gssapi’, ‘plain’, ‘’] |
Sasl Service Name | Имя сервиса при использовании аутентификации Kerberos. Используется только при sasl_mechanism=gssapi. | |
Sasl Kerberos Config Path | Путь к конфигурации Kerberos. Используется только при sasl_mechanism=gssapi. | |
Sasl Realm | Realm Kerberos. Используется только при sasl_mechanism=gssapi. | |
Sasl Kerberos Auth Type | Тип аутентификации Kerberos. Либо keytabAuth, либо userAuth. Используется только при sasl_mechanism=gssapi. | enum: [‘keytabAuth’, ‘userAuth’] |
Sasl Keytab Path | Путь к файлу keytab для Kerberos. Используется только при sasl_mechanism=gssapi и sasl_kerberos_auth_type=keytabAuth. | |
Sasl Disable Pa Fx Fast | Сконфигурировать клиент Kerberos без использования PA_FX_FAST, по умолчанию выключено. Используется только при sasl_mechanism=gssapi. | |
Kafka Tls Enabled | Подключение к Kafka с TLS, по умолчанию выключено. | |
Kafka Tls Server Name | Используется для проверки имени хоста в возвращаемых сертификатах, если не задан пропуск проверки сертификата. Должно быть указано имя сервера Kafka. | |
Kafka Tls Ca File | Путь до CA файла для аутентификации клиента Kafka TLS (необязательно). | |
Kafka Tls Cert File | Путь до файла сертификата для аутентификации клиента Kafka TLS (необязательно). | |
Kafka Tls Key File | Путь до файла ключа сертификата для аутентификации клиента Kafka TLS (необязательно). | |
Kafka Tls Skip Verify | Пропустить проверку сертификата. | |
Use Consumer Lag Zookeeper | Сбор текущей задержки (zookeeper) ConsumerGroup в топике/разделе. | |
Zookeeper Servers | Адрес (хосты) zookeeper. | pattern: ^[a-zA-Z0-9.-]+(|:([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))$items: {“type”: “string”, “pattern”: “^[a-zA-Z0-9.-]+(|:([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))$”} |
Refresh Metadata | Интервал обновления метаданных. | minLength: 1maxLength: 255pattern: ^((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0)$ |
Offset Show All | Показывать смещение/задержку для всех групп потребителей. Если выключено, то показывать только подключенные группы потребителей. | |
Topic Workers | Количество параллельных потоков для обработки топиков. | exclusiveMinimum: 0 |
Kafka Allow Auto Topic Creation | Разрешить автоматически создавать запрошенные топики, которые еще не существуют, по умолчанию выключено. |
7.2.10 process_exporter#
Плагин обладает возможностью конфигурации:
Параметры конфигурации плагина:
- children (по умолчанию: true) - обеспечивает, что любой процесс, который иначе не принадлежал бы к своей собственной группе, присоединяется к первой найденной группе (если такая существует) при перемещении вверх по дереву процессов.
- threads (по умолчанию: true) - показатели будут разбиты по названию потока, а также по названию группы.
- recheck (по умолчанию: false) - пересмотр имен процессов при каждом сборе метрик, так как процессы могут изменять свои имена, это может привести к тому, что процесс попадет не в ту группу, если мы впервые увидим его до того, как он получит свое собственное имя.
- recheck duration (по умолчанию: 0) - включить проверку имен процессов только на определенный период после запуска плагина. Отключает постоянную проверку recheck
Для настройки мониторинга процессов в форме конфигурации плагина в поле Plugin Configuration вы можете добавить конфигурацию в формате yaml (пустое поле конфигурации заменится стандартной конфигурацией по умолчанию):
process_names:
- name: "{{.Comm}}"
cmdline:
- '.+'
другой пример конфигурации:
process_names:
- comm:
- chromium-browse
- bash
- prometheus
- gvim
- exe:
- /sbin/upstart
cmdline:
- --user
name: upstart:-user
7.3 Добавление и обновление плагинов#
Выполнить следующие действия на виртуальной машине сервера Визиона:
- Распаковать архив с новым/обновленным плагином в директорию
/opt/skala-r/vision
, например:
tar -xzf plugin_acrhive.tar.gz -C /opt/skala-r/vision
- Перезапустить сервис vision_core:
systemctl restart vision_core.service
- Проверьте состояние vision_core и убедится, что логе нет ошибок после перезапуска
systemctl status vision_core.service
journalctl -fu vision_core -n 20
7.4 Снятие ПАК с мониторинга (деинсталляция Визиона с узлов ПАК).#
Внимание! Данные действия необратимы. В процессе удаления будут деинсталлированы все агенты мониторинга, их плагины, а также Визион.Прокси.
Перейти в веб-интерфейс Визиона, открыв Интернет браузер, и введя в строке адреса IP-адрес сервера Визиона https://<vision-ip>
.
Перейти в боковом меню в раздел “Параметры”->“Объекты”, в панели “Контур” выбрать удаляемый ПАК, нажать кнопку ⠇ и выбрать “Удалить”. Согласиться с удалением, нажав кнопку “Удалить”.
8 НАСТРОЙКА ОТПРАВКИ УВЕДОМЛЕНИЙ ПО SMTP#
Для интеграции с шлюзом SMTP, требуется осуществить настройки подключения, затем осуществить подписку пользователей на рассылку уведомлений.
Подробнее о работе с интерфейсом описано в руководстве Пользователя. В данном руководстве описан алгоритм работы:
- Перейти в веб-интерфейс Визиона, открыв Интернет браузер, и введя в строке адреса IP-адрес сервера Визиона (
https://<vision-ip>
), после чего выбрать пункт “Модуль администратора”. - Перейти в раздел “Настройки SMTP” и заполнить все поля валидными значениями. Поле “Основной адрес получателя” заполняется адресом электронной почты, на которую будут приходить уведомления о сработанных правилах оповещения, для которых нет подписок конкретных групп рассылок. Нажмите на кнопку “Сохранить”.
- Перейти в раздел “Список получателей” и создать получателя уведомлений с каналом E-mail и адресом электронной почты, на которую будут приходить уведомления о сработанных правилах оповещения.
- Перейти в раздел “Группы рассылки”, создать группу, добавить в эту группу получателя. Добавить условие в этой группе: например, severity = critical.
- Перейти в раздел “Правила оповещения”, создать новое правило с важностью critical (в целях тестирования добавить правило оповещения, которое точно сработает, пример: ввести в поле ввода PromQL выражение up == 1).
- Перейти в раздел “Уведомления” и дождаться срабатывания правила оповещения.
- Войти в электронную почту, указанную на шаге 3, и дождаться получения письма о сработанном правиле оповещения из шага 5.
9 НАСТРОЙКА ОТПРАВКИ УВЕДОМЛЕНИЙ ПО SNMP#
9.1 Настройка SNMP notifier#
Необходимо задать параметры отправки уведомлений мониторинга по SNMP путём POST запроса к API Визиона https://<vision_host>:8092/vision/api/v1/config/snmp_notifier_config
с телом JSON со следующими полями:
Имя параметра | Описание |
---|---|
snmp_version | версия SNMP. Допустимые значения: “V2c”, “V3”. По умолчанию “V2c”. |
snmp_destination | адресат сообщений. По умолчанию “127.0.0.1:162”. |
snmp_retries | количество повторных посылок сообщения SNMP. По умолчанию 1. |
snmp_trap_default_oid | OID ловушки, если он не найден в метках сработавшего правила. По умолчанию “1.3.6.1.4.1.98789”. |
snmp_timeout_sec | длительность таймаута в секундах. По умолчанию 5. |
snmp_community | коммьюнити SNMP (только для V2c, иначе null). По умолчанию “public”. |
snmp_authentication_protocol | протокол шифрования пароля (только для V3). Допустимые значения: “MD5”, “SHA”, null. По умолчанию null. |
snmp_authentication_username | имя пользователя аутентификации SNMP (только для V3). Обязателен*, если указан snmp_authentication_protocol. По умолчанию null. |
snmp_authentication_password | пароль аутентификации SNMP (только для V3). Обязателен*, если указан snmp_authentication_protocol. По умолчанию null. |
snmp_private_protocol | протокол передачи данных SNMP (только для V3). Допустимые значения: “DES”, “AES”, null. По умолчанию null. |
snmp_private_password | Пароль шифрования SNMP (только для V3). Обязателен*, если указан snmp_private_protocol. По умолчанию null. |
snmp_security_engine_id | ID механизма безопасности SNMP. По умолчанию null. |
snmp_context_engine_id | ID механизма контекста. По умолчанию null. |
snmp_context_name | имя контекста. По умолчанию null. |
Пример Curl для SNMP V3:
curl -k -X 'POST' 'https://<vision_host>:8088/vision/api/v1/config/snmp_notifier_config' -H 'accept: application/json' -H 'Content-Type: application/json' -d '{
"snmp_version": "V3",
"snmp_destination": "127.0.0.1:162",
"snmp_retries": 1,
"snmp_trap_default_oid": "1.3.6.1.4.1.98789",
"snmp_timeout_sec": 5,
"snmp_authentication_protocol": "MD5",
"snmp_authentication_username": "username",
"snmp_authentication_password": "password",
"snmp_private_protocol": "AES",
"snmp_private_password": "password",
"snmp_security_engine_id": "xxxxxxxxxx"
}'
9.2 Настройка перечня уведомлений, отправляемых по SNMP#
- Перейти в веб-интерфейс Визиона, открыв Интернет браузер, и ввеcти в строке адреса IP-адрес сервера Визиона (
https://<vision-ip>
), после чего выбрать пункт “Модуль администратора”. - В боковом меню выбрать раздел “Параметры”, пункт: “Группы рассылки”.
- Нажать кнопку “Добавить” и создать новую группу рассылки.
- В открывшейся форме для группы рассылки заполнить параметры (в скобках – примеры заполнения):
- Имя (“Группа А”)
- Детальное описание (“Группа поддержки 1 линии”)
- Условия отправки уведомлений (
- если необходимо получать абсолютно все уведомления по SNMP установить следующие значения:
- Метка: “severity”;
- Оператор: выбрать все допустимые значения
- Получать только критические:
- Метка: “severity”;
- Значение: “critical”)
- если необходимо получать абсолютно все уведомления по SNMP установить следующие значения:
- Получатели (“SNMP-шлюз”)
- Нажать кнопку “Добавить”.
10 НАСТРОЙКИ БЕЗОПАСНОСТИ#
10.1 Межкомпонентное взаимодействие#
В целях повышения безопасности работа между компонентами Визиона реализована через TLS и Basic Auth.
Настройка аутентификации и размещение сертификатов выполняется автоматически при развертывании компонентов Визиона.
Параметры технической учетной записи для авторизации между компонентами конфигурируются в файле _deploy_settings.yml, расположенном в корне дистрибутива - basic_auth_username и basic_auth_password (имя пользователя и пароль соответственно).
Описание конфигурационного файла vision_core (config.yml)
Описание параметров конфигурации плагинов
Описание учетных записей Визион
11 УСТАНОВКА ОБНОВЛЕНИЙ ПРОГРАММЫ#
Для установки и для обновления “Визиона” используется один и тот же пакет установочных файлов, поставляемый в виде архива.
Обновление выполняется путем установки новой версии поверх существующей.
Обратите внимание! В данной версии обновление с сохранением файлов конфигурации (таких, как
.secrets_vault
,config.yml
,grafana.yml
) не доступно и они будут перезаписаны.
Данные базы данных временных рядов, пользовательские дашборды, а также информация о зарегистрированных ПАК, конфигурации агентов и плагинов будут сохранены.
12 УДАЛЕНИЕ ВИЗИОНА#
12.1 Удаление Визион.Сервер#
- Открыть терминал и перейти в директорию с дистрибутивом:
сd /root/vision-distrib-<version>
- Запустить скрипт
./setup.sh
- Выбрать действие “2. Удалить сервер Визиона.”
Будут удалены все компоненты Визиона. При необходимости можно очистить пользовательские данные (метрики Victoriametrics, данные служебной БД Vision и данные Grafana). Так же для запуска этой операции можно вызвать команду ./setup.sh -r
.
По окончанию удаления его лог будет сохранен в /opt/skala-r/var/logs/vision_remove.log.<ДАТА_УДАЛЕНИЯ>
.
При необходимости удалить агенты мониторинга (см. п.12.2).
12.2 Ручное удаление агентов мониторинга#
В некоторых случая может потребоваться ручное удаление агентов.
- Перейти в директорию дистрибутива, например:
сd /root/vision-distrib-<version>
- Запустить команду, указав путь до файла инвентори (см. п. 6), например,
/opt/skala-r/vision/server/inventory/PAK-1_2024-06-10_12-34-56.yml
ansible-playbook -i /opt/skala-r/vision/server/inventory/PAK-1_2024-03-04_21-32-48.yml ./playbooks/agent_delete.yml
12.3 Ручное удаление агентов мониторинга старых версий#
В случае удаления агентов мониторинга предыдущих версий < 1.2, необходимо:
- Установить новую версию Визион.Сервера
- Зарегистрировать ПАК
- Сформировать файл инвентори
- Выполнить шаги по ручному удалению
12.4 Известные проблемы при удалении Визиона и агентов мониторинга#
При удалении Визиона могут возникнуть следующие проблемы:
-
Проблемы с правами доступа к временным файлам Ansible. Если пользователь, под которым был установлен Визион, больше не существует или у текущих пользователей нет прав на временные файлы Ansible, то для корректного удаления необходимо проверить корректность прав для директорий
/tmp/.ansible
,~/.ansible
. -
Неостановленные процессы пользователя
vision
. Процессы Визиона работают под пользователемvision
, который может быть недоступен после удаления. В этом случае перед удалением необходимо убедиться, что такие процессы остановлены на всех узлах.
13 ХРАНЕНИЕ СЕКРЕТОВ#
13.1 Общая концепция#
В целях безопасности в Визионе организовано безопасное хранение секретов (паролей, токенов и т.п.) в защищенном виде. Данная информация храниться в Ansible Vault и считывается в момент старта компонента vision-core.
Для оперирования содержимым хранилища требуется ключ, выдаваемый разработчиком Визиона. Расположение файла хранилища - /opt/skala-r/vision/.secrets_vault.
13.2 Работа с хранилищем секретов#
Просмотр содержимого хранилища:
ansible-vault view /opt/skala-r/vision/.secrets_vault
Редактирование содержимого хранилища:
ansible-vault edit /opt/skala-r/vision/.secrets_vault
В обоих случаях потребуется ввести пароль от хранилища после вывода Vault password.
13.3 Описание хранимых секретов#
vault.auth.client_secret
- секрет, используемый для подключения сервера Визиона к Keycloak;
vault.database.password
- пароль, для подключения к служебной БД Postgres;
vault.general.cookie_secret_key
- ключ, используемый для работы с cookie;
vault.plagent.token
- токен для подключения к агенту Платформы;
vault.smtp_config.smtp_auth_password
- пароль для подключения к почтовому шлюзу для отправки сообщений о сработавших правилах оповещений;
vault.snmp_notifier.snmp_*_password
- пароли для подключения к SNMP-шлюзу для отправки сообщений о сработавших правилах оповещений посредством SNMP-трапов (для SNMP v3 протоколов шифрования паролей authentication и protocol);
vault.*.basic_auth_password
- пароли HTTP Basic Auth соответствующих компонентов.
vault.grafana.security.admin_password
- Пароль администратора Grafana по умолчанию, можно изменить перед первым запуском Grafana или в настройках профиля.
vault.grafana.auth.generic_oauth.client_secret
- Секрет клиента, предоставленный приложением OAuth2 для Grafana.
vault.grafana.metrics.basic_auth_password
- Пароль BasicAuth для получения метрик Grafana.
14 ПРОВЕРКА ПРОГРАММЫ#
14.1 Отображение веб-интерфейса#
По завершении процесса установки должен быть доступен веб-интерфейс ПО Визион через браузер по адресу http://<хост Визиона>
, далее пункт Аналитические панели и Модуль Администратора.
14.2 Проверка работоспособности сервисов#
Для проверки успешности установки каждого компонента зайти по ssh
на ВМ Визион.Сервер и запустить команду:
cd /opt/skala-r/vision
./check_service.sh
В результате, вывод должен быть следующий:
Критерием успешности развертывания является значение active для перечисленных сервисов, перечисленных в разделе 2.5 данного руководства.
При статусе равном failed обратиться к пункту 3 для получения дополнительной информации.
Конфигурация компонентов после развертывания находится в директориях /opt/skala-r/etc/vision/<server|proxy|agent>/<vision_component>
15 Устранение неполадок#
Расположение файлов всех компонентов и плагинов унифицировано между Визион.Сервером/Прокси/Агентом.
Описание | Расположение |
---|---|
Исполняемые и прочие файлы | /opt/skala-r/vision/<server-proxy-agent>/<имя-компонента> |
Файлы конфигурации | /opt/skala-r/etc/vision/<server-proxy-agent>/<имя-компонента> |
Логи компонентов | Системный журнал и/opt/skala-r/var/log/vision/<server-proxy-agent>/<имя-компонента> |
Хранилище секретов ^1 | /opt/skala-r/vision/.secrets_vault |
Nginx ^1 | /etc/nginx |
^1 только для Визион.Сервер
15.1 Запуск ansible-playbook#
Список часто встречающихся проблем:
-
Failed to parse <путь-до-инвентори-файла>
- убедитесь в корректности yml-файла. Например, частая проблема - несоблюдение отступов. -
Permission denied, please try again.
- убедитесь в корректности данных для доступа к узлу. -
Failed to connect to the host
- убедитесь в правильности адреса узла и проверьте возможность подключения к нему по ssh.
При прочих неполадках используйте запуск ansible с флагом vvvv
для повышения детализации вывода.
15.2 Установка/конфигурация/удаление агентов/плагинов через интерфейс#
Управление агентами мониторинга происходит через агента Платформы, который необходимо развернуть на все сервера, на которые в последствии будут установлены Визион.Агент и Визион.Прокси. Проблемы при установке/конфигурации/удалении агентов/плагинов могут быть связаны с работоспособностью агента Платформы или с постановкой задач к нему через TaskDaemon.
15.2.1 Не изменяется статус агентов/плагинов#
Если при попытке установить/конфигурировать/удалить агенты/плагины не меняется статус сущности, то необходимо проверить работу компонента TaskDaemon.
systemctl status vision_taskdaemon.service
15.2.2 Статус “Ошибка” в интерфейсе#
В интерфейсе в статусе агентов/плагинов вы можете увидеть статус “Ошибка”.
Для получения детального описания ошибки вы можете выполнить следующие запросы:
- для агентов
curl -k https://<vision-ip>:8092/vision/api/v1/component/?object_id=<имя-объекта>
- для плагинов
curl -k https://<vision-ip>:8092/vision/api/v1/plugin_job/?object_id=<имя-объекта>
где <имя-объекта>
- это имя проблемного сервера, виртуальной машины или ПАКа.
Тело ответа будет содержать поле data
с массивом информации об агентах/плагинах. Найдите необходимый элемент массива. Описание последней ошибки содержится в поле task_error_detail
агента/плагина.
Ошибка “No route to host” указывает на то, что компьютер не может установить соединение с целевым сервером. Возможные причины:
- Неверный адрес: убедитесь, что в интерфейсе Визиона указан корректный адрес хоста.
- Блокировка брандмауэром: проверьте настройки брандмауэра узла, чтобы убедиться, что они не блокируют соединение.
- Проблемы с маршрутизацией: возможно, между Визион.Сервером и целевым узлом нет сетевого пути.
Ошибки “Connection refused”/“timed out” указывают на недоступность Агента Платформы. Возможные причины: агент Платформы не установлен или не запущен. Проверьте статус службы и при необходимости перезапустите.
systemctl status plagent.service
В случае работоспособности агента Платформы, выполните curl-запрос версии к нему
- с узла, на котором он расположен:
- по 127.0.0.1;
- по IP узла по которому к нему должен обращаться Визион;
- с Визион.Сервера по IP проблемного узла.
curl -k -H 'Authorization: Bearer <your-token>' https://<ip-узла>:7550/v1/version
Доступность агента Платформы с проблемного узла будет означать корректность его работы, одновременно недоступность его с Визион.Сервера будет означать проблему с сетевой связностью.
15.3 Агенты установлены, но метрики отсутствуют#
Необходимо убедиться от какой части системы отсутвуют данные. Перейдите в веб-интерфейс VictoriaMetrics, открыв Интернет браузер, и введя в строке адреса IP-адрес сервера Визиона (https://<vision-ip>/vision/victoriametrics/vmui
). В открывшемся интерфейсе вы сможете проверить начилие временных рядов в системе, используя PromQL-запросы.
При недоступности интерфейса VictoriaMetrics, проверьте работу сервиса victoriametrics_st.service
и nginx.service
.
Внимание! При проведении работ учитывайте, что все изменения в файлах конфигурации агентов/экспортеров выполненые вручную, могут быть перезаписаны при переустановки компонента из интерфейса.
15.3.1 Отсутствие данных с Прокси#
PromQL-запрос: up{_pak_id="<ИМЯ-ПАК>", job="vmagent_proxy"}
Если временной ряд отсутствует, то проверьте работоспособность systemd сервиса vision_vmagent_proxy.service
на узле, где он установлен (выбирается при установке Агентов).
Если сервис имеет статус active
, но данных в базе временных рядов нет: убедитесь, что с узла, где расположен Прокси, есть возможность отправлять данные в VictoriaMetrics по https. Например, результат такого curl должен быть OK
:
curl -k https://<user>:<pass>@<ip-vision>/vision/victoriametrics/health
15.3.2 Отсутствие данных с Агентов#
PromQL-запросы:
up{_node_id="<ИМЯ-СЕРВЕРА>", job="vmagent_agent"}
up{_vm_id="<ИМЯ-ВМ>", job="vmagent_agent"}
Если временной ряд отсутствует, то проверьте работоспособность systemd сервиса vision_vmagent_agent.service
на узле, где он установлен.
Если сервис имеет статус active
, но данных в базе временных рядов нет: убедитесь, что с узла, где расположен Агент, есть возможность отправлять данные в Прокси по https в порт 8430 (см. п 1.3). Например, результат такого curl должен быть OK
:
curl -k https://<user>:<pass>@<ip-vision>:8430/health
15.3.3 Отсутствие данных с плагинов (экспортеры/скреперы)#
PromQL-запросы:
up{_node_id="<ИМЯ-СЕРВЕРА>", job="<ИМЯ-ПЛАГИНА>"}
up{_vm_id="<ИМЯ-ВМ>", job="<ИМЯ-ПЛАГИНА>"}
Если временной ряд отсутствует, то проверьте работоспособность systemd сервиса vision_<ИМЯ-ПЛАГИНА>.service
на узле, где он установлен (только в случае экспортера, см. п.1.4).
Если временной ряд присутствует, но его значение равно 0, то проверьте параметры плагина в интерфейсе Визиона на корректность (см. п.7.1). Например, данные авторизации, адрес сервиса/источника метрик, порт и т.п.
15.3.4 Превышение таймаута сбора метрик с помощью плагинов#
PromQL-запрос: scrape_duration_seconds{_pak_id="<ИМЯ-ПАК>"} > scrape_timeout_seconds{_pak_id="<ИМЯ-ПАК>"} * 0.5
График с данным запросом отображает проблемы с продолжительностью сбора метрик.
Если временные ряды присутствуют, то необходимо в интерфейсе Визиона в параметрах соответствующих плагинов (имя плагина соответствует метке job) увеличить таймаут в поле “Scrape Timeout”, но не выше, чем “Scrape Interval”.
15.4 Отсутствие метрик при работоспособности всех компонентов#
Убедитесь, что все узлы имеют синхронизированное текущее время. Неправильные временные метки приводят к неточным или вводящим в заблуждение данным мониторинга.
16 Журналирование и аудит#
16.1 Конфигурирование логирования vision_core#
Файл конфигурации логирования vision_core расположен в /opt/skala-r/etc/vision/server/vision_core/log_config.yml
.
Для изменения конфигурации логирования необходимо обладать правами root.
Пример файла конфигурации
# Аудит
audit:
# Уровень сообщений, которые логируются DEBUG|INFO|WARNING|ERROR|CRITICAL
level: INFO
# Параметры форматов записи логов
formatters:
# Формат CEF
cef:
# Вкл/выкл запись логов в формате CEF
enable: true
# Управление ротированием файлов логов
rotate:
filepath: "/opt/skala-r/var/log/vision/audit/cef/audit.log"
maxBytes: 104857600 # максимальный размер файла логов
backupCount: 5 # количество сохраненных логов "<filepath>.<n>" по maxBytes
# Формат JSON (ГосТех)
json:
enable: true
rotate:
filepath: "/opt/skala-r/var/log/vision/audit/audit.log"
maxBytes: 104857600
backupCount: 5
# Фильтрация записей по группам/действиям/статусам событий
# Например, ["11-15", "2"] — исключить с 11 по 15 включительно и 2 ID
# Перечень срезов vision-core/docs/events
filters:
groups: []
actions: []
status: []
# Журналирование, аналогично параметрам аудита
journal:
level: INFO
formatters:
text:
enable: true
rotate:
filepath: "/opt/skala-r/var/log/vision/journal/journal.log"
maxBytes: 104857600
backupCount: 5
filters:
groups: []
actions: []
status: []
Все ключи являются необязательными.
Предоставляется возможность настройки логгеров audit
и journal
:
level
- уровень логирования. Допустимые значения:DEBUG
,INFO
,WARNING
,ERROR
,CRITICAL
.formatters
- параметры форматов записи логов. Допустимые ключи для audit:cef
,json
, для journal:text
.enable
- включение/выключение записи логов в данном формате. Допустимые значения:true
,false
.rotate
- управление ротированием файлов логовfilepath
- путь до файла в который будут записываться логи данного формата.maxBytes
- максимальный размер файла логов в байтах.backupCount
- количество сохраняемых файлов логов.
filters
- параметры фильтрации записей по группам/действиям/статусам событий в формате ключ-значение, где- ключи
groups
/actions
/status
(значения ключей приведены в разделе 16.1.1) - значения - массив строк, перечисляющий ID
groups
/actions
/status
- ключи
16.1.1 Значения ключей, используемых для фильтрации событий#
Для исключения событий из процесса журналирования соответствующие идентификаторы (ID) должны быть перечислены в разделе filters
файла конфигурации (см. Раздел 16.1).
Ключи для групп событий (groups)
Имя группы | Текст подгруппы | ID подгруппы |
---|---|---|
Приложение | приложение vision_core | 10 |
Авторизация | вход пользователя в систему | 21 |
Авторизация | выход пользователя из системы | 22 |
Авторизация | информация о входе в систему | 23 |
Авторизация | информация о текущем пользователе | 24 |
Запрос метрик (UI) | значения метрик за момент времени | 31 |
Запрос метрик (UI) | значений метрик за период времени | 32 |
Запрос метрик (внешний) | значений метрик за момент времени | 41 |
Запрос метрик (внешний) | значений метрик за период времени | 42 |
Запрос метрик (внешний) | список меток метрик | 43 |
Запрос метрик (внешний) | значений метки метрик | 44 |
Запрос метрик (внешний) | статуса TSDB | 45 |
Запрос метрик (внешний) | серий метрик | 46 |
Запрос метрик (внешний) | значений метрик через федерацию | 47 |
Конфигурирование Визион.Сервера | параметры SMTP-шлюза для отправки уведомлений | 51 |
Конфигурирование Визион.Сервера | параметры SNMP-notifier для отправки уведомлений | 52 |
Импорт данных | импорт данных (список метрик и правил оповещения) | 60 |
Самодиагностика Визион.Сервера | здоровье компонентов сервера | 71 |
Самодиагностика Визион.Сервера | логи компонентов сервера | 72 |
Инвентори ПАК | инвентори файла ПАКа | 80 |
foliage | список серверов из приложения Foliage | 91 |
foliage | список коммутаторов из приложения Foliage | 92 |
foliage | список сетей из приложения Foliage | 93 |
список меток и их значений | список меток метрик | 101 |
список меток и их значений | значений метки метрик | 102 |
Взаимодействие TaskDaemon с Визион.Сервером | уведомление от TaskDaemon | 110 |
Объекты мониторинга | объект мониторинга | 121 |
Объекты мониторинга | допустимые вложенные типы объектов мониторинга | 122 |
Объекты мониторинга | ссылки на объект мониторинга | 123 |
Объекты мониторинга | типы объектов мониторинга | 124 |
Объекты мониторинга | справочник подтипов объектов мониторинга | 125 |
Компоненты мониторинга | компонент мониторинга | 130 |
Плагины | общая информация о плагине | 141 |
Плагины | экземпляр плагина | 142 |
Плагины | таргет плагина | 143 |
Метрики | метрика | 151 |
Правила оповещения | правило оповещения | 161 |
Получатели уведомлений их группы | получатель уведомлений | 171 |
Получатели уведомлений их группы | группа получателей уведомлений | 172 |
Оповещения о сработавших правилах | оповещение о сработавшем правиле | 181 |
Оповещения о сработавших правилах | количество оповещений о сработавших правилах | 182 |
Токены | токен доступа | 190 |
Версия Визиона | версия Визиона | 200 |
Ключи для действий (actions)
Имя действия | ID действия |
---|---|
Создание | 1 |
Чтение | 2 |
Редактирование | 3 |
Удаление | 4 |
Получение | 5 |
Отзывается | 6 |
Установка | 7 |
Деинсталляция | 8 |
Запуск | 10 |
Остановка | 11 |
Авторизация | 14 |
Ротация логов | 15 |
Ключи для статусов событий (status)
Текст статуса | ID статуса |
---|---|
успешно | 0 |
неуспешно | 1 |
доступ запрещен | 2 |
16.2 Описание формата логов#
16.2.1 Аудит vision_core#
16.2.1.1 Формат CEF#
Пример записи
CEF:0|Skala-r|Vision|dev-281|20000020|Чтение: версия Визиона|3|externalId=4 msg=Чтение: версия Визиона deviceProcessName=vision_core outcome=success start=1722617884852 dst=192.168.186.138 dhost=vision-dev-ps.int.skala-r.tech suser=admin src=192.168.186.1 shost=192.168.186.1 spt=42658 a
pp=HTTPS dpt=8088
Заголовок CEF
Field Name | Description |
---|---|
CEF:Version | Версия формата CEF. Константа CEF:0 |
Device Vendor | Название производителя. Константа Skala-r |
Device Product | Название продукта. Константа Vision |
Device Version | Версия Визиона |
Device Event Class ID | Уникальный идентификатор категории события. Формируется путём <группа><действие><статус> |
Name | Краткое описание события. |
Severity | Целое число, отражающее важность события. Число от 0 до 10, где 10 обозначает наиболее важное событие. |
Extension | Список пар “ключ=значение”, содержащих дополнительную информацию о событии |
Поля extension CEF
Field Name | Description |
---|---|
externalId | Уникальный номер строки о событии в рамках одного журнала. Сквозная инкрементация (счетчик). Обнуляется при перезапуске сервиса. |
msg | Текст сообщения с детальной информацией о событии. |
deviceProcessName | Полное имя процесса. Константа vision_core |
outcome | Результат события. success / failure |
start | Время возникновения события в формате Unix Timestamp. |
dhost | Имя хоста получателя (Визиона) |
dst | IP адрес хоста получателя (Визиона) |
dpt * | Порт на стороне получателя (Визиона) |
suser * | Имя пользователя, инициировавшего событие |
src * | IP адрес хоста-источника |
shost * | FQDN или имя хоста-источника |
spt * | порт на стороне источника |
app * | Протокол уровня приложения |
^1 при наличии |
16.2.1.2 Формат JSON#
Пример записи
{"createdAt": "1722617884851", "userNode": "vision-dev-ps.int.skala-r.tech", "metamodelVersion": "1", "module": "Vision", "name": "Чтение: версия Визиона", "userLogin": "admin", "userName": "admin", "params": [{"name": "message", "value": "Чтение: версия Визиона"}, {"name": "serviceVersion", "value": "dev-281"}]}
Поле | Описание |
---|---|
createdAt | Время возникновения события в формате Unix Timestamp. |
userNode | Имя хоста получателя (Визиона). |
metamodelVersion | Константа 1 . |
module | Название продукта. Константа Vision |
name | Краткое описание события. |
userLogin | Имя пользователя, инициировавшего событие. |
userName | Полное пользователя, инициировавшего событие (если доступно). |
params- name=message | Дополнительная информация о событии. |
params- name=serviceVersion | Версия Визиона. |
16.2.2 Журналирование (journal) vision_core#
Пример записи
2024-08-02T19:58:04+0300 vision-dev-ps.int.skala-r.tech INFO Чтение: версия Визиона
- Время возникновения события
- Имя хоста получателя (Визиона).
- Уровень журнала
- Описание события
16.3 Расположение журналов компонентов#
Компонент | Сервис ОС | Расположение журналов по умолчанию |
---|---|---|
Визион.Сервер | vision_core | Системный журнал, /opt/skala-r/var/log/vision/audit/cef/audit.log , /opt/skala-r/var/log/vision/audit/audit.log , /opt/skala-r/var/log/vision/journal/journal.log |
Визион.Сервер | vision_taskdaemon | Системный журнал |
Визион.Сервер | postgresql | Системный журнал и стандартное расположение логов PostgreSQL /var/lib/pgsql/data/log/ |
Визион.Сервер | nginx | Системный журнал и стандартное расположение логов nginx /var/log/nginx/ |
Визион.Сервер | grafana | Системный журнал и /opt/skala-r/var/log/vision/server/grafana/ |
Визион.Сервер | victoriametrics_st | Системный журнал |
Визион.Сервер | vmalert_st | Системный журнал |
Визион.Сервер | vision_alertcollector | Системный журнал и /opt/skala-r/var/log/vision/server/vision_alertcollector/vision_alertcollector.log |
Визион.Сервер | alertmanager | Системный журнал |
Визион.Сервер | snmp_notifier | Системный журнал |
Визион.Прокси | vision_vmagent_proxy | Системный журнал и /opt/skala-r/var/log/vision/proxy/vmagent_proxy/vmagent.log |
Агент Платформы | plagent | Системный журнал |
Визион.Агент | vision_vmagent_agent | Системный журнал и /opt/skala-r/var/log/vision/agent/vmagent_agent/vmagent.log |
Визион.Агент | vision_node_exporter | Системный журнал и /opt/skala-r/var/log/vision/agent/node_exporter/node_exporter.log |
Визион.Агент | vision_ipmi_exporter | Системный журнал |
Визион.Агент | vision_snmp_exporter | Системный журнал |
Визион.Агент | vision_utlz_exporter | Системный журнал и /opt/skala-r/var/log/vision/agent/utlz_exporter/utlz_exporter.log |
Визион.Агент | vision_utlz_exporter_v0 | Системный журнал и /opt/skala-r/var/log/vision/agent/utlz_exporter_v0/utlz_exporter_v0.log |
Визион.Агент | vision_one_exporter | Системный журнал |
Визион.Агент | vision_ha_cluster_exporter | Системный журнал |
Визион.Агент | vision_postgres_exporter_local | Системный журнал |
Визион.Агент | vision_postgres_exporter_multi | Системный журнал |
Визион.Агент | vision_sql_exporter | Системный журнал |
Визион.Агент | vision_supv_exporter | Системный журнал и /opt/skala-r/var/log/vision/agent/supv_exporter/supv_exporter.log |
Визион.Агент | vision_nginx_exporter | Системный журнал и /opt/skala-r/var/log/vision/agent/nginx_exporter/nginx_exporter.log |
Визион.Агент | vision_exporter | Системный журнал и /opt/skala-r/var/log/vision/agent/vision_exporter/vision_exporter.log |
Визион.Агент | bash_exporter | Системный журнал и /opt/skala-r/var/log/vision/agent/bash_exporter/bash_exporter.log |
Визион.Агент | systemd_exporter | Системный журнал и /opt/skala-r/var/log/vision/audit/agent/systemd_exporter/audit.log |
Визион.Агент | process_exporter | Системный журнал и /opt/skala-r/var/log/vision/audit/agent/process_exporter/audit.log |
Визион.Агент | kafka_exporter | Системный журнал и /opt/skala-r/var/log/vision/audit/agent/kafka_exporter/audit.log |
16.3.1 Аудит компонентов Визиона#
Запись происходит в журнал аудита /opt/skala-r/var/log/vision/audit/<COMPONENT>/<SERVICE>/audit.log
в формате CEF.