Документ | Описание | Ссылка на PDF |
---|---|---|
Руководство администратора | v1.3 |
1. ОБЩИЕ СВЕДЕНИЯ#
1.1 Наименование программы#
Полное наименование: Система мониторинга ПАК семейства Скала^р: ПО «Скала^р Визион».
Краткое наименование: Визион.
1.2 Область применения#
Основным назначением ПО «Скала^р Визион» (далее Визион) является предоставление возможности контроля жизненного цикла ПАК (машин) производства Скала^р, обслуживаемых персоналом, к квалификации которого не предъявляется серьезных требований. Осуществляется процесс мониторинга программных компонентов ПАК, сбор информации о количестве и составе управляемых объектов, метрик. Обеспечивает оповещение о событиях при сбое работы объектов мониторинга.
1.3 Уровень подготовки администратора#
Администратор должен обладать следующими навыками:
- установка, настройка системного программного обеспечения в ОС Linux;
- просмотр и редактирование файлов с использованием команд ls, cat, less, vim, nano.
2 УСЛОВИЯ ПРИМЕНЕНИЯ ПРОГРАММЫ#
2.1 Состав компонентов#
Для развертывания мониторинга на целевой инфраструктуре поставляется архив, содержащий в себе компоненты программного обеспечения:
- Визион.Сервер - предоставляет функционал единой точки доступа к управлению мониторингом; устанавливается в одном экземпляре на контур (совокупность ПАК);
- Визион.Прокси - промежуточное звено, аккумулирует метрики с узлов ПАК; устанавливается по одному на каждый ПАК, возможно совмещение с сервером Визиона при использовании единой точки Визиона в каждом ПАК (Машине);
- Визион.Агент - агент мониторинга, обеспечивающий сбор данных с узла; устанавливается на узел ПАК или на виртуальную машину
- Агент Платформы - сервис, позволяющий серверу Визиона конфигурировать агенты мониторинга по HTTPS. Агент необходимо развернуть на все узлы, на которые, впоследствии, будут установлены агенты мониторинга.
Все компоненты должны находится в одной сети.
Оптимальным решением является выделение под Визион.Сервер и Визион.Прокси отдельных виртуальных серверов в рамках узлов управления Машин.
Для эффективного мониторинга ПАК важно, чтобы все узлы имели синхронизированное текущее время. Неправильные временные метки могут привести к неточным или вводящим в заблуждение данным мониторинга, что затруднит выявление и устранение проблем.
2.1.1 Визион.Сервер#
В состав Визион.Сервера входят следующие компоненты:
- Визион backend - бекенд, обеспечивающий API и осуществляющий управление и координацию всех сервисов;
- PostgreSQL - служебная база данных;
- VictoriaMetrics - база данных временных рядов для хранения метрик;
- VMalert - компонент, предназначенный для генерации оповещений на основе данных в Victoriametrics и правил алертинга (триггеров);
- AlertCollector - компонент, регистрирующий оповещения в служебную БД;
- Grafana backend - компонент, обеспечивающий альтернативную визуализацию собираемых метрик;
- AlertManager - компонент, обеспечивающий обработку, группировку и отправку оповещений (поддерживает SMTP и веб-хуки);
- SNMP_notifier - вспомогательный компонент, предназначенный для отправки оповещений с помощью протокола SNMP (Simple Network Management Protocol);
- TaskDaemon - компонент, отвечающий за выполнение фоновых задач (например, развертывание агентов и их плагинов);
- Nginx - прокси-сервер, обеспечивающий получение и перенаправление запросов на компоненты Визион.Сервера.
2.1.2 Визион.Прокси#
В состав Визион.Прокси входит единственный компонент - VMagent, обеспечивающий перенаправление поступающих метрик в Визион.Сервер.
2.1.3 Визион.Агент#
В состав Визион.Агента входят следующие компоненты:
- VMagent - компонент, обеспечивающий сбор метрик с плагинов
- Плагины - дополнительно устанавливаемые модули (экспортеры и параметры скрепинга метрик), расширяющие состав, собираемых системой мониторинга, метрик.
2.1.4 Агент Платформы#
Агент Платформы представлен единственным компонентом - PLagent.
Описание агента смотрите в пункте 2.4 данного руководства.
2.2 Состав сервисов#
Сервис ОС | Компонент | Порт | Протокол |
---|---|---|---|
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.3 Плагины#
Плагины Визиона представляют собой механизм, с помощью которого пользователь может расширять функциональность системы мониторинга. Они дают возможность гибко настраивать процессы мониторинга в соответствии с конкретными потребностями и целями.
Каждому плагину соответствует свой тип объекта мониторинга, с которого извлекается соответствующее ему множество метрик.
Извлекаемые метрики адаптированы под характеристики и особенности объекта мониторинга. Например, для мониторинга серверов могут быть доступны метрики использования памяти и дискового пространства, в то время как для сетевых устройств - метрики пропускной способности, задержек и ошибок передачи данных.
Плагину может соответствовать комплиментарный бинарный файл (экспортер), непосредственно осуществляющий сбор метрик. При добавлении в Визион.Агент такого плагина, он автоматически устанавливается согласно местоположению агента и запускается как сервис операционной системы.
В случае, если плагин не использует экспортер, он является плагином-скреппером, сбор метрик осуществляется непосредственно с эндпоинта объекта мониторинга.
В состав Визиона входят следующие плагины:
Название | Мониторинг | ПАК | Сервер/ВМ** | Сервис ОС | Порт*** |
---|---|---|---|---|---|
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 | Postgres | МБД.П | узел кластера | vision_postgres_exporter | 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 | сервисы ОС | МХД.О | все серверы | vision_exporter | 7531 |
* utlz_exporter_v0 по умолчанию нет необходимости устанавливать, только по запросу. Для работы ему требуется дополнительный файл конфигурации, который доставляется на хосты с помощью плейбука playbooks/utlz_v0_config.yml
.
** На агенты каких серверов или ВМ рекомендуется добавлять плагины.
*** Порт, занимаемый экспортером по умолчанию. Порты конфигурируются в настройках плагина в интерфейсе Визиона.
2.4 Агент Платформы#
В состав дистрибутива опционально включается плейбук развертывания агента Платформы, необходимый для взаимодействия сервера Визиона с сервером для конфигурирования агентов мониторинга. Данный агент необходимо развернуть на все узлы, на которые в последствии будут установлены Визион.Агент и Визион.Прокси.
В данные момент установка возможна на следующих ОС:
- Alt Linux Server 8 СП p9 (c9f2)
- Alt Linux Server 8 СП p10 (c10f1)
- Astra Linux 1.7.3 (Орёл)
- РЕДОС 7.3
На целевых системах должны присутствовать следующие пакеты:
- freeipmi (если предполагается присутствие плагина ipmi на узле, как правило, это ВМ Визиона на служебном узле)
- sudo
Перед началом развертывания агентов необходимо обеспечить сетевую связность между узлами и доступность серверов с хоста Визиона, а также наличие доступа к ним по протоколу SSH (порт 22).
2.5 Системные требования#
Параметр | Требование |
---|---|
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 секунд для всех временных рядов.
Данные оценки носят предварительный характер и могут менятся как в большую, так и меньшую сторону.
3 УСТАНОВКА ПРОГРАММЫ#
Перед началом установки необходимо убедиться в доступности узлов ПАК с хоста Визиона. Проверить доступность можно при помощи команды ping.
Если в выводе команды ping содержатся ошибки, необходимо убедиться в том, что в инсталляционной карте содержатся корректные данные, обеспечена сетевая связность между узлами и файрвол не блокирует доступ по протоколу SSH (порт 22).
В приведенных в данном руководстве примерах команд в качестве интерпретатора команд терминала используется Bash.
Все команды выполняются под привилегированным пользователем root. Для повышения привилегий пользователя может потребоваться использование команды sudo. В примерах команд опущено приглашение в терминале.
В данном руководстве приводятся примеры команд для версии Визиона 1.2 Номер версии используется в имени файла с архивом дистрибутива, например vision-distrib-<version>.gz
.
На момент выполнения установки или обновления “Визиона” пользователем, версия может отличаться.
Актуальную инструкцию для сборки можно посмотреть в файле README.MD в архиве дистрибутива.
Алгоритм установки компонентов Визиона и его настройки:
- Установка Визион.Сервер
- Конфигурация объектов мониторинга
- Формирование инвентори-файла
- Установка агентов Платформы
- Настройка плагинов
Зависимости:
- ansible >= 2.9
- sshpass
- nginx
- postgresql = 11|12
Данные пакеты и их зависимости будут установлены или обновлены при развертывании с помощью плейбуков ansible. При невозможности их автоматической установки требуется вручную установить данные пакеты. Все необходимые зависимости включены в состав дистрибутива для возможности установки Визиона без подключения к глобальной сети Internet.
3.1 Установка Визион.Сервер в интерактивном режиме#
Дистрибутив Визиона представляет собой tar.gz архив. Далее описана работа с дистрибутивом.
Для установки Визиона в состав дистрибутива входит скрипт установки setup.sh. Установка должна выполнятся на целевом узле (либо виртуальной машине) и требует привилегий суперпользователя.
- Открыть терминал и перейти в директорию с архивом дистрибутива, например, /root:
sh
cd /root
- Распаковать архив с дистрибутивом `.tar.gz``, например:
sh
tar -xzvf vision-distrib-1.3-273.tar.gz
- Перейти в директорию дистрибутива, например:
sh
сd /root/vision-distrib-1.3-273
- Запустить скрипт:
sh
./setup.sh
-
Выбрать одно из действий:
-
“3. Установить пакеты зависимостей из репозитория дистрибутива”;
-
“4. Установить пакеты зависимостей из репозитория OC”, в случае отсутствия пакетов в системном репозитории ОС.
-
Будут установлены все пакеты зависимостей, соответствующие операционной системы. Так же для запуска этой операции можно вызвать команду ./setup.sh -p
(./setup.sh -g
в случае отсутствия пакетов в системном репозитории ОС).
Может потребоваться временно отключение SELINUX (следовать рекомендациям установщика).
При невозможности автоматической установки пакетов, требуется вручную установить пакеты из списка, содержащегося в файле ./os_packages/<YOUR_OS>/package_list
(см. документацию на операционную систему).
По окончанию установки пакетов ее лог будет сохранен в файл:
/opt/skala-r/var/log/vision/vision_packages.log.<ДАТА_УСТАНОВКИ>
.
- Запустить скрипт ``./setup.sh` и выбрать действие “1. Установить сервер Визиона.”.
Будут установлены все необходимые компоненты, запущены требуемые сервисы. Так же для запуска этой операции можно вызвать команду ./setup.sh -i
Может потребоваться временно отключение SELINUX (следовать рекомендациям установщика).
В процессе установки будет предложено выбрать IP-адрес, на который в последствии будут отправляться метрики с агентов мониторинга. Как правило, он соответствует IP-адресу компонента Визион.Сервер в сети, в которой находятся все компоненты мониторинга (менеджмент-сеть).
По окончанию установки лог, сформированный в процессе инсталляции, будет сохранен в файл:
/opt/skala-r/var/log/vision/vision_install.log.<ДАТА_УСТАНОВКИ>
3.2 Автоматическая установка Визион.Сервер#
Поддерживается автоматическая установка с передачей IP-адреса, на который в последствии будут отправляться метрики с агентов мониторинга. Как правило, он соответствует IP-адресу сервера Визиона в сети, в которой находятся все компоненты мониторинга (менеджмент-сеть).
Установка должна выполнятся на целевом сервере (виртуальной машине).
Требования при установке:
-
наличие привилегии суперпользователя;
-
отключенный SELINUX;
-
наличие необходимых пакетов в системном репозитории ОС.
- Открыть терминал и перейти в директорию с архивом дистрибутива, например:
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.3.2 Просмотр логов компонента#
Просмотреть логи работы компонентов за интересующий период можно, используя службу журналирования логов 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.3.3 Просмотр журналов Визион.Сервер#
Журнал Визион.Сервера размещаются в директории /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
4 КОНФИГУРАЦИЯ ОБЪЕКТОВ МОНИТОРИНГА#
Алгоритм настройки (полный цикл постановки ПАК на мониторинг):#
- Перейти в веб-интерфейс Визиона, открыв Интернет-браузер, ввести в строке для адреса IP-адрес сервера Визиона
https://<vision-ip>
. - Перейти в раздел в боковом меню “Параметры” -> “Объекты”, в панели “Контуры” нажать кнопку ⠇ , выбрать “Добавить ПАК”. Ввести информацию о ПАК.
- В случае отсутствия на добавляемом ПАК агентов Платформы, необходимо его развернуть по инструкции.
- Перейти во вкладку “Агенты” и нажать кнопку “Сконфигурировать агенты”.
- Нажать на иконку 🖉 и включить необходимые плагины.
- Перейти в пункт меню “Конструктор выражений”, ввести выражение up{_pak_id="<ИМЯ_ПАК>"} и проверить, что работают все сконфигурированные плагины (в наличии временные ряды с именем метки “job” и значениями имен агентов).
Подробная инструкция:#
4.1 Подготовка к настройке#
- Перед настройкой требуется убедиться, что имеется инсталляционная карта с соответствующим описанием ПАК, либо все необходимые параметры и доступы для постановки объектов на мониторинг.
- Перейти в веб-интерфейс Визиона, открыв Интернет браузер, и введя в строке адреса IP-адрес сервера Визиона, например,
https://<vision-ip>
. - Добавить новый ПАК: раздел в боковом меню “Параметры”->“Объекты”, в панели “Контур” нажать кнопку ⠇ и выбрать “Добавить ПАК”.
-
Откроется форма «Добавление ПАК».
Пример интерфейса:
Пункт «ПАК»:
Для заполнения требуется следовать подсказкам интерфейса.
Пункт «Модуль»:
В данной форме используется панель редактирования, работающая по следующему принципу:
- Для редактирования строки необходимо нажать на клавишу ✐;
- Для подтверждения редактирования требуется нажать клавишу ✔, иначе изменения не будут приняты;
- Для очистки созданной строки требуется нажать клавишу ✖
- Сохранение будет осуществлено только для подтвержденных строк.
4.2 Заполнение формы «Добавление ПАК»#
4.2.1 ПАК#
- имя - идентификатор ПАК, (в дальнейшем изменить невозможно без реинсталляции);
- «Тип» - выбираем из справочника тип ПАК в соответствие с поставкой;
- «Описание» – вводим произвольный вспомогательный текст;
затем нажимаем кнопку «Далее».
4.2.2 Модуль#
Заполнение информации о модулях. Тип модуля берется из инсталляционной карты. Список меняется в зависимости от предварительно выбранного типа ПАК.
- имя - идентификатор модуля, (в дальнейшем изменить невозможно без реинсталляции);
- Тип – тип модуля, в соответствие с типом ПАК. Требуется выбрать из списка.
4.2.3 Сервер#
Требуется ввести информацию об узлах.
- имя - идентификатор сервера, (в дальнейшем изменить невозможно без реинсталляции);
- модуль – выбирается из заведенных ранее в пункте Модуль;
- Тип – выбирается из справочника
- Адрес – IP адрес, по которому будет установлен агент
- Адрес BMC – адрес, по которому будут производить опрос агенты мониторинга, расположенные на Визион.Прокси
4.2.4 ВМ#
В этом пункте добавляются все виртуальные машины, которые указаны в инсталляционной карте и которые необходимо поставить на мониторинг. Сервисные ВМ (Визиона, Генома и т д) так же указываем в этом пункте.
- имя - идентификатор ВМ, (в дальнейшем изменить невозможно без реинсталляции);
- сервер – принадлежность ВМ к физическому узлу (серверу);
- адрес – IP адрес ВМ в соответствие с инсталляционной картой.
4.2.5 Коммутатор#
Требуется заполнить информацию о серверах маршрутизации (коммутаторы) из инсталляционной карты.
- имя - идентификатор коммутатора, (в дальнейшем изменить невозможно без реинсталляции);
- модуль – принадлежность к модулю, выбирается из заведенных ранее
- адрес – IP адрес коммутатора.
4.2.6 Проверка#
Сводная таблица по всем объектам ПАК, необходимо проверить корректность предоставленных данных.
После заполнения данных и нажатия кнопки Добавить произойдет создание иерархической структуры объектов.
Пример заполненного раздела:
5 ФОРМИРОВАНИЕ ИНВЕНТОРИ-ФАЙЛА#
5.1 Формирование инвентори-файла, описывающего выбранный ПАК#
Для проведения сервисных операций с узлами ПАК может потребоваться так называемый инвентори-файл, описывающий перечень узлов и их технические учетные записи (ТУЗ). С использованием 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.2.2-240
- При необходимости, сконфигурировать установку агента Платформы при помощи файла ./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.3 данного руководства.
- Расположение агентов: по умолчанию, в форме отобразятся все серверы и ВМ, которые были ранее указаны в списке объектов. Для корректного расположения, на серверах должны быть предварительно установлены агенты Платформы.
-
Плагины – состав конфигурационных файлов, содержащих в себе инструкции для настройки агентов и расстановки экспортеров. На данном шаге необходимо выбрать Плагины в соответствие с типом узла. Для узла, который будет выбран как Прокси, требуется выбрать плагины, реализующие сбор метрик снаружи относительно объекта мониторинга. Рекомендуется расставлять плагины по таблице применимости, указанной в разделе 2.3 данного руководства.
Если в столбце Сервер/ВМ указано «ВМ с прокси» - плагин рекомендуется разместить на ВМ, выбранную Прокси. Остальные плагины конфигурируются на усмотрение пользователя, в зависимости от расположения сервисов на узлах.
После расстановки всех агентов и нажатия кнопки «Сохранить», поменяются статусы агентов. В случае успеха будет указан статус «Установлен». Если агент не будет настроен, отобразится статус Ошибка. Требуется проверить логи и сетевую связность между компонентами, а также наличие агента Платформы на всех узлах, за которыми требуется осуществлять мониторинг.
7.2 Конфигурирование плагинов#
Переходим на вкладку «Плагины»
Для каждого плагина предусмотрен набор настроек, которые необходимо задать в контекстном меню ⋮ - конфигурировать.
Часть плагинов используют настройки, которые были заданы при развертывании Визиона. Для тех, которые не получат доступ к данным, будет выведен статус Ошибка. Требуется осуществить настройки.
Перед добавлением убедится, что при установке плагина его порт не конфликтует с другим ПО. Особенности настройки смотрите в файле README.MD, приложенном в дистрибутиве.
После заполнения параметров, применяем настройки и происходит автоматическое конфигурирование.
Для проверки корректности настроек, перейдите в пункт меню “Конструктор выражений”, введите выражение up{_pak_id="<ИМЯ_ПАК>"} и проверьте что работают все сконфигурированные плагины (в наличии временные ряды с именем метки “job” и значениями имен плагинов).
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 -X 'POST' \
https://<vision_host>:8092/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": "0x80001f88802d7f22"
}'
9.2 Настройка перечня уведомлений, отправляемых по SNMP#
- Перейти в веб-интерфейс Визиона, открыв Интернет браузер, и ввеcти в строке адреса IP-адрес сервера Визиона (
https://<vision-ip>
), после чего выбрать пункт “Модуль администратора”. - В боковом меню выбрать раздел “Параметры”, пункт: “Группы рассылки”.
- Нажать кнопку “Добавить” и создать новую группу рассылки.
- В открывшейся форме для группы рассылки заполнить параметры (в скобках – примеры заполнения):
- Имя (“Группа А”)
- Детальное описание (“Группа поддержки 1 линии”)
- Условия отправки уведомлений (
- если необходимо получать абсолютно все уведомления по SNMP установить следующие значения:
- Метка: “severity”;
- Оператор: выбрать все допустимые значения
- Получать только критические:
- Метка: “severity”;
- Значение: “critical”)
- если необходимо получать абсолютно все уведомления по SNMP установить следующие значения:
- Получатели (“SNMP-шлюз”)
- Нажать кнопку “Добавить”.
10 НАСТРОЙКИ БЕЗОПАСНОСТИ#
10.1 Межкомпонентное взаимодействие#
В целях повышения безопасности работа между компонентами Визиона реализована через TLS и Basic Auth.
Стандартные сертификаты расположены в директории cert в корне дистрибутива.Сгенерировать уникальный сертификат можно с помощью скрипта в дистрибутиве scripts/_generate_components_cert.sh
.
Настройка аутентификации и размещение сертификатов выполняется автоматически при развертывании компонентов Визиона.
Параметры технической учетной записи для авторизации между компонентами конфигурируются в файле _deploy_settings.yml, расположенном в корне дистрибутива - basic_auth_username и basic_auth_password (имя пользователя и пароль соответственно).
10.2 Сертификат nginx#
После развертывания Визиона при необходимости можно заменить сертификат nginx для эндпоинтов https://<vision-host>/
и https://<vision-host>:8092/
-
Скопируйте сертификат и ключ в /etc/nginx/ssl
-
В файле /etc/nginx/snippets/vision-ssl-params.conf замените пути к сертификату и ключу на новые
ssl_certificate /etc/nginx/ssl/<your-cert>.crt;
ssl_certificate_key /etc/nginx/ssl/<your-key>.key;
- Перезапустите nginx
systemctl restart nginx.service
- Убедитесь, что на
https://<vision-host>/
иhttps://<vision-host>:8092/
установлен новый сертификат
curl --cacert /etc/nginx/ssl/<your-cert>.crt https://<vision-host>/
11 УСТАНОВКА ОБНОВЛЕНИЙ ПРОГРАММЫ#
Для установки и для обновления “Визиона” используется один и тот же пакет установочных файлов, поставляемый в виде архива.
Обновление выполняется путем установки новой версии поверх существующей.
Обратите внимание! В данной версии обновление с сохранением файлов конфигурации (таких, как .vault_store, config.yml, grafana.ini) не доступно и они будут перезаписаны.
Данные базы данных временных рядов, пользовательские дашборды, а также информация о зарегистрированных ПАК, конфигурации агентов и плагинов будут сохранены.
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>
- Запустить команду, указав путь до файла инвентори (см. п.3.3), например,
/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/.vault_store.
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 соответствующих компонентов.
14 ПРОВЕРКА ПРОГРАММЫ#
14.1 Отображение веб-интерфейса#
По завершении процесса установки должен быть доступен веб-интерфейс ПО Визион через браузер по адресу http://<хост Визиона>
, далее пункт Аналитические панели и Модуль Администратора.
14.2 Проверка работоспособности сервисов#
Для проверки успешности установки каждого компонента зайти по ssh
на требуемый узел и запустить команду:
cd /opt/skala-r/vision
./check_service.sh
В результате, например для Визион.Сервера, вывод должен быть следующий:
Критерием успешности развертывания является значение active для перечисленных сервисов, перечисленных в разделе 2.2 данного руководства.
При статусе равном failed обратиться к пункту 3 для получения дополнительной информации.
Конфигурация компонентов после развертывания находится в директориях /opt/skala-r/vision/<server|proxy|agent>/<vision_component>/etc.
14.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"
15 Устранение неполадок#
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.4 Отсутствие метрик при работоспособности всех компонентов#
Убедитесь, что все узлы имеют синхронизированное текущее время. Неправильные временные метки приводят к неточным или вводящим в заблуждение данным мониторинга.