Оглавление
название |
страница |
3 |
|
6 |
|
13 |
|
19 |
|
27 |
|
44 |
|
47 |
|
58 |
|
69 |
|
82 |
|
94 |
|
102 |
Авторские права
Учебное пособие, практические задания, презентации (далее документы) предназначены для учебных целей.
Документы защищены авторским правом и законодательством об интеллектуальной собственности.
Вы можете копировать и распечатывать документы для личного использования в целях самообучения, а также при обучении в авторизованных ООО "Тантор Лабс" учебных центрах и образовательных учреждениях. Авторизованные ООО "Тантор Лабс" учебные центры и образовательные учреждения могут создавать учебные курсы на основе документов и использовать документы в учебных программах с письменного разрешения ООО "Тантор Лабс".
Вы не имеете права использовать документы для платного обучения сотрудников или других лиц без разрешения ООО "Тантор Лабс". Вы не имеете права лицензировать, коммерчески использовать документы полностью или частично без разрешения ООО "Тантор Лабс".
При некоммерческом использовании (презентации, доклады, статьи, книги) информации из документов (текст, изображения, команды) сохраняйте ссылку на документы.
Текст документов не может быть изменен каким-либо образом.
Информация, содержащаяся в документах, может быть изменена без предварительного уведомления и мы не гарантируем ее безошибочность. Если вы обнаружите ошибки, нарушение авторских прав, пожалуйста, сообщите нам об этом.
Отказ от ответственности за содержание документа, продукты и услуги третьих лиц:
ООО "Тантор Лабс" и связанные лица не несут ответственности и прямо отказываются от любых гарантий любого рода, включая потерю дохода, нанесенные прямым или непрямым, специальным или случайным использованием документа. ООО "Тантор Лабс" и связанные лица не несут ответственности за любые убытки, издержки или ущерб, возникшие в результате использования информации, содержащейся в документе или использования сторонних ссылок, продуктов или услуг.
Авторское право © 2025, ООО "Тантор Лабс"
Автор: Олег Иванов
! |
Создан: 10 ноября 2025г. |
Практика 1
Практики выполняются на подготовленной виртуальной машине под операционной системой Astralinux с автоматическим входом пользователя astra (пароль astra).
Пароли пользователей операционной системы:
astra/astra
root/root
postgres/postgres
В виртуальной машине установлена Платформа Tantor. Пользователи Платформы:
Владелец системы: student@student.ru/Student123!
Локальные пользователи тенанта Tenant 1:
с правом просмотра и редактирования Пространства Edu dba1@dba1.ru/Student123!
с правом просмотра Пространства Edu: user1@dba1.ru/Student123!
1) Кликните на десктопе linux на иконку Firefox Web Browser.
В первой вкладке браузера откроется страница Платформы. Если она не открылась, то страница входа в Платформу: https://education.tantorlabs.ru/platform/login
Если появится окно ввода пароля, введите: student@student.ru/Student123!
Пароли сохранены в кэше браузера Firefox.
В linux установлен браузер Chromium. В его кэше пароли не сохранены. Chromium можно использовать, если нужно войти в Платформу под пользователем, отличным от того, под которым создана веб-сессия в Firefox.
2) Для выхода из Платформы кликните в левом нижнем углу страницы на значок с буквой S (первая буква имени пользователя). В появившемся меню выберите Выход:
3) На появившейся странице входа в Платформу войдите под пользователем student@student.ru/Student123!
4) Кликните в левом нижнем углу страницы на значок с буквой S (первая буква имени пользователя). Откроется станица Профиля пользователя. В появившемся меню выберите Лицензионное соглашение. В браузере откроется новая вкладка (или новое окно) с текстом соглашения. Закройте вкладку (или окно) с соглашением.
5) На странице Профиля пользователя поменяйте язык на Английский, нажмите кнопку Применить. Потом поменяйте язык на Russian, нажмите Apply:
6) В левой полосе меню найдите значок Смена темы, поменяйте тему на Тёмную, Светлую, Системную. Иконки значка при этом будут меняться. Оставьте Системную тему.
7) Для перехода на стартовую страницу Платформы кликните на логотип Тантор в левом верхнем углу страницы браузера. Откроется страница Тенанты. Кликните на строку Tenant 1. Откроется страница со списком пространств.
Практика 2
1) Кликните в окне браузера слева вверху на круглый оранжевый значок с логотипом Тантор. Откроется страница со списком тенантов. Кликните на строку Tenant 1. Откроется страница со списком пространств. Вы находитесь в тенантеTenant 1 и на левой вертикальной полосе меню появится значок Настройки тенанта (на картинке ниже шестой по счёту, подсвечен красноватым фоном). Кликните на это значок и появится меню Настройки тенанта.
В конце меню будет строка Токены, кликните на эту строку. На открывшейся странице кликните на красную кнопку Добавить новый токен. В появившемся окне выберите Область применения = Публичное API, Метка = Token 1, Срок действия = завтрашнюю дату. Кнопка Добавить новый токен станет активной (красного цвета), нажмите на эту кнопку.
2) Появится токен. Нажмите на значок скопировать (два квадратика). Появится всплывающее сообщение зелёного цвета, токен будет скопирован в буфер обмена, всплывающее окно с токеном при этом не закроется.
Нажмите на кнопку Скопировать в буфер обмена и закрыть. Токен ещё раз будет скопирован в буфер обмена, окно с токеном закроется, токен появится в списке.
Восстановить токен нельзя, только создать новый. Также можно досрочно удалить из списка, тогда он перестанет приниматься Платформой.
3) Кликните в левой полосе меню на Модули. Откроется меню со списком модулей. Кликните на строку Сваггер (Swagger).
4) Откроется новая вкладка в браузере или окно браузера.
Кликните в окне Сваггера на зелёную кнопку Authorize.
5) Вставьте скопированное значение токена, нажмите зелёную кнопку Authorize.
Окно обновится, появится две кнопки: Logout и Close. Нажмите кнопку Close:
7) Полосой прокрутки страницы промотайте до раздела users
8) Кликните на синюю кнопку GET. Откроется часть страницы, в которой справа нажмите Try it out.
9) Промотайте полосой прокрутки до длинной синей кнопки Execute и кликните на эту кнопку. Страница отправит запрос на хост Платформы и вернёт результат. который появится на странице. В результате будет список пользователей тенанта, токен которого использовался при авторизации. Также на странице будет запрос для утилиты командной строки curl. Полосой прокрутки справа в чёрном фрейме можно посмотреть всё содержимое ответа сервера Платформы. В ответе формата JSON будет два пользователя user1@dba1.ru и dba1@dba1.ru
10) Во фрейме страницы с командой curl можно скопировать команду, кликнув на значок справа внизу фрейма. Команду можно выполнить в командной строке и получить тот же результат, что и в окне браузера. К команде нужно добавить параметр "-k" или "--insecure", так как сертификат SSL хоста самоподписанный.
curl -X 'GET' 'https://education.tantorlabs.ru/integration/users?page=1&limit=9' -H 'accept: application/json' -H 'Authorization: Bearer ey...xv_mCY' -k
{"pager":{"currentPageId":1,"currentPageRecordsNumber":2,"totalRecords":2,"recordsPerPage":9,"totalPages":1},"results":[{"userType":"internal","userID":2,"userName":"user1","login":"user1@dba1.ru","userEmail":"user1@dba1.ru","isActive":true,"isDefPass":false,"authTypeID":0,"userProps":{"timeZone":"Europe/Moscow","languageCode":"ru"},"userTSVector":null,"termsAndPrivacy":"2025-10-01T05:55:47.61Z","passwordTtl":"0001-01-01T00:00:00Z","groupCnt":1},{"userType":"internal","userID":3,"userName":"dba1","login":"dba1@dba1.ru","userEmail":"dba1@dba1.ru","isActive":true,"isDefPass":false,"authTypeID":0,"userProps":{"timeZone":"Europe/Moscow","languageCode":"en"},"userTSVector":null,"termsAndPrivacy":"2025-10-01T06:19:54.559Z","passwordTtl":"0001-01-01T00:00:00Z","groupCnt":1}]}
Запросы передаются по протоколу REST. Внешние программы могут запрашивать данные из Платформы по этому протоколу. Тестировать запросы можно с помощью страницы Swagger. Данные о работе экземпляров PostgreSQL, хоста внешние системы могут запрашивать напрямую, как это делает Prometheus.
Практика 3
1) Для перехода на стартовую страницу Платформы кликните на логотип Тантор в левом верхнем углу страницы браузера. Откроется страница Тенанты. На странице нажмите красную кнопку Добавить тенант. Создайте новый тенант с названием Tenant 2:
2) Перейдите на страницу созданного тенанта. В нём не будет Пространств. Добавьте новое пространство Тип = Платформа и назовите его Workspace 1:
3) Добавьте ещё два пространства с названиями Workspace 2, Workspace 3.
4) Переименуйте пространство Workspace 3 в Renamed. Для этого кликните в правом верхнем углу плашки пространства на значок три точки. Появится всплывающее меню, в нём выберите Переименовать пространство. Попробуйте ввести имя существующего пространства (Workspace 2), выдастся ошибка. Введите имя пространства, которого нет (Renamed) и пространство будет переименовано.
5) В поле Поиск по имени введите 2, страница обновится и останется только одно пространство Workspace 2. Уберите в поле Поиск по имени введенную цифру 2. Страница обновится, и покажутся три пространства.
6) Удалите пространство Renamed. Для этого в меню выберите Удалить пространство. Появится окно подтверждения. Раскладка клавиатуры переключается клавишами ctrl+alt. Вы также можете выделить слово удалить, нажать ctrl+c и вставить скопированное слово в текстовое поле комбинацией клавиш ctrl+v.
7) Рабочие пространства относятся к тенантам. Имя тенанта Tenant 2 отображается на странице сверху слева. По умолчанию, Пространства отображаются в виде плашек. Нажав на значок слева от красной кнопки Добавить пространство, список можно отобразить в виде таблицы.
8) Перейдите в Tenant 1. Для этого нажмите в левом верхнему углу на красный кружок с логотипом Тантор и откроется список тенантов.
На левой полоске меню исчезнет 4 значка. Если навести курсор на значки меню, появляется всплывающая подсказка с названием значка меню на тёмном фоне:
9) Выберите в списке тенантов Tenant 1. В левой полосе меню добавится 4 значка:
Тенант, Журнал событий, Оповещения, Настройки тенанта.
Эти значки появляются только, если вы находитесь в тенанте.
Нажмите на значок Настройки тенанта на левой полосе меню. Откроется меню Настройки тенанта. В меню Пользователи найдите двух пользователей dba1@dba1.ru и user1@dba1.ru
10) На левой полосе меню найдите пункт меню Настройки системы и откройте его. Вы увидите список владельцев системы:
Но это не все пользователи. Есть ещё владельцы тенанта.
11) Чтобы увидеть их список, нужно перейти в список тенантов (кликнуть на оранжевый кружок с логотипом Тантор в левом верхнем углу страницы), справа на строке Tenant 1 кликнуть на три точки, появится выпадающее меню. В меню выбрать пункт Расширенная информация:
появится страница с описанием тенанта, на которой и будет список владельцев тенанта. Владельцы системы также присутствуют в этом списке:
12) Выберите на левой полосе меню Настройки системы. В открывшемся меню выберите меню Лицензия. Посмотрите срок действия лицензии: 2050/01/01. Посмотрите Лицензированные ЦПУ: 12 из 32.
В Tenant 1 имеется два экземпляра Tantor Postgres и три экземпляра PostgeSQL.
13) Откройте список экземпляров Tenant 1. Для этого перейдите на страницу тенанта Tenant 1 и кликните на вкладке ЭКЗЕМПЛЯРЫ:
В столбце ЦПУ=4 у всех экземпляров. Это значит, что экземпляры могут использовать 4 ядра процессора. Экземпляры ТИП=Tantor не исчерпывают лицензии Платформы. Другие форки исчерпывают Лицензированные ЦПУ, то есть в лицензированных ЦПУ учитываются ядра ТИП=Postgres, а это три экземпляра PostgreSQL: 3*4=12.
Практика 4
1) Запустите браузер Chromium. При открытии страницы https://education.tantorlabs.ru выдастся предупреждение Your connection is not private. Нажмите в окне браузера кнопку Advanced, затем ссылку Proceed to education.tantorlabs.ru (unsafe) и появится страница входа в Платформу. В окне браузера Chromium удобно тестировать сессии пользователей Платформы.
2) Войдите в браузере Chromium в Платформу под dba1@dba1.ru/Student123!
В браузере Firefox сессия создана под владельцем системы student@student.ru
Сравните меню Платформы (левая вертикальная полоса) в окнах браузеров. У владельца системы значков больше, есть значки: Настройки системы, Настройки тенанта.
3) В браузере Firefox зайдите в Tenant2 -> Расширенная информация.
Для этого кликните на оранжевый кружок с логотипом Тантор в левом верхнем углу страницы, справа на строке Tenant 2 кликните на три точки, появится выпадающее меню. В меню выберите пункт Расширенная информация. На этой странице нажмите кнопку Добавить владельца тенанта.
4) Введите имя dba1 и два раза электронную почту dba1@dba1.ru.
Нажмите красную кнопку Добавить владельца. Окно закроется и во всплывающем окне появится предупреждение: Не удалось уведомить пользователя. Предупреждение появилось из-за того, что Платформа пытается послать уведомление по электронной почте, а в тенанте не настроен почтовый сервер SMTP. На странице число владельцев тенанта увеличится с 1 до 2.
5) В браузере Chromium перейдите на страницу Tenant 2. Для этого кликните на оранжевый кружок с логотипом Тантор в левом верхнем углу страницы, справа на строке Tenant 2 кликните на три точки и выберите единственный пункт Open tenant в выпадающем меню. В выпадающем меню у владельца тенанта только один пункт, а у владельцев системы есть пункты: Переименовать тенант, Расширенная информация, удалить тенант.
6) Кликните на пункт Open tenant и откроется страница тенанта. Вместо клика на пункте меню, можно было кликнуть на строку Tenant 2, результат был бы тот же самый - открылась бы страница тенанта.
У владельца тенанта и у владельца системы есть кнопка Добавить пространство (Add namespace).
7) В окне Chromium перейдите на страницу Tenant 1 и кликните на три точки в правом верхнем углу плашки пространства Edu. Число пунктов меню у пользователя с правами Write тенанта такое же, как у владельца системы и у владельца тенанта. Все они могут удалить, переименовать пространство.
8) В окне Chromium перейдите в Tenant 2 и откройте список пользователей:
В списке пользователей присутствует владелец тенанта. Групп в тенанте нет (ноль).
Владельцы тенанта, как и владельцы системы могут добавлять пользователей тенанта.
9) Добавьте в окне Chromium пользователя user1 c электронной почтой user1@dba1.ru.
10) После нажатия на кнопку Add user появится окно, которое можно закрыть, нажав на кнопку Close:
Пользователь с такой электронной почтой есть в Tenant 1. В обоих тенантах один и тот же пользователь. Пароль у пользователя user1@dba1.ru уже был установлен: Student123!
11) Права пользователей, не являющимися владельцами системы или тенанта даются только через группы. Создайте в сессии владельца тенанта Tenant 2 (то есть в окне браузера Chromium) группы Group 1 и Group 2. Для этого выберите в меню Tenant configuration пункт Groups. В открывшемся окне нажмите красную кнопку Add local group:
Описание групп вводить не обязательно.
После создания группы появляется зеленое окно с текстом об успешном добавлении группы:
В группах нет ни пользователей, ни пространств (нули в столбцах USERS и NAMESPACES)
12) Кликните на строку группы Group 1. Откроется страница группы:
13) На странице три вкладки: INFORMATION, WORKSPACES, USERS. Кликните на вкладку WORKSPACES и добавьте группе Group 1 права на просмотр (Read) и редактирование (Write):
Нажмите красную кнопку Apply.
14) Дайте группе право READ на пространства Workspace 1 и Workspace 2:
15) Если кликнуть на вкладку USERS, то в открывшемся окне будет кнопка Go to users list, кликнув на которую откроется страница меню Users.
Кликните на страницу меню Users, откроется список пользователей тенанта Tenant 2. Кликните на строку пользователя user1@dba1.ru:
На странице две вкладки: INFORMATION и GROUPS.
16) Кликните на вкладку GROUPS и добавьте пользователя user1@dba1.ru в группу Group 2:
После нажатия на кнопку Add to group появится всплывающее сообщение на зелёном фоне, что пользователь добавлен в группу.
Владелец тенанта в группы не добавляется, кнопки добавления неактивны:
Владельцы тенанта и системы могут добавлять экземпляры в пространства, а другие пользователи, даже с правами EDIT+VIEW не могут.
Практика 5a
1) Заберите права владельца тенанта Tenant 2 у пользователя dba1@dba1.ru.
Пользователь dba1@dba1.ru останется в списке локальных пользователей тенанта. Если он не входит ни в одну группу тенанта, то он не будет иметь право даже просматривать список пространств тенанта. Это можно проверить в сессии пользователя в браузере Chromium:
Пользователь не видит список пространств. Если пользователь не добавлен в список локальных пользователей тенанта, то он не увидит этот тенант в списке тенантов.
У последнего владельца тенанта забрать права не удастся:
Владельцы системы, даже если они отсутствуют в списке владельцев тенанта, могут выполнять все действия с тенантом.
Закройте окно бразузера Chromium, дальше практики будут выполняться под владельцем системы.
2) Откройте страницу Tenant1. Кликните на вкладку ЭКЗЕМПЛЯРЫ. В первом столбце кликните на один из чекбоксов. Внизу страницы появится меню с двумя кнопками: Привязать группу параметров, Синхронизировать с группой параметров.
Уберите красную галочку и меню исчезнет. Столбец ПОРТ в таблице есть, но он не поместился на экране. Для просмотра портов нужно навести курсор на нижнюю часть окна браузера, появится тонкая горизонтальная полоса, которая используется как полоса прокрутки. Вертикальная полоса прокрутки также может присутствовать и она такая же незаметная.
3) Кликните на вкладку ПРОСТРАНСТВА, появится список пространства тенанта. Кликните на строку пространства Edu. Откроется страница на вкладке ЭКЗЕМПЛЯРЫ:
Страница похожа на предыдущую. Разница в том, что нет чекбоксов.
Цвет полоски на обеих страницах означает: желтый цвет - наличие у экземпляра оповещений уровня предупреждение; красный - наличие оповещений критического уровня. Всплывающее меню, которое вызывается при нажатии на три точки справа на строках, имеет одинаковый набор пунктов.
4) Кликните на три точки в строке у экземпляра, входящего в кластер Patroni (IP=172.2.1.*). Затем кликните на три точки в строке у экземпляра, не входящего в кластер Patroni. Пункты меню будут отличаться:
У экземпляров кластера Patroni есть пункты: Перезагрузить (reload, перечитать файлы параметров конфигурации), Повторная инициализация (пересоздание), Перезапустить (рестарт экземпляра). У мастера (primary) пункт Повторная инициализация неактивен. Пункта Переместить в другое пространство нет.
5) Откройте страницу primary экземпляра не входящего в кластер Patroni. Для этого кликните на строке с IP=10.0.2.15 и PORT=5432.
Откроется страница Обзор экземпляра:
6) Вернитесь на страницу со списком экземпляров. Для этого в верхней части страницы кликните на Экземпляры. Вы вернётесь на страницу со списком экземпляров. На странице со списком экземпляров кликните на вкладку КЛАСТЕРЫ. Появится список кластеров Patroni:
7) Кликните на строку кластера patroni, откроется страница кластера. Нажмите на кнопку Пауза/Обслуживание
На странице три экземпляра PostgreSQL и отображается РОЛЬ каждого экземпляра.
В состоянии паузы можно выполнять любые действия с экземплярами PostgreSQL, Patroni не будет выполнять никаких действий.
В пределах минуты (время обновления страницы) вместо фиолетовой кнопки Пауза/Обслуживание появится зелёная кнопка Возобновить, нажмите на неё. В пределах минуты появится фиолетовая кнопка Пауза/Обслуживание.
8) Переключите кластер на синхронную реплику. Для этого найдите в списке экземпляров экземпляр с РОЛЬ=sync_standby, кликните на три точки справа в строке этого экземпляра и выберите в появившемся меню Переключиться. Появится окно подтверждения, в котором нужно подтвердить переключение. Подтверждающее слово можно скопировать или набрать. Переключение раскладки клавиатуры - комбинация клавиш ctrl+alt.
9) Пересоздайте кластер PostgreSQL с РОЛЬ=replica. Для этого найдите в списке экземпляров экземпляр с РОЛЬ=replica, кликните на три точки справа в строке этого экземпляра и выберите в появившемся меню Повторная инициализация. Появится окно подтверждения. В столбце РОЛЬ значение поменяется на uninitialized, а в пределах минуты снова станет replica.
10) Посмотрите историю переключений. Для этого кликните на вкладку МОНИТОРИНГ. Откроется страница с графиком переключений.
На графике видно как менялись роли членов кластера Patroni в результате переключения. Все члены кластера сменили роли: primary->replica, sync_standby->leader, replica->sync_standby.
11) Кликните на вкладку ОБЗОР И УПРАВЛЕНИЕ и на открывшейся странице кликните на кнопку Конфигурация кластера. Появится всплывающее окно Информация о настройках. Закройте всплывающее окно, нажав в нём кнопку ОК. На странице две вкладки, открыта вкладка ПАРАМЕТРЫ PATRONI. На странице у каждого параметра справа значок <i>, нажав на которой, можно посмотреть описание параметра. Во всплывающем окне две ссылки Подробнее и Официальная документация.
Посмотрите информацию о параметре synchronous_mode. Если параметр включён, то в кластере Patroni один из членов кластера работает в режиме синхронной реплики (sync_standby) и переключение выполняется на него. Если параметр synchronous_mode отключён, то в кластере Patroni две асинхронные реплики (РОЛЬ = replica).
При нажатии на ссылку Подробнее откроется новая страница в браузере, на которой будет информация из локальной Базы знаний Платформы:
Практика 5b
1) Перейдите в Tenant 1 (слева вверху страницы) -> Edu (плашка или строка рабочего пространства) -> КЛАСТЕРЫ (вкладка) -> patroni (строка). Появится список экземпляров кластера Patroni. Один из экземпляров имеет РОЛЬ=primary:
2) Откройте экземпляр, который имеет РОЛЬ=primary и выберите в меню экземпляра пункт Репликация:
Появится страница со статусом реплик и показателями репликации.
На странице две вкладки: ГОРЯЧИЙ РЕЗЕРВ и СЛОТЫ.
3) Кликните на любую из строк, откроется страница:
4) Вернитесь на список экземпляров кластера Patroni. Откройте страницу экземпляра любой из реплик. В меню страницы реплики (слева вверху страницы видна роль) выберите пункт меню Репликация:
Содержимое страницы Репликация у реплики отличается от страницы, которая открывается в этом пункте меню у экземпляра primary (мастера).
5) Кликните в меню на Табличные пространства. Появится страница со списком табличных пространств и свободным местом на файловой системе, на которой расположены директории табличных пространств.
6) Кликните в меню на Графики:
Появится станица с графиками. Кликнув на красную кнопку Выбрать метрики, можно выбрать какие графики будут отображаться на этой странице.
7) Кликните на кнопку Выбрать метрики. На открывшейся странице кликните на кнопку Отменить выбор всего, затем на ссылку Производительность, затем на ссылку Блокировки, затем на ссылку Размер. На странице будут галочками выделяться метрики, относящиеся к выбранным классам метрик. Кликните на кнопку Сохранить предустановку, затем на кнопку Применить. Страница обновится и на ней будут отображены только выбранные графики.
8) Нажмите левую клавишу мыши на графике CPU Usage, удерживая кнопку мыши, перетащите график на место Loadaverage, отпустите кнопку мыши. Прядок графиков поменяется:
Таким образом, можно менять порядок следования графиков.
9) Период отображения данных на графиках можно менять:
10) Если размер страницы по горизонтали достаточный (можно уменьшить зумом браузера), то графики располагаются в несколько столбцов и перетаскивая графики, можно менять их взаимное расположение:
Практика 5c
1) Вернитесь на страницу пространства Edu. Для этого кликните на ссылку Edu в верхней части страницы:
2) На странице пространства кликните на вкладку АГЕНТЫ. Агенты у которых есть значок <!> в красном треугольнике имеют версию, более чем раннюю, чем версия Платформы.
3) Кликните у агента КОНЕЧНАЯ ТОЧКА=10.0.2.15 на три точки справа. Появится выпадающее меню. В меню выберите Инструкции по обновлению. Появится всплывающее окно, в нём выберите дистрибутив Astra linux, версия 1.6+. Агент может скачиваться и через интернет, если в операционной системе добавлен репозитарий Тантор Лабс:
apt-get update
apt-get --only-upgrade install pmaagent=6.1.0
и с хоста Платформы:
curl "https://education.tantorlabs.ru:8443/..." -o /tmp/pmaagent.deb -k
apt-get install -y /tmp/pmaagent.deb
Поставьте галочку У меня нет доступа к интернету. Кликните на значок с двумя квадратами у команды скачивания агента. Команда будет скопирована в буфер обмена.
Откройте терминал linux, кликнув на иконку Fly Terminal на десктопе. Переключитесь в пользователя root (пароль root), выполнив команду su -.
Вставьте содержимое буфера обмена. Для этого нажмите комбинацию клавиш ctrl+shift+v или кликните правую кнопку мыши и выберите в появившемся меню Paste.
Выполните в терминале команду:
systemctl daemon-reload && systemctl restart pmaagent
Команду можно скопировать из окна браузера.
После выполнения команды, нажмите в окне браузера красную кнопку Готово. Всплывающее окно с инструкцией по установку агента закроется. У агента пропадёт значок красного треугольника и поменяется номер версии агента.
4) Если у агентов на адресах 172.21.1.* версия агента не текущая, то их тоже можно обновить. Эти агенты работают в контейнерах докер. Для их обновления выполните команды в терминале root:
docker-compose -f /root/patroni-docker-main/examples/docker/docker-compose.yaml stop
cp /usr/sbin/pmaagent /root/patroni-docker-main/examples/docker/agent-data0
cp /usr/sbin/pmaagent /root/patroni-docker-main/examples/docker/agent-data1
cp /usr/sbin/pmaagent /root/patroni-docker-main/examples/docker/agent-data2
docker-compose -f /root/patroni-docker-main/examples/docker/docker-compose.yaml start
Примечание. Эти команды останавливают контейнеры, копируют новый файл агента на место старого и запускают контейнеры. Если бы контейнеры обслуживали клиентов, то можно обновить агенты и без остановки контейнеров командами:
docker exec -it -u root docker-patroni2-1 killall -3 pmaagent
cp /usr/sbin/pmaagent /root/patroni-docker-main/examples/docker/agent-data2
docker exec -it -u root docker-patroni2-1 /var/lib/pma/agent/pmaagent &
Эти команды останавливают агент, обновляют файл агента и запускают агент.
В окне браузера обновите страницу со списком агентов. Версия у агентов будет обновлена:
Практика 6
1) Перейдите на страницу экземпляра 10.0.2.15:5432. Кликните на вкладку ЭКЗЕМПЛЯРЫ. Появится список всех экземпляров PostgreSQL. Кликните на строку экземпляра, у которого IP=10.0.2.15 и ПОРТ=5432.
Откроется страница экземпляра. В левой части появится меню экземпляра. В правой части отображается страница Обзор:
На плашке СЕТЬ отображается число сетевых интерфейсов. В примере на картинке "1 из 14".
В выпадающем окне плашки СЕТЬ, справа вверху, также отображается список сетевых интерфейсов:
2) В правой верхней части большинства плашек есть три точки, нажав на которые появится всплывающее меню из двух пунктов: Выпадающее окно и Инфо. При нажатии на график, который показывается на плашке, будет показан во всплывающем окне большего размера. Откройте выпадающее окно у плашки ДОСТУПНО ОЗУ:
3) Поменяйте интервал графика, кликнув на ссылку в правом верхнем углу на Последний день или Последние 7 дней:
Закройте окно, кликнув на кнопку Закрыть.
Практика 7
1) Плашка Уведомления находится справа внизу страницы Обзор экземпляра. На этой плашке есть красная кнопка Посмотреть все сообщения. Если кликнуть на кнопку, откроется страница с оповещениями (уведомлениями, сообщениями).
Нажмите на кнопку Посмотреть все сообщения
На странице будут показаны сообщения по всему тенанту и всем его экземплярам. На это указывает отсутствие красного кружка у значка воронки (фильтр) справа вверху.
Вернитесь на предыдущую страницу. Для этого нажмите сверху слева в окне браузера на значок "стрелки влево" . Вы вернётесь на страницу экземпляра. Число в красном кружке на значке колокольчика может уменьшиться, так как оно будет показывать число сообщений, относящихся к экземпляру.
2) Второй способ попасть на страницу оповещений, это кликнуть на значок колокольчика на левой вертикальной панели меню. Колокольчик появляется на панели меню, если вы находитесь на любой странице какого-нибудь тенанта. При клике на значок колокольчика откроется всплывающее окно Оповещения с несколькими самыми последними оповещениями. Кликните на значок колокольчика:
3) Внизу всплывающего окна есть ссылка Все оповещения, при клике на которую откроется страница с оповещениями. Кликните на ссылку.
Если вы находились на странице экземпляра или пространства, то будет включен фильтр по пространству и статусу Открыто. Если вы находились на странице тенанта, то фильтр не будет включён. В любом случае, страниц Оповещения одна и та же и на ней можно настроить фильтр сообщений.
4) Выберите Критичность=Проблема. Страница обновится.
5) Чтобы закрыть окно фильтра кликните на пустое место страницы вне всплывающего окна фильтра. Кликните у любого сообщения со Статус=Открыто на три точки справа и выберите во всплывающем меню Закрыть.
Появится всплывающее окно, в котором можно указать в текстовом поле причину закрытия.
6) Оставьте поле пустым и кликните на красную кнопку Закрыть оповещение.
Большинство оповещений закрывается автоматически (через ~3 минуты) после исчезновения причины появления оповещения.
7) Кликните на строку любого оповещения или нажмите на три точки и выберите во всплывающем меню пункт Подробнее. Откроется страница с деталями оповещения:
На странице три вкладки: ОБЗОР, СВЯЗАННЫЕ ОПОВЕЩЕНИЯ, ЖУРНАЛ СОБЫТИЙ.
8) Кликните на вкладку СВЯЗАННЫЕ ОПОВЕЩЕНИЯ
На этой странице появится список оповещений, которые могут быть связаны с открытым оповещением. На странице три вкладки: ПО ВРЕМЕНИ, ПО ЭКЗЕМПЛЯРАМ, ПО ПРОСТРАНСТВАМ. По умолчанию открывается вкладка ПО ВРЕМЕНИ и показываются оповещения, которые появились примерно в то же время.
9) Кликните на вкладку ЖУРНАЛ СОБЫТИЙ. Появится история изменения свойств оповещения (создан, изменен уровень важности, закрыт) или характеристик (value, измеряемого значения) этого оповещения:
10) Оповещения могут передаваться в канал Telegram, Mattermost, по e-mail.
Перейдите в Настройки тенанта. Для этого кликните на левой вертикальной полосе меню на значок эквалайзера. В появившемся меню кликните на строку Каналы уведомлений. Затем кликните на строку Telegram. Откроется страница со списком каналов.
11) Определение канала содержит данные для того, чтобы Платформа могла публиковать сообщения в канале Telegram. Для того, чтобы сообщения публиковались нужно создать правило, по которому сообщения будут публиковаться. Без правил сообщения не публикуются. Если СТАТУС=Активно, то Платформа смогла подсоединиться к каналу. Канал (именно канал, а не группа) с таким именем существует в Telegram и его можно найти в поиске. Канал приватный.
Кликните на строку канала с названием PlatformTest, откроется страница канала со списком правил:
На картинке у канала Платформы видно одно правило: публиковать оповещения уровня важности PROBLEM (критические) по любым событиям в пространстве Edu.
12) Добавьте правило: посылать в канал Telegram сообщения о предупреждениях, возникших на объектах пространства Edu:
Это правило появится в списке правил:
13) Удалите созданное правило, чтобы не замусоривать канал лишними сообщениями.
14) Не удаляя правил, можно приостановить публикацию сообщений в канале. Для этого канал нужно Приостановить. Этот пункт есть во всплывающем меню, если нажать на три точки справа в строке с названием канала. Кликните на Приостановить, появится всплывающее окно. В окне нажмите кнопку Отменить. Для приостановки нужно будет вставить слово "приостановить" в текстовое поле, тогда кнопка Приостановить станет активной (красного цвета).
Приостановленный канал получит СТАТУС=Отключено, но его можно активировать:
15) Уведомления могут параллельно посылаться и по электронной почте. Адрес почты можно ввести на странице Настройки тенанта -> Почта:
Для посылки уведомлений ещё нужно добавить правило (добавляются так же, как для Telegram) и настроить параметры SMTP-сервера на странице Настройки тенанта -> Почтовый сервер (SMTP), на который Платформа будет передавать сообщения электронной почты для доставки адресату:
16) Перейдите на страницу экземпляра 10.0.2.15:5432 и откройте страницу Настройки мониторинга:
17) На странице перейдите на вкладку ТРИГГЕРЫ. Найдите триггер, связанный с памятью. Для этого в поле поиска наберите буквосочетание mem. Откройте контекстное меню и выберите Редактировать:
У части триггеров есть возможность выбрать один из трёх уровней чувствительности. Оповещения о нехватке памяти возникают в виртуальной машине довольно часто.
18) Уменьшите чувствительность триггера, выбрав пороговые значения 30% и 10% свободной памяти, вместо 40% и 20% и нажмите кнопку Сохранить:
19) Очистите поле поиска от букв mem и на странице отобразятся все триггеры. В версии Платформы 6.1 есть 39 триггеров.
20) Перейдите на страницу Настройки мониторинга -> Шаблоны писем.
На этой странице показаны шаблоны оповещений. Кликните на кнопку Редактировать у шаблона Оповещения. На открывшейся странице нажмите кнопку Предпросмотр.
Чтобы закрыть предпросмотр, кликните на любое место вне всплывающего окна предпросмотра и оно закроется. Чтобы вернуться на страницу со списком шаблонов кликните в меню на строку Шаблоны писем.
21) Откройте терминал и выполните команды:
pgbench -T 600 -P 60 -c 5 -f /opt/workload/custom_workload.sql
Первая команда создаёт тестовые таблицы.
Вторая команда запускает тестовый скрипт на 600 секунд в 5 сессиях.
Этот скрипт создаёт нагрузку на СУБД для того, чтобы в следующей практике можно было посмотреть планы запросов.
Практика 8
1) Перейдите на страницу экземпляра 10.0.2.15:5432 и откройте страницу Профилировщик запросов:. Выберите в поле Сортировать по: Записано временных блоков или Строки
2) Кликните на первую строку в списке запросов:
3) Кликните на вкладку ПЛАНЫ:
4) Кликните на любую строку под гистограммой
Страница с планом широкая. Уберите меню в левой части страницы, кликнув вверху слева на значок "стрелка влево" и меню уберётся. Значок "стрелка влево" () сменится на значок "стрелка вправо" (), нажав на который, меню вновь появится.
Если страница не помещается в окне браузера, то наведя мышь на нижнюю часть страницы, в нижней части страницы появится полоса прокрутки:
5) При клике справа вверху на ссылку tilemap в правой части страницы появится картинка:
6) При клике на рекомендации, появятся рекомендации, если они есть. У запроса на картинке 3 рекомендации:
7) При клике на ссылку диаграмма, появится диаграмма запроса. Проводя мышкой по элементам диаграммы, будут появляться всплывающие окна с частями плана запроса, которые показываются в виде элемента диаграммы:
8) Кликните на ссылки красного цвета рядом с ссылкой диаграмма: explain, отношения, модель, оригинал. Страница будет обновляться. Это поможет ознакомиться с функционалом анализа планов запросов.
9) Попасть на страницу планов можно со станицы Расширенной аналитики.
Откройте меню экземпляра, если он скрыто и кликните в меню на строку Расширенная аналитика
10) Кликните на значок в виде красных горизонтальных полосок над словом PSA. Появится всплывающее меню:
11) Кликните в меню на слово результаты, если рядом со словом показывается число синим цветом. Это запросы, у которых объем переданных данных превысил 2Мб и длительность которых превысила пороговое значение для логирования запросов, установленное параметрами конфигурации. Если таких запросов нет, то числа у строки результаты не будет и ссылка не будет активна (не кликабельна). Пример:
12) Кликните на число красного цвета справа в строке столбца last. Это последнее время в пределах суток, когда наблюдался запрос.
В примере на картинке для запроса 8 рекомендаций для 3 узлов плана (после слова рекомендации).
13) Откройте страницу экземпляра 10.0.2.15:5432. Откройте пункт меню Расширенная аналитика. Слева вверху высвечивается IP-адрес. Кликните на IP-адрес, появится список IP-адресов и портов, с которыми работает агент, обслуживающий выбранный экземпляр. Порт 5432 не показывается, так как это значение по умолчанию для экземпляров PostgreSQL. В списке два адреса двух экземпляров. Выберите адрес реплики 10.0.2.15:5433
14) Горизонтальной полосой прокрутки внизу страницы промотайте в правую часть страницы и найдите справа вверху ссылку Логи:
15) Кликните на ссылку Логи. Откроется просмотр диагностического лога реплики на порту 5433. На этой странице логи показываются посуточно, начиная с 0 часов 00 минут. Файл лога создаётся раз в сутки в соответствии со значением параметра конфигурации log_filename = 'postgresql-%F.log'. Дату, за которую хочется посмотреть лог можно выбрать кликнув на число даты, которая высвечивается слева от ссылки Логи.
Введите время в поле времени, отстоящее на несколько минут назад от текущего времени. Например, 11:20. Нажмите на клавиатуре клавишу Enter. Страница лога обновится и начнет отображать записи, начиная с введенного времени:
16) Вернуться на исходную страницу Расширенной аналитики проблематично, так как Расширенная аналитика это функционал Тензора, интегрированный в Платформу. Для возврата к предыдущим окнам браузера, можно использовать кнопку "назад"() в браузере.
Также, можно перезайти на страницу Расширенной аналитики. Кликните в меню на какую-нибудь ссылку, например, Настройки мониторинга и, затем, на ссылку Расширенная аналитика. Снова откроется начальная страница Расширенной аналитики экземпляра 10.0.2.15.
17) В меню страницы (красный значок с горизонтальными полосками слева вверху страницы левее IP адреса) выберите Проблемные запросы. Кликните на вкладку "по объектам базы (операции)".
Справа в столбце Timeline вертикальными полосками отображается время, когда запускался скрипт, запускавшийся ранее и создававший нагрузку
pgbench -T 600 -P 60 -c 5 -f /opt/workload/custom_workload.sql
18) Кликните на ссылку справа вверху Логи. Снова откроется страница диагностического лога на времени выполнения запросов. У сообщений с планами запросов сверху справа будет ссылка Перейти к анализу. при нажатии на которую откроется страница Профилировщика запросов с планом этого запроса.
Можно найти запрос, используя вертикальную полосу прокрутки в окне лога и кликнуть на ссылку Перейти к анализу. Вернуться обратно на страницу лога, можно кнопками браузера назад-вперёд ( ), которые находятся слева вверху в окне браузера Firefox или комбинацией клавиш на клавиатуре Alt и Alt.
19) Вернитесь на страницу Расширенной аналитики. Для возврата кликните в меню на какую-нибудь ссылку, например, Настройки мониторинга и, затем, на ссылку Расширенная аналитика. Снова откроется начальная страница Расширенной аналитики экземпляра 10.0.2.15. В меню страницы (красный значок с горизонтальными полосками слева вверху страницы левее IP адреса) кликните на строку PG config в самом низу меню.
Откроется страница с двумя вкладками Параметры и Изменения.
20) Кликните на вкладку Изменения и вы увидите историю изменения параметров конфигурации. Дат и время изменения параметров высвечивается в последнем столбце, после столбца описание. Если размер окна браузера не очень широкое, то полосой прокрутки внизу окна браузера можно промотать окно вправо, чтобы увидеть столбец изменен.
На вкладке параметры также есть столбец изменен. На вкладке параметры выдаются все параметры конфигурации, даже если они не установлены в файлах параметров конфигурации (а значит, имеют значения по умолчанию) и никогда не устанавливались. Для таких параметров в столбце изменен на вкладке параметры выдается дата и время, когда Расширенная аналитика первый раз собрала данные по экземпляру.
21) В новой вкладке браузера откройте ссылку https://education.tantorlabs.ru/pg-monitor/hosts На открывшейся странице появится список рабочих процессов Расширенной аналитики и статистика их работы. Серым цветом подсвечиваются нечётные строки. Если рабочий процесс не может подключиться к хосту, строка подсвечивается жёлтым цветом.
На вкладке Очистка БД можно настроить, за сколько дней хранить данные Расширенной аналитики. Данные хранятся посуточно, по умолчанию 7 полных дней. Вместо хранения по дням (По глубине архива) можно выбрать хранение По свободному месту.
22) Закройте открытую вкладку браузера с названием pg-monitor кликнув на крестик справа от названия.
Практика 9a
1) Откройте пункт меню Текущая активность экземпляра 10.0.2.15:5432
2) Запустите в терминале команду, создающую 5 сессий с базой данных postgres:
pgbench -T 600 -P 60 -c 5 -f /opt/workload/custom_workload.sql
3) Число сессий с базой данных postgres увеличится на 5.
Кликните на строку базы данных postgres. Откроется список сессий:
4) Перейдите на вкладку Ожидание. На странице не будет сессий. Откройте новый терминал и выполните команды:
psql
postgres=# begin;
BEGIN
postgres=*# lock table stock_items;
LOCK TABLE
postgres=*#
На странице вкладки ОЖИДАНИЕ появятся сессии.
5) Перейдите на вкладку ЗАБЛОКИРОВАНО. Вы увидите простаивающую сессию. Нажмите кнопку Завершить.
Через несколько секунд сессия исчезнет. В окне терминала с командой блокировки попробуйте зафиксировать транзакцию:
postgres=*# commit;
FATAL: terminating connection due to administrator command
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.
postgres=#
Выдана ошибка, что сессия была завершена по команде администратора.
Закройте окна терминалов. Для выхода из psql и терминалов можно использовать комбинацию клавиш ctrl+d.
6) Этот и следующие пункты практики опциональны, их можно не выполнять, достаточно посмотреть.
Откройте три терминала linux. Запустите в терминалах psql. Выполните команды в терминалах следующем порядке:
1 begin;
1 update t set n=1 where n=1;
2 begin;
2 update t set n=2 where n=2;
1 update t set n=2 where n=2;
3 update t set n=1 where n=1;
7) На вкладке ОЖИДАНИЕ появятся сессии первого и третьего окна psql, в которых подвисло выполнение команд.
8) Кликните на любую строку, откроется страница с текстом команд и статусами сессий.
9) Кликните на галочку Показать деревья блокировок. Появится сессия, которая связана с заблокированной
Кликните на любой из строк, в правой части окна появится команда и статистика выполнения команды.
Нажмите в браузере кнопку "обновить страницу" (значок с двумя стрелками). Это нужно, чтобы остановить работу javascript, который слишком часто обновляет страницу (часто появляется кружок в середине окна браузера).
10) Во втором окне psql наберите команду update t set n=1 where n=1;
Появится сообщение о том, что обнаружена взаимоблокировка. Транзакция перейдёт в состояние сбоя (значок "!") и она сможет завершиться только откатом, даже, если послать команду завершения транзакции commit или end.
postgres=*# update t set n=1 where n=1;
ERROR: deadlock detected
DETAIL: Process 26387 waits for ExclusiveLock on tuple (0,1) of relation 24871 of database 5; blocked by process 26286.
Process 26286 waits for ShareLock on transaction 143170; blocked by process 26494.
Process 26494 waits for ShareLock on transaction 143171; blocked by process 26387.
HINT: See server log for query details.
postgres=!# commit;
ROLLBACK
postgres=#
11) Вернитесь на вкладку ОЖИДАНИЕ:. Для этого кликните на слово postgres на breadcrumb (строка сверху в окне). В открывшемся окне кликните на вкладку ОЖИДАНИЕ.
На странице появится сессия, которая заблокирована, то есть не может выполнять команды, так как ожидает снятия блокировки.
12) Кликните на вкладку ЗАБЛОКИРОВАНО.
На странице появится сессия, которая блокирует. Состояние сессии: idle in transaction - открыла транзакцию и ничего не делает. Нажмите кнопку Завершить и подтвердите завершение сессии. Сессия-блокировщик будет завершена. Если в ней набрать какую-нибудь команду, то будет выдано сообщение о том, что соединение было завершено (terminated) по команде администратора:
Для прерывания долго простаивающих транзакций используют параметр конфигурации idle_in_transaction_session_timeout. Для прерывания долго выполняющихся команд и транзакций statement_timeout и transaction_timeout. Для ограничения времени ожидания получения блокировки используют параметр lock_timeout.
13) Закройте открытые терминалы linux. Это можно сделать комбинацией клавиш ctrl+d.
Практика 9b
1) Откройте пункт меню Конфигурация экземпляра 10.0.2.15:5432
Параметры выводятся по категориям представления pg_settings:
postgres=# select name, category from pg_settings where category like 'Auto%' order by 1 limit 3;
name | category
---------------------------------+------------
autovacuum | Autovacuum
autovacuum_analyze_scale_factor | Autovacuum
autovacuum_analyze_threshold | Autovacuum
(3 rows)
2) В фильтре (значок воронки) можно отфильтровать параметры по Статусу значения и Категории. Кликните на значок фильтра и посмотрите, какие есть Статусы значений.
Под названием параметров есть короткое описание. При нажатии на значок (i) справа в строке параметра, появится всплывающее окно с коротким описанием параметра и двумя ссылками: Подробнее и Официальная документация.
При изменении значения части параметров новые значения применятся после перезапуска экземпляра или перезагрузки. Перезагрузка (перечитывание конфигурационных файлов) не влияет на выполняющиеся на экземпляре команды.
Значок != означает, что конфигуратор Платформы рекомендует значение, отличное от текущего. Если нажать на красную кнопку со значком != , то кнопка на странице Применить настройки станет активной. После нажатия на кнопку Применить настройки появится всплывающее окно, в котором будут показаны прежние значения параметров, новые значения параметров и что требуется для применения новых значений: перечитывание параметров конфигурации или рестарт экземпляра. При нажатии на кнопку Применить и перезагрузить, Платформа не рестартует экземпляр, только выполняет команды alter system set и перечитывает конфигурационные файлы, вызывая функцию pg_reload_conf().
3) Найдите параметр hot_satndby_feedback. Для этого в поиске наберите hot_stand. Страница обновится и высветится несколько параметров:
4) Нажмите на красную кнопку != у параметра hot_satndby_feedback, затем на кнопку Применить настройки, которая станет красной.
5) В появившемся окне нажмите красную кнопку Применить и перезагрузить:
Слева от названия параметра появится красная полоска, которая означает, что значение параметра установлено в одном из конфигурационных файлов (postgresql.conf или postgresql.auto.conf).
Зелёноватый фон у значения параметра означает, что конфигуратор Платформы имеет рекомендацию для этого параметра и текущее значение соответствует рекомендуемому.
6) Установите значение hot_satndby_feedback=off. Для этого кликните на значок карандаша и выберите во всплывающем окне off.
Нажмите на кнопку Сохранить. Затем нажмите на кнопку Применить настройки. Во всплывающем окне нажмите на кнопку Применить и перезагрузить.
Значение параметра будет установлено в значение off. Зеленоватый фон у значения станет серым. Красная полоса слева от названия параметра останется, так как значение было установлено Платформой командой alter system set, а не сброшено в значение по умолчанию командой alter system reset.
7) Уберите значение параметра из конфигурационного файла в SQL-редакторе. Для этого кликните в меню на ссылку Браузер БД. В строке базы данных postgres (или любой другой) нажмите кнопку SQL-редактор. Введите имя пользователя postgres и пароль postgres.
Нажмите на красную кнопку Подключиться. Пароль в браузере сохранять не нужно (Do not save). Введите команды в окно запроса:
alter system reset hot_standby_feedback;
select pg_reload_conf();
и нажмите кнопку Выполнить запрос.
Кликните в верхней части страницы (breadcrumb) на ссылку Браузер БД для того чтобы появилось меню экземпляра. В меню экземпляра кликните на строку Конфигурация и поиском найдите параметр hot_satndby_feedback (в окне поиска наберите hot). Красной полоски слева от названия параметра hot_satndby_feedback не будет.
8) Откройте модуль Группы параметров. Для этого кликните в левой полосе меню на значок Модули (четыре квадратика) и, в появившемся меню, на строку Группы параметров.
9) На странице появится список групп, в том числе предустановленных (system config group). Предустановленные группы есть для каждой поддерживаемой Платформой основной версии (major release) PostgreSQL и Tantor Postgres. В группах хранится список параметров и значения по умолчанию для своей версии. Группы можно использовать для сравнения того, какие значения параметров появились или были удалены или поменяли значения по умолчанию.
Выберите галочками (левый столбец) группы с названиями: PostgreSQL 18 и Tantor 17 (или любые другие). В нижней части страницы появится всплывающее меню, нажмите в нём кнопку Сравнить.
Появится окно со списком различий в значениях параметров. Пустое значение означает, что параметра нет.
Однако, полностью доверять тому, что высвечивается нельзя, так как могут быть ошибки и неточности. Например, выдаваться значения 1МБ и 1024кБ, которые одинаковы. Пример:
Параметр конфигурации application_name устанавливается клиентом, подсоединяющимся к базе данных и имеется во всех версиях PostgreSQL, начиная с 9.0.
10) Закройте окно сравнения параметров, кликнув на значок крестика в правой верхней части всплывающего окна или на затемнённую часть страницы.
Практика 10a
1) Откройте пункт меню Браузер БД экземпляра 10.0.2.15:5432
На странице три кнопки: Аудит, SQL-редактор, Схема данных. В SQL-редакторе можно давать команды SQL и просматривать результаты запросов.
2) Кликните на кнопку Аудит на строке базы данных postgres. На открывшейся странице кликните на красную кнопку Обновить данные.
При наведении на таблицу курсора мыши появится всплывающее окно с описанием найденных проблем.
3) В правой панели раскройте пункт Таблицы у которых тип данных внешнего ключа отличен от исходного и кликните на имя таблицы, появившееся в этом пункте.
Найдите раздел Рекомендации, прочтите рекомендацию. Рекомендация осмысленная и в ней есть команда, которую можно выполнить в SQL-редакторе.
На плашке с рекомендациями 12 рекомендаций по таблице. Кликая на красные стрелки "<" и ">", можно просматривать рекомендации.
4) Кликните на вкладку СТАТИСТИКА.В поле Название столбца на нижней плашке с названием СТОЛБЦЫ ГИСТОГРАММЫ выберите столбец amount:. Появится гистограмма распределения значений в строках столбца.
Практика 10b
1) Откройте пункт меню Обслуживание экземпляра 10.0.2.15:5432.
Если пункт Обслуживание отсутствует в меню экземпляра, то экземпляр является физической репликой. Пункт Обслуживание имеется только у мастера.
2) Нажмите на красную кнопку Собрать данные. В полях таблицы появятся числа. Нажмите на три точки у базы данных postgres, появится меню с тремя пунктами. Нажмите на строку Раздутие таблиц. Появится список таблиц в базе данных и детали. В столбце РАЗМЕР показан размер, который занимают файлы таблицы. В столбце ПОСЛЕ ОЧИСТКИ - какой размер могли бы занимать файлы после реорганизации. Реорганизовать таблицу можно командами vacuum full, cluster.
Выберите галочкой таблицу в схеме public, например, stock_items.
3) Внизу появится всплывающее окно. Выберите Действие: VACUUM FULL с опцией ANALYZE и нажмите кнопку Запустить обслуживание, которая станет активной.
4) В появившемся окне подтверждения введите запустить и нажмите кнопу Запустить.
В фоновом режиме будет запущена команда vacuum full analyze имя_таблицы. Откроется вкладка ИСТОРИЯ. На этой вкладке показывается история команд обслуживания, которые были выполнены Платформой.
5) Кликните на первую строку. Откроется страница с деталями выполненной задачи.
6) Кликните в левой вертикальной полосе меню на значок книжки Журнал событий.
На открывшейся странице справа вверху нажмите на значок воронки Фильтр и выберите Тип события=MAINTENANCE MANAGEMENT. Кликните на пустое место страницы, всплывающее окно с условиями фильтрации закроется.
7) Кликните на первую строку. Откроется страница с Информацией о событии. Формат записи отличается от формата на вкладке ИСТОРИЯ задач обслуживания, но детали задачи аналогичны.
Вернуться на страницу экземпляра через breadcrumb проблематично. Для возврата можно воспользоваться кнопкой "назад"() в браузере.
Практика 10c
1) Кликните в левой полосе меню на значок Модули и выберите модуль Задачи.
2) Появится список задач. Выберите галочкой задачу. Появится всплывающее меню, в котором нажмите кнопку Запустить сейчас. Появится окно подтверждения. Подтвердите запуск задачи. Задача поменяет СТАТУС с "Успешно" на "В процессе".
3) Кликните на строку задачи. Откроется страница задачи, где в ПАРАМЕТРЫ будет указана команда, которая выполняется. Это утилита pgbench, которая запускает тест на 300 секунд.
4) После того, как СТАТУС изменится на Успешно, кликните на кнопку Журнал событий. Откроется страница с двумя строками. Нижняя строка описывает запуск задачи, верхняя завершение выполнения задачи. Разница во времени между событиями - 5 минут.
5) Кликните на верхнюю строку. Откроется страница с описанием события. Кликните на ссылку view more...
На странице отображается выполненная команда. В поле ExecutionResult часть результата команды, обрезанная с начала. Символы перехода на новую строку в результате не отображаются.
6) Дальше создадим новую задачу. Вернитесь на страницу со списком задач. Кликните на красную кнопку Создать задачу. Заполните поля, как на картинке:
7) Задача создана, но в ней не указано, что выполнять. Откройте созданную задачу, кликнув в списке задач на неё. Появится страница со списком действий (шагов, которые выполняются при запуске задачи). Список пуст. Нажмите на кнопку Добавить действие и выберите SQL. Заполните поля, как на картинке:
8) Действие появится в списке действий задачи:
9) Нажмите кнопку Запустить задачу. Появится всплывающее окно, подтвердите запуск. Задача выполнится. Кликните на кнопку Журнал событий. В журнале будет две записи, кликните на верхнюю, у которой больше число в столбце ИД СОБЫТИЯ. Появится результат выполнения задачи:
Задача была успешно выполнена.
9) Для возврата на страницу задачи, кликните два раза на кнопку "назад"() в браузере. Затем, кликните на ссылку Задачи на breadcrumb (верхняя часть страницы).
9) В последней практике (12а) по обновлению и инсталляции Платформы в виртуальной машине понадобится дистрибутив новой версии Платформы. Дистрибутивы лежат на сайте https://public.tantorlabs.ru
В зависимости от скорости интернет, вы можете начать скачивать новый дистрибутив заранее. Рекомендуется использовать наиболее новую версию, так как в ней больше новшеств. Вы можете скачать дистрибутив, раскрыть его на хосте и подключить директорию внутрь виртуальной машины. Если это сложно, то можете скачать дистрибутив из виртуальной машины.
Пример ссылки для скачивания https://public.tantorlabs.ru/tantor-eco-6.1.1.tar.gz
Если дистрибутив не будет доступен в виртуальной машине 12 практику будет нельзя выполнить.
Практика 11
1) Перейдите в Анонимайзер. Для этого кликните на значок Модули левой полоски меню. Появится всплывающее окно со списком модулей. Кликните на строку Анонимайзер.
2) На появившейся странице кликните на красную кнопку Создать источник данных. В появившемся окне заполните поля, как показано на картинке:
Источник будет создан и появится в списке ИСТОЧНИКИ ДАННЫХ.
3) Кликните на строку созданного источника. На открывшейся странице Информация об источнике данных кликните на вкладку СКАНИРОВАНИЕ. На открывшейся вкладке сканирований кликните на кнопку Добавить сканирование. Заполните поляк, как на картинке:
В результате сканирования будет создан сенситивный словарь, имя которого вы укажете. Словаря с таким именем не должно существовать, он будет создан.
Нажмите кнопку Далее. На втором шаге выберите словарь meta dictionary, он один в списке. Нажмите кнопку Далее. Это словарь по умолчанию, в котором заданы признаки столбцов, в которых могут хранится конфиденциальные данные. По умолчанию есть один словарь.
На третьем шаге можно выбрать сенситивный словарь, но список пуст. Этот опциональный шаг может использоваться, чтобы добавить к сканированию описание столбцов, которые уже были распознаны или введены вручную в словарь, как требующие маскировки. Нажмите кнопку Далее.
На четвертом шаге можно выбрать несенситивный словарь. Этот опциональный шаг может использоваться, чтобы принудительно исключить из сканирования столбцы, которые не нужно маскировать. Указание несенситивного словаря может ускорить сканирование. Нажмите кнопку Сканировать.
Определение сканирования создано.
Если нажать кнопку Отменить, то можно будет ввести детали подсоединения к базе данных позже.
В появившемся окне введите pma_user/pma_user и нажмите Подключиться. У пользователя postgres пароль не установлен, поэтому под ним подсоединиться не удастся. Чтобы можно было подсоединиться, нужно установить пароль командой: alter user postgres password 'postgres';. Если в браузере появится всплывающее окно сохранения пароля, выберите Don't save.
4) Запустите сканирование через меню, которое вызывается при нажатии на три точки справа в строке определения сканирования. Так как детали подсоединения к базе данных были заданы, то сканирование немедленно запустится.
Сканирование может быть запущено только один раз.
5) Через 10 секунд нажмите на кнопку "обновить" (две стрелочки). Обновляйте страницу, пока в столбце СТАТУС не появится Завершено.
6) В результате сканирования был создан словарь. Посмотрите созданный словарь. Для этого кликните на три точки и выберите строку Словари-результаты. Пункт меню Запустить неактивен, так как сканирование можно запустить только один раз.
7) В появившемся списке будет один Сенситивный словарь. Кликните на строку и откроется словарь. Словарь - документ в формате JSON.
8) Для возврата на страницу сканирования, кликните два раза на кнопку "назад"() в браузере. Использование предпросмотра опционально. Предпросмотр позволяет посмотреть как будут выглядеть данные после анонимизации.
Кликните на вкладку Предпросмотр., где нажмите на красную кнопку Добавить предпросмотр. В появившемся всплывающем окне выберите словарь "Dict 1" и заполните Название предпросмотра "Preview 1". Нажмите кнопку Применить.
Предпросмотр появится в списке:
9) Кликните на строку предпросмотра. В появившемся окне введите детали для подключения к базе данных: pma_user/pma_user и нажмите Подключиться. Если в браузере появится всплывающее окно сохранения пароля, выберите Don't save.
В словаре Dict 1 были указаны две таблицы pgbench_branches и stock_items, столбцы которых анонимизируются. Раскройте в дереве меню shemas -> tables и кликните на таблице pgbench_branches.
Данные таблицы показываются в двух вариантах: исходные до анонимизации (сверху) и после анонимизации (снизу).
10) Кликните на breadcrumb на ссылку master, чтобы вернуться на страницу Информация об источнике данных. Перейдите на вкладку ДАМПЫ и кликните на красную кнопку Добавить дамп. Введите данные, как на картинке и нажмите кнопку Создать дамп:
В списке дампов появится строка. СТАТУС дампа будет меняться с значения Запуск на В процессе. Через 7-10 минут статус сменится на Завершено. Для обновления статуса нужно нажимать на кнопку "обновить" (две стрелочки).
После удаления промежуточных файлов дамп займёт 80Мб. Файлы дампа лежат в директории на хосте Платформы:
ls -al /opt/tantor/eco/pg_anon/dump1
total 82228
drwxr-xr-x 2 root root 4096 Nov 4 18:58 .
drwxr-xr-x 3 root root 4096 Nov 4 18:51 ..
-rw-r--r-- 1 root root 72 Nov 4 18:51 07f7b6866214f4297f1e4a67edec8f76.bin.gz
-rw-r--r-- 1 root root 2507212 Nov 4 18:51 34ed14e1766e6b41507b217d2f088dfc.bin.gz
-rw-r--r-- 1 root root 81 Nov 4 18:51 427f9ad66a7219208643423cd6b81ab9.bin.gz
-rw-r--r-- 1 root root 375559 Nov 4 18:51 43739e7ec0d34bead9530d005fda4e6f.bin.gz
-rw-r--r-- 1 root root 80686070 Nov 4 18:58 b9e9dce5083f92b06831e9c35674a15e.bin.gz
-rw-r--r-- 1 root root 573855 Nov 4 18:51 d5bfc1b3b61ebbc20100f8ae23afa548.bin.gz
-rw-r--r-- 1 root root 160 Nov 4 18:51 f585e47667dff1fd226ea1737e67c811.bin.gz
-rw-r--r-- 1 root root 2176 Nov 4 18:58 metadata.json
-rw-r--r-- 1 root root 4408 Nov 4 18:51 post_data.backup
-rw-r--r-- 1 root root 8739 Nov 4 18:51 pre_data.backup
11) Удалите дамп, чтобы очистить место на диске. Для этого выберите в контекстном меню Удалить. В появившемся окне подтвердите удаление дампа. Директория дампа будет удалена:
ls -al /opt/tantor/eco/pg_anon/dump1
ls: cannot access '/opt/tantor/eco/pg_anon/dump1': No such file or directory
Созданный дамп можно загрузить во вкладке РЕСТОРЫ в предварительно созданную базу данных.
Практика 12a
Эта практика опциональна. В ней выполняется деинсталляция и инсталляция Платформы.
Если дистрибутив Платформы не доступен внутри виртуальной машины (не был скачан заранее или его нельзя скачать за приемлемое время) практику не нужно выполнять, можно только прочесть текст практики.
1) Дистрибутивы Платформы есть на сайте public.tantorlabs.ru
Ссылка на дистрибутив есть в документации на странице про установку Платформы https://docs.tantorlabs.ru/tp/6.1/admin/wizard.html
Скачайте в виртуальную машину дистрибутив Платформы или подключите директорию в виртуальную машину.
2) Разархивируйте дистрибутив:
astra@tantor:~$ su -
Password: root
root@tantor:~# cd /opt/tantor/eco6
root@tantor:/opt/tantor/eco6# time tar xzf /media/sf_Tantor/tantor-eco-6.1.1.tar.gz
real 2m9.171s
user 1m36.333s
sys 0m28.737s
Через ~2 минуты архив раскроется.
3) Отредактируйте файл /opt/tantor/eco6/docker-compose.yml в любом текстовом редакторе, который вы умеете использовать. Например:
root@tantor:/opt/tantor/eco6# mcedit /opt/tantor/eco6/docker-compose.yml
Добавьте на уровне "image" (пробелы важны) строку с extra_hosts: и с отступом в один или несколько пробелов вторую строку, начинающуюся на дефис:
extra_hosts:
- "education.tantorlabs.ru:10.0.2.15"
Поскольку в виртуальной машине нет DNS-сервера, имя education.tantorlabs.ru разрешается в IP-адрес с помощью файла /etc/hosts. Контейнеры не используют файл /etc/hosts хоста, в котором работают. Для добавления в файл /etc/hosts контейнеров нужно добавить строки в файл docker-compose.yml. В примере добавляется запись в контейнер backend.
4) Проверьте свободное место на диске:
root@tantor:/opt/tantor/eco6# df -H | grep /dev/sda1
/dev/sda1 41G 32G 7.1G 82% /
Свободного места должно быть не меньше 7Гб.
Если места меньше, то перейдите сразу на Практику 12b, а следующие пункты этй части практики не выполняйте, только посмотрите.
5) Запустите инсталлятор с ключом, отключающим создание копии директории Платформы /opt/tantor/eco (создаётся в директории /opt/tantor):
root@tantor:/opt/tantor/eco6# ./installer start --help | grep disable
--disable-backup-patform-directory Disable backup platform directory on upgrade mode
root@tantor:/opt/tantor/eco6#
time ./installer start --disable-backup-patform-directory
6) Проверьте свободное место на диске:
root@tantor:/opt/tantor/eco6# df -H | grep /dev/sda1
/dev/sda1 41G 39G 277M 100% /
7) Проверьте, какие контейнеры не запущены:
root@tantor:/opt/tantor/eco6# docker ps -a --filter "status=exited"
IMAGE COMMAND CREATED STATUS NAMES
tns_migrations:6.1.1 "./flyway.sh" 5 minutes ago Exited (0) 4 minutes ago tns_migrations
maindb:6.1.1 "./flyway.sh" 5 minutes ago Exited (0) 4 minutes ago maindb_migrations
operdb:6.1.1 "./flyway.sh" 5 minutes ago Exited (0) 4 minutes ago operdb_migrations
root@tantor:/opt/tantor/eco6# docker ps -a --filter "status=created"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@tantor:/opt/tantor/eco6# docker ps -a --filter "status=dead"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
В списке Exited должны быть только контейнеры "_migrations". Если есть другие контейнеры, то запустите их командой docker start имя_контейнера.
8) Удалите неиспользуемые образы контейнеров командой:
root@tantor:/opt/tantor/eco6# docker image prune -a -f
Deleted Images:
...
Total reclaimed space: 5.236GB
Список образов и их размеры:
9) Платформа была обновлена. Можно запустить браузер Firefox и проверить, что Платформа работает.
Практика 12b
1) Удалите Платформу запустив скрипт:
root@tantor:/opt/tantor/eco6# /opt/tantor/uninstall-eco.sh
2) Проверьте свободное место на диске:
root@tantor:/opt/tantor/eco6# df -H | grep /dev/sda1
/dev/sda1 41G 23G 16G 60% /
Свободного места должно быть больше 10Гб.
3) Запустите инсталлятор и введите ответы, как на картинке:
Пароль пользователя введите такой: Student123!
4) Нажмите на клавиатуре клавишу Enter и инсталляция начнётся.
В течение ~5 минут Платформа будет установлена, в течение ещё ~11 минут запущена.
5) Запустите браузер Firefox. Так как сертификаты SSL были пересозданы, браузер выдаст предупреждение:
Кликните на кнопку Advanced..., затем кнопку Accept the Risk and continue...
6) Введите имя и пароль: student@dba1.ru/Student123! и нажмите кнопку Авторизоваться
В появившемся окне браузера Save login for tantorlabs.ru кликните на кнопку Save. В окне с лицензионным соглашением можно выбрать галочку I Accept License Agreement и нажать кнопку OK.
7) Откроется страница со списком тенантов. В Платформе будет тенант с названием Tenant 1.
8) Кликните на Tenant 1. Откроется страница с пространствами. Пространств нет. Кликните на кнопку Add namespace и выберите в появившемся меню тип пространства: Platform type.
9) В появившемся окне введите название создаваемого пространства: Edu и нажмите кнопку Add.
Пространство появится в списке:
Практика 12c
Практика опциональна. В этой практике устанавливается Агент Платформы и добавляется экземпляр Tantor Postgres.
Выполните эту практику, если выполнили предыдущую практику по установке Платформы. Если не выполняли, то посмотрите текст практики.
1) Кликните на плашку пространства Edu. Появится страница со списком экземпляров. Список будет пуст. Кликните на кнопку Add Instance. В появившемся окне выберите Tantor и кликните на кнопку Next
2) Введите значения, как показано на картинке и нажмите кнопку Next:
3) На 3 шаге добавления Агента выберите операционную систему Astra Linux, версию 1.6+, поставьте галочку I do not have access to th Internet, use local/offline installation:
4) Последовательно кликайте на кнопки скопировать (два квадрата) и вставляйте скопированные команды в командный терминал пользователя root.
5) Нажмите на кнопку Next, появится окно 4 шага. Скопируйте текст и вставьте скопированную команду в терминал пользователя root.
6) Введите ответы как на картинке. Пароль пользователя pma_user введите как pma_user. При создании пользователя будет ошибка, выберите что создавать пользователя не нужно, а пароль менять нужно.
7) В окне браузера на 4 шаге кликните на кнопку Add. Появится шаг 5 с подтверждением, что экземпляр был добавлен. Кликните на кнопку Finish.
8) Появится станица с добавленным экземпляром:
9) Добавьте в Платформу экземпляр реплики. Реплика работает в виртуальной машине, там же где и мастер. Устанавливать агент Платформы не нужно. Нужно добавить реплику под обслуживание существующего агента. Этом можно сделать в командной строке. Выполните в консоли root команду:
pmaagent instances add --name "replica" --environment 'SERVER' --type "TantorDB" --db-host "10.0.2.15" --db-port '5433' --db-user "pma_user" --db-pass "pma_user" --db-name postgres --confirm
10) Обновите страницу в браузере. В списке экземпляров появится реплика.
Аналогичным образом можно добавить экземпляры кластера Patroni - через веб-интерфейс или через командную строку.
Практика 12d
Практика опциональна. В этой практике в командной строке агенты регистрируются в Платформе и добавляются экземпляры Patroni. Командная строка удобна для регистрации нескольких агентов и экземпляров.
1) Кликните в окне браузера слева вверху на круглый оранжевый значок с логотипом Тантор. Откроется страница со списком тенантов. Кликните на строку Tenant 1. Откроется страница со списком пространств. Вы находитесь в тенантеTenant 1 и на левой вертикальной полосе меню появится значок Tenant configuration (на картинке ниже шестой по счёту, подсвечен красноватым фоном). Кликните на это значок и появится меню Tenant configuration.
В конце меню будет строка Tokens, кликните на эту строку. На открывшейся странице кликните на красную кнопку Add new token. В появившемся окне выберите Scope = Install, Token label = agent, Expiration = завтрашнюю дату. Кнопка Add new token станет активной (красного цвета), нажмите на эту кнопку.
4) Появится токен. Нажмите на значок скопировать (два квадратика). Появится всплывающее сообщение зелёного цвета.
Если нажать на красную кнопку Copy to clipboard & close., то окно с токеном скопируется в буфер обмена (clipboard) и закроется, токен появится в списке. Восстановить токен нельзя, только создать новый. Также токен можно досрочно удалить.
5) Откройте терминал с командной строкой linux. Переключитесь в пользователя root:
astra@tantor:~$ su -
Password: root
root@tantor:~#
Выполните команды, вставив скопированный токен:
docker exec -it -u root docker-patroni1-1 /var/lib/pma/agent/pmaagent register --access-token 'токен' --host '172.21.1.1' --workspace-name 'Edu' --endpoint 'education.tantorlabs.ru:4222'
docker exec -it -u root docker-patroni2-1 /var/lib/pma/agent/pmaagent register --access-token 'токен' --host '172.21.1.2' --workspace-name 'Edu' --endpoint 'education.tantorlabs.ru:4222'
docker exec -it -u root docker-patroni3-1 /var/lib/pma/agent/pmaagent register --access-token 'токен' --host '172.21.1.3' --workspace-name 'Edu' --endpoint 'education.tantorlabs.ru:4222'
Токен можно использовать многократно, пока он действует.
До рестарта агентов их статус будет отображаться на странице агентов как недоступный:
6) Выполните команды:
docker-compose -f /root/patroni-docker-main/examples/docker/docker-compose.yaml stop
cp /usr/sbin/pmaagent /root/patroni-docker-main/examples/docker/agent-data0
cp /usr/sbin/pmaagent /root/patroni-docker-main/examples/docker/agent-data1
cp /usr/sbin/pmaagent /root/patroni-docker-main/examples/docker/agent-data2
docker-compose -f /root/patroni-docker-main/examples/docker/docker-compose.yaml start
В контейнерах будет использоваться агент новой версии, который был установлен на хосте и агент перезапустится. Агенты станут доступны, на что указывает зелёная полоска:
Так как агенты не обслуживают ни один экземпляр, они ничего не передают Платформе и версии агентов отображаются как неизвестные 0.0.0
7) Добавьте экземпляры PostgreSQL, которые находятся под управлением Patroni под обслуживание агентов. Для этого выполните команды:
docker exec -it -u root docker-patroni1-1 /var/lib/pma/agent/pmaagent instances add --name 'patroni1' --environment 'SERVER' --type 'PostgreSQL' --db-host '172.21.1.1' --db-port '5432' --db-user 'pma_user' --db-pass 'pma_user' --db-admin-user 'postgres' --db-admin-pass 'postgres' --patroni-cluster-hosts '172.21.1.1' --patroni-user 'ifused' --patroni-password 'ifused' --patroni-port '8008' --confirm
docker exec -it -u root docker-patroni2-1 /var/lib/pma/agent/pmaagent instances add --name 'patroni2' --environment 'SERVER' --type 'PostgreSQL' --db-host '172.21.1.2' --db-port '5432' --db-user 'pma_user' --db-pass 'pma_user' --db-admin-user 'postgres' --db-admin-pass 'postgres' --patroni-cluster-hosts '172.21.1.2' --patroni-user 'ifused' --patroni-password 'ifused' --patroni-port '8008' --confirm
docker exec -it -u root docker-patroni3-1 /var/lib/pma/agent/pmaagent instances add --name 'patroni3' --environment 'SERVER' --type 'PostgreSQL' --db-host '172.21.1.3' --db-port '5432' --db-user 'pma_user' --db-pass 'pma_user' --db-admin-user 'postgres' --db-admin-pass 'postgres' --patroni-cluster-hosts '172.21.1.3' --patroni-user 'ifused' --patroni-password 'ifused' --patroni-port '8008' --confirm
Пример:
После добавления экземпляров, статусы агентов будут корректны:
Кластер Patroni добавлен успешно:
Три экземпляра PstgreSQL добавлены успешно:
Практика 12e
Практика опциональна. В этой практике настраивается Расширенная аналитика.
Из контейнера pg-monitor будет выполняться соединение по протоколу ssh на хост, где работает экземпляр PostgreSQL под пользователем операционной системы, под которым запущен экземпляр - postgres. При подсоединении пароль не должен запрашиваться, поэтому должен использоваться ssh ключ.
1) Создайте в терминале root ключ в директории /opt/tantor/eco/ssh. Passphrase должна быть пустой, при запросе нажмите клавишу Enter на клавиатуре:
root@tantor:~# ssh-keygen -t rsa -f /opt/tantor/eco/ssh/id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /opt/tantor/eco/ssh/id_rsa
Your public key has been saved in /opt/tantor/eco/ssh/id_rsa.pub
В директории будет создано два файла:
ls -l /opt/tantor/eco/ssh
total 8
-rw------- 1 root root 2602 Nov 6 09:12 id_rsa
-rw-r--r-- 1 root root 565 Nov 6 09:12 id_rsa.pub
Публичный ключ алгоритма несимметричного шифрования RSA находится в файле:
cat /opt/tantor/eco/ssh/id_rsa.pub
ssh-rsa AAAAB3Nza...BxDc= root@tantor
2) Добавьте этот ключ в файл /var/lib/postgresql/.ssh/authorized_keys - поддиректории .ssh домашней директории пользователя postgres. При добавлении запросится пароль пользователя postgres, введите postgres:
root@tantor:~# ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa postgres@education.tantorlabs.ru
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/opt/tantor/eco/ssh/id_rsa.pub"
The authenticity of host 'education.tantorlabs.ru (10.0.2.15)' can't be established.
ECDSA key fingerprint is SHA256:8Zb8qyMriGVRdSa97526iCGm1xLN05XdT9k1uL8q2qk.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
postgres@education.tantorlabs.ru's password: postgres
Number of key(s) added: 1
В последнюю строку файла был добавлен публичный ключ:
cat /var/lib/postgresql/.ssh/authorized_keys
ssh-rsa AAAAB3Nza...BxDc= root@tantor
Разрешения на файл выставлены как 0500 и владельцем является postgres:
ls -l /var/lib/postgresql/.ssh
total 4
-rw------- 1 postgres postgres 565 Nov 6 09:21 authorized_keys
3) Созданный, добавленный, замененный ключ в директории /opt/tantor/eco/ssh
считывается из директории при запуске контейнера. Перезапустите контейнер pg_monitor_collector командой:
docker restart pg_monitor_collector
4) Откройте страницу Расширенной аналитики. Для этого в браузере откройте Tenant 1 -> Edu -> 10.0.2.15:5432 -> Advanced Analytics
Появится желтая полоса с предупреждением о том, что Advanced Analytics не настроена, это нормально, так как рабочие процессы ещё не подсоединялись к хосту экземпляра. Желтая полоса появляется, если данные отсутствуют - не были ни разу собраны за текущие сутки.
Для проверки того, что рабочие процессы подсоединяются, можно открыть страницу в браузере: https://education.tantorlabs.ru/pg-monitor/hosts
На картинке два рабочих процесса смогли подсоединиться к хосту.
Если список пуст, то это значит, что рабочий процесс ещё не запустился (не зашли на страницу Advanced Analytics), либо у рабочего процесса нет ключей для этого хоста (нет файлов ключей в /opt/tantor/eco/ssh). Рабочий процесс считывает ключи при запуске.
Если через несколько минут зайти на страницу или обновить страницу Advanced Analytics, то на странице уже будут отображаться собранные данные.
Если рабочий процесс не может подсоединиться к хосту (например, ключи не подходят), он подсвечивается желтым цветом на странице:
Сероватый цвет подсвечивает нечётные строки.
На картинке присутствует строка для Hostname=10.0.2.15:5433 - после захода на страницу Advanced Analytics реплики запустился рабочий процесс, который успешно подсоединился к хосту реплики. На картинке два процесса не могут подключиться к хосту и подсвечиваются жёлтым цветом.
Полезные ссылки
Сайт Тантор Лабс: https://tantorlabs.ru
Видеофайлы на RuTube: https://rutube.ru/channel/31876555
Дистрибутивы Платформы Tantor: https://public.tantorlabs.ru
Виртуальные машины для курсов Tantor: https://disk.astralinux.ru/s/g3jnRa5JZ4FanbX