Руководство по системному администрированию#

Термины и определения#

Термин/Аббревиатура

Определение

Деплоймент

Файл, содержащий набор инструкций для запуска приложения в Kubernetes

Pod

Абстрактный объект, набор контейнеров в архитектуре Kubernetes

Liveness-проба

Программный зонд для определения живучести контейнера

Лимит

Максимальный объем ресурсов, который выдается на работу приложения

Реквест

Объем ресурсов, который необходим для запуска приложения

БД

База данных

URL

Uniform Resource Locator, унифицированный указатель ресурса

Пул соединений

Набор заранее открытых соединений

gRPC

Высокопроизводительный фреймворк, разработанный компанией Google для вызова удаленных процедур (RPC)

HTTP

HyperText Transfer Protocol, протокол передачи гипертекста

Назначение документа#

Настоящий документ содержит руководство по системному администрированию Компонента «JDBC Gateway» программного продукта Platform V Synapse Enterprise Integration (далее так же «Шлюз БД»), который предоставляет облачным приложениям возможность вызова процедур, хранящихся во внешней БД.

Сценарии администрирования#

Изменение количества Pod#

С использованием веб-интерфейса#

Шаг

Действия

Вход в учетную запись через веб-консоль Kubernetes

1. Перейдите по ссылке (URL) веб-консоли нужного кластера Kubernetes.
2. В окне ввода учетных данных введите логин и пароль

Переход в нужный проект

1. Выберите пункт меню Home → Projects..
2. Выберите из списка нужный проект

Увеличение/уменьшение количества Pod

1. В меню выберите пункт Workload → Deployments.
2. На странице найдите нужный Деплоймент (при необходимости воспользуйтесь поиском по имени).
3. Перейдите по ссылке в наименовании на вкладку Detail.
4. Нажатием стрелки «вверх» (Increase the pod count) или «вниз» (Decrease the pod count), соответственно, увеличьте или уменьшите количество Pod шлюза до требуемого

Выход из веб-консоли

1. Нажатием на имени пользователя раскройте меню пользователя.
2. Выберите пункт Log out.
3. Закройте окно браузера

С использованием консоли#

Шаг

Действия

Вход в учетную запись в консоли

1. В окне командной строки в приглашении введите команду: kubectl login --server=<url кластера>.
2. В ответ на запрос введите имя пользователя и пароль

Переход в нужный проект

Введите команду: kubectl project <имя проекта>

Увеличение/уменьшение количества Pod

В консоли выполните команду kubectl scale --replicas=<N> deployment/<имя деплоймента>, гдеN — требуемое количество запущенных Pod шлюза

Завершение сеанса работы с клиентом

В консоли введите команду kubectl logout

Проверка работоспособности#

С использованием веб-интерфейса#

Шаг

Действия

Вход в учетную запись через веб-консоль

1. Перейдите по ссылке (URL) веб-консоли нужного кластера Kubernetes.
2. В окне ввода учетных данных введите логин и пароль

Переход в нужный проект

1. Выберите пункт меню Home → Projects..
2. Выберите из списка нужный проект

Проверка работоспособности

1. В меню выберите пункт Workload → Pods.
2. На странице найдите нужный Pod шлюза.
3. Перейдите по ссылке в имени на вкладку Detail.
4. Перейдите на вкладку Terminal.
5. В терминале Pod выполните команду: curl localhost:<portnum>/actuator/health, где <portnum> — номер порта, указанный в параметре server/port конфигурации шлюза. В ответном сообщении должна быть строка: "ping":{"status":"UP"}

Выход из веб-консоли

1. Нажатием на имени пользователя раскройте меню пользователя.
2. Выберите пункт Log out.
3. Закройте окно браузера

С использованием консоли#

Шаг

Действия

Вход в учетную запись в консоли

1. В окне командной строки в приглашении введите команду: kubectl login --server=<url кластера>.
2. В ответ на запрос введите имя пользователя и пароль

Переход в нужный проект

Введите команду: kubectl project <имя проекта>

Проверка работоспособности

1. В консоли задайте команду: kubectl port-forward pod/<имя Pod> <portnum>:<portnum>, где <portnum> — номер порта, указанный в параметре server/port конфигурации шлюза.
2. Запустите еще одно окно консоли и в нем выполните команду: curl localhost:<portnum>/actuator/health. В ответном сообщении должна быть строка: "ping":{"status":"UP"}.
3. Завершите перенаправление портов нажатием Ctrl+C

Завершение сеанса работы с клиентом

В консоли введите команду kubectl logout

Настройка выделения ресурсов#

С использованием веб-интерфейса#

Шаг

Действия

Вход в учетную запись через веб-консоль

1. Перейдите по ссылке (URL) веб-консоли кластера Kubernetes.
2. В окне ввода учетных данных введите логин и пароль

Переход в нужный проект

1. Выберите пункт меню Home → Projects..
2. Выберите из списка нужный проект

Переход в нужный Деплоймент

1. В меню выберите пункт Workload → Deployments.
2. На странице найдите нужный Деплоймент (при необходимости воспользуйтесь поиском по имени).
3. Перейдите по ссылке в наименовании на вкладку Detail.
4. Перейдите на вкладку YAML

Корректировка параметров

1. В окне редактирования найдите параметры: spec.template.spec.containers[0].resources.limits.cpu spec.template.spec.containers[0].resources.limits.memory spec.template.spec.containers[0].resources.requests.cpu spec.template.spec.containers[0].resources.requests.memory.
2. Установите нужные значения

Сохранение

Нажмите кнопку Save

Проверка конфигурации

Нажмите на кнопку Reload и проверьте, что изменения применены

Выход из веб-консоли

1. Нажатием на имени пользователя раскройте меню пользователя.
2. Выберите пункт Log out.
3. Закройте окно браузера

С использованием консоли#

Шаг

Действия

Вход в учетную запись в консоли

1. В окне командной строки в приглашении введите команду: kubectl login --server=<url кластера>.
2. В ответ на запрос введите имя пользователя и пароль

Переход в нужный проект

Введите команду: kubectl project <имя проекта>

Сохранение Деплоймента

В консоли выполните команду: kubectl get -o yaml deployment/<имя деплоймента> > <путь к файлу>.yaml

Корректировка параметров

1. Откройте полученный на предыдущем шаге файл в текстовом редакторе (например, Notepad++).
2. Найдите в нем параметры: spec.template.spec.containers[0].resources.limits.cpu spec.template.spec.containers[0].resources.limits.memory spec.template.spec.containers[0].resources.requests.cpu spec.template.spec.containers[0].resources.requests.memory.
3. Укажите нужные значения

Загрузка Деплоймента

В консоли выполните команду kubectl apply -f <путь к файлу>.yaml

Завершение сеанса работы с клиентом

В консоли введите команду kubectl logout

Настройка подключений к серверу БД#

Внимание! Новая конфигурация вступит в действие только после перезапуска Pod.

С использованием веб-интерфейса#

Шаг

Действия

Вход в учетную запись через веб-консоль Kubernetes

1. Перейдите по ссылке (URL) веб-консоли кластера Kubernetes.
2. В окне ввода учетных данных введите логин и пароль

Переход в нужный проект

1. Выберите пункт меню Home → Projects..
2. Выберите из списка нужный проект

Переход в нужную конфигурацию

1. В меню выберите пункт Workload → Config Maps.
2. На странице найдите нужный артефакт ConfigMap (при необходимости воспользуйтесь поиском по имени).
3. Перейдите по ссылке в наименовании на вкладку Detail.
4. Перейдите на вкладку YAML

Редактирование конфигурации

1. В окне редактирования найдите параметр datasource.jdbc-url.
2. Внесите необходимые изменения для нужных точек подключения

Сохранение

Нажмите кнопку Save

Выход из веб-консоли Kubernetes

1. Нажатием на имени пользователя раскройте меню пользователя.
2. Выберите пункт Log out.
3. Закройте окно браузера

С использованием консоли#

Шаг

Действия

Вход в учетную запись в консоли

1. В окне командной строки в приглашении введите команду: kubectl login --server=<url кластера>.
2. В ответ на запрос введите имя пользователя и пароль

Переход в нужный проект

Введите команду: kubectl project <имя проекта>

Сохранение конфигурации

В консоли выполните команду kubectl get -o yaml configmaps/<имя config map> > <путь к файлу>.yaml

Корректировка параметров

1. Откройте полученный на предыдущем шаге файл в текстовом редакторе (например, Notepad++).
2. Найдите в нем параметр datasource.jdbc-url.
3. Внесите необходимые изменения для нужных точек подключения

Загрузка ConfigMap

В консоли выполните команду kubectl apply -f <путь к файлу>.yaml

Завершение сеанса работы с клиентом

В консоли выполните команду kubectl logout

Включение шифрования и расшифрования данных#

Внимание! Новая конфигурация вступит в действие только после перезапуска Pod.

С использованием веб-интерфейса#

Шаг

Действия

Вход в учетную запись через веб-консоль Kubernetes

1. Перейдите по ссылке (URL) веб-консоли кластера Kubernetes.
2. В окне ввода учетных данных введите логин и пароль

Переход в нужный проект

1. Выберите пункт меню Home → Projects..
2. Выберите из списка нужный проект

Переход в конфигурацию шлюза БД

1. В меню выберите пункт Workload → Config Maps.
2. На странице найдите нужный артефакт ConfigMap (при необходимости воспользуйтесь поиском по имени).
3. Перейдите по ссылке в наименовании на вкладку Detail.
4. Перейдите на вкладку YAML

Редактирование конфигурации шлюза БД

1. В окне редактирования задайте параметр crypto.enabled равным true.
2. Внесите дополнитеьные изменения для тонкой настройки (Руководство прикладного разработчика компонента Шлюз JDBC (JDBC), раздел "Конфигурирование Шлюза БД")

Сохранение конфигурации шлюза БД

Нажмите кнопку Save

Переход в конфигурацию сущностей БД

1. В меню выберите пункт Workload → Config Maps.
2. На странице найдите нужный артефакт ConfigMap (при необходимости воспользуйтесь поиском по имени).
3. Перейдите по ссылке в наименовании на вкладку Detail.
4. Перейдите на вкладку YAML

Редактирование конфигурации, описывающий сущности БД

В окне редактирования для необходимых полей задайте параметр encrypt равным true

Сохранение конфигурации, описывающий сущности БД

Нажмите кнопку Save

Выход из веб-консоли Kubernetes

1. Нажатием на имени пользователя раскройте меню пользователя.
2. Выберите пункт Log out.
3. Закройте окно браузера

С использованием консоли#

Шаг

Действия

Вход в учетную запись в консоли

1. В окне командной строки в приглашении введите команду: kubectl login --server=<url кластера>.
2. В ответ на запрос введите имя пользователя и пароль

Переход в нужный проект

Введите команду: kubectl project <имя проекта>

Сохранение конфигурации шлюза

В консоли выполните команду kubectl get -o yaml configmaps/<имя config map> > <путь к файлу>.yaml

Корректировка параметров конфигурации шлюза

1. Откройте полученный на предыдущем шаге файл в текстовом редакторе (например, Notepad++).
2. Задайте в нем параметр crypto.enabled равным true.
3. Внесите дополнительные изменения для тонкой настройки (Руководство прикладного разработчика компонента Шлюз JDBC (JDBC), раздел "Конфигурирование Шлюза БД")

Загрузка ConfigMap конфигурации шлюза

В консоли выполните команду kubectl apply -f <путь к файлу>.yaml

Сохранение конфигурации, описывающей сущности БД

В консоли выполните команду kubectl get -o yaml configmaps/<имя config map> > <путь к файлу>.yaml

Корректировка параметров конфигурации, описывающей сущности БД

1. Откройте полученный на предыдущем шаге файл в текстовом редакторе (например, Notepad++).
2. Для необходимых полей задайте в нем параметр encrypt равным true

Загрузка ConfigMap конфигурации, описывающей сущности БД

В консоли выполните команду kubectl apply -f <путь к файлу>.yaml

Завершение сеанса работы с клиентом

В консоли выполните команду kubectl logout

Выключение шифрования и расшифрования данных#

Внимание! Новая конфигурация вступит в действие только после перезапуска Pod.

С использованием веб-интерфейса#

Шаг

Действия

Вход в учетную запись через веб-консоль Kubernetes

1. Перейдите по ссылке (URL) веб-консоли кластера Kubernetes.
2. В окне ввода учетных данных введите логин и пароль

Переход в нужный проект

1. Выберите пункт меню Home → Projects..
2. Выберите из списка нужный проект

Переход в конфигурацию шлюза БД

1. В меню выберите пункт Workload → Config Maps.
2. На странице найдите нужный артефакт ConfigMap (при необходимости воспользуйтесь поиском по имени).
3. Перейдите по ссылке в наименовании на вкладку Detail.
4. Перейдите на вкладку YAML

Редактирование конфигурации шлюза БД

1. В окне редактирования задайте параметр crypto.enabled равным false

Сохранение конфигурации шлюза БД

Нажмите кнопку Save

Переход в нужную конфигурацию, описывающую сущности БД

1. В меню выберите пункт Workload → Config Maps.
2. На странице найдите нужный артефакт ConfigMap (при необходимости воспользуйтесь поиском по имени).
3. Перейдите по ссылке в наименовании на вкладку Detail.
4. Перейдите на вкладку YAML

Редактирование конфигурации

1. В окне редактирования убедитесь, что параметр для полей encrypt равен false либо не задан вовсе

Сохранение

Нажмите кнопку Save

Выход из веб-консоли Kubernetes

1. Нажатием на имени пользователя раскройте меню пользователя.
2. Выберите пункт Log out.
3. Закройте окно браузера

С использованием консоли#

Шаг

Действия

Вход в учетную запись в консоли

1. В окне командной строки в приглашении введите команду: kubectl login --server=<url кластера>.
2. В ответ на запрос введите имя пользователя и пароль

Переход в нужный проект

Введите команду: kubectl project <имя проекта>

Сохранение конфигурации шлюза БД

В консоли выполните команду kubectl get -o yaml configmaps/<имя config map> > <путь к файлу>.yaml

Корректировка параметров конфигурации шлюза БД

1. Откройте полученный на предыдущем шаге файл в текстовом редакторе (например, Notepad++).
2. Задайте в нем параметр crypto.enabled равным false

Загрузка ConfigMap с конфигурацией шлюза БД

В консоли выполните команду kubectl apply -f <путь к файлу>.yaml

Сохранение конфигурации, описывающей сущности БД

В консоли выполните команду kubectl get -o yaml configmaps/<имя config map> > <путь к файлу>.yaml

Корректировка параметров конфигурации, описывающей сущности БД

1. Откройте полученный на предыдущем шаге файл в текстовом редакторе (например, Notepad++).
2. убедитесь, что параметр для полей encrypt равен false либо не задан вовсе

Загрузка ConfigMap с конфигурацией, описывающей сущности БД

В консоли выполните команду kubectl apply -f <путь к файлу>.yaml

Завершение сеанса работы с клиентом

В консоли выполните команду kubectl logout

Просмотр и выгрузка системного журнала#

С использованием веб-интерфейса#

Шаг

Действия

Вход в веб-консоль

1. Перейдите по ссылке (URL) веб-консоли кластера Kubernetes.
2. В окне ввода учетных данных введите логин и пароль

Переход в нужный проект

1. Выберите пункт меню HomeProjects.
2. Выберите из списка нужный проект

Выгрузка журнала системных логов

1. В меню выберите пункт WorkloadDeployments.
2. На странице найдите нужный Деплоймент (при необходимости воспользуйтесь поиском по имени).
3. Перейдите по ссылке в наименовании на вкладку Detail.
4. Перейдите на вкладку Pods.
5. Найдите в списке нужный Pod.
6. Перейдите по ссылке в его наименовании на вкладку Detail.
7. Перейдите на вкладку Logs.
8. Нажатием по ссылке Download и скачайте журнал на свой компьютер.

Просмотр журнала прикладных логов

1. В меню выберите пункт WorkloadDeployments.
2. На странице найдите нужный Деплоймент (при необходимости воспользуйтесь поиском по имени).
3. Перейдите по ссылке в наименовании на вкладку Detail.
4. Перейдите на вкладку Pods.
5. Найдите в списке нужный Pod.
6. Перейдите по ссылке в его наименовании на вкладку Detail.
7. Перейдите на вкладку Terminal.
8. В терминале Pod выполните команду: cat /opt/synapse/logs/messages1.log

Выход из веб-консоли

1. Нажатием на имени пользователя раскройте меню пользователя.
2. Выберите пункт Log out.
3. Закройте окно браузера

С использованием консоли#

Шаг

Действия

Логин в консоль

1. В окне командной строки в приглашении введите команду: kubectl login --server=<URL кластера>.
2. В ответ на запрос введите имя пользователя и пароль

Переход в нужный проект

Введите команду: kubectl project <имя проекта>

Выгрузка журнала

В консоли выполните команду: kubectl logs -c <имя контейнера> <имя Pod> > <имя файла>.txt, где <имя контейнера> может быть названием контейнера приложения шлюза или контейнера Сайдкара

Завершение сеанса работы

В консоли выполните команду: kubectl logout

Просмотр метрик мониторинга#

Для просмотра базового набора событий мониторинга, регистрируемых на уровне пода, через веб-интерфейс Kubernetes, необходимо:

Шаг

Действия

Вход в веб-консоль

1. Перейдите по ссылке (URL) веб-консоли кластера Kubernetes.
2. В окне ввода учетных данных введите логин и пароль

Переход в проект

1. Выберите пункт меню HomeProjects.
2. Выберите из списка нужный проект

Переход в Pod

1. В меню выберите пункт WorkloadPods.
2. На странице найти нужный Pod (при необходимости воспользоваться поиском по имени)
3. Пройти по ссылке в наименовании на вкладку Events.

Посмотр событий

В появившемся списке можно увидеть базовый набор событий мониторинга

Выход из веб-консоли

1. Нажатием на имени пользователя раскройте меню пользователя. 2. Выберите пункт Log out. 3. Закройте окно браузера

Для просмотра метрик мониторинга в формате Prometheus, необходимо:

Шаг

Действия

Логин в консоль

1. В окне командной строки в приглашении введите команду: kubectl login --server=<URL кластера>.
2. В ответ на запрос введите имя пользователя и пароль

Переход в нужный проект

Введите команду: kubectl project <имя проекта>

Получите метрики мониторинга

В консоли выполните команду: curl localhost:<portnum>/actuator/prometheus. В консоль будут выведены мгновенные значения метрик мониторинга

Завершение сеанса работы

В консоли выполните команду: kubectl logout

Контроль срока действия сертификатов#

С использованием веб-интерфейса#

Шаг

Действия

Вход в учетную запись через веб-консоль

1. Перейдите по ссылке (URL) веб-консоли нужного кластера Kubernetes.
2. В окне ввода учетных данных введите логин и пароль

Переход в нужный проект

1. Выберите пункт меню Home → Projects..
2. Выберите из списка нужный проект

Проверка срока действия сертификата

1. В меню выберите пункт Workload → Pods.
2. На странице найдите нужный Pod шлюза.
3. Перейдите по ссылке в имени на вкладку Detail.
4. Перейдите на вкладку Terminal.
5. В терминале Pod выполните команду: openssl x509 -enddate -noout -in <certpath>, где <certpath> — путь, где расположен сертификат в конфигурации шлюза.

Выход из веб-консоли

1. Нажатием на имени пользователя раскройте меню пользователя.
2. Выберите пункт Log out.
3. Закройте окно браузера

С использованием консоли#

Шаг

Действия

Вход в учетную запись в консоли

1. В окне командной строки в приглашении введите команду: kubectl login --server=<url кластера>.
2. В ответ на запрос введите имя пользователя и пароль

Переход в нужный проект

Введите команду: kubectl project <имя проекта>

Проверка работоспособности

1. В консоли задайте команду: kubectl port-forward pod/<имя Pod> <portnum>:<portnum>, где <portnum> — номер порта, указанный в параметре server/port конфигурации шлюза.
2. Запустите еще одно окно консоли и в нем выполните команду: openssl x509 -enddate -noout -in <certpath>.
3. Завершите перенаправление портов нажатием Ctrl+C

Завершение сеанса работы с клиентом

В консоли введите команду kubectl logout

Если срок действия сертификатов меньше минимального срока установленного внутренними нормативными документами, необходимо выполнить процедуру обновления сертификатов. Подробнее см. в разделе "Порядок создания хранилищ ключей и сертификатов для Шлюза БД" в Руководстве по безопасности. Также при интеграции Шлюза БД с компонентом SecMan существует возможность включить механизм обновления сертификатов (Ротация сертификатов в Руководстве по установке).

События системного журнала#

Системный лог выводится в консоль контейнера приложения.

Уровень логирования задается в дистрибутиве и может быть изменен установкой параметра logging.level конфигурации JDCB Gateway. Использование уровней логирования trace и debug не рекоммендуется в промышленных инсталляциях. Подробнее указано в разделе «Полное описание настроек» документа «Руководство прикладного разработчика».

В системном логе фиксируются следующие события приложения:

Старт приложения

2021-06-07 16:25:16.057 [INFO ] [main] [com.sbt.synapse.Application] [T:] - Starting Application on srd-depo-ucs-db-78f79b68cc-fpxk7 with PID 1 (/app/services-db-module-1.3.3.jar started by 1001870000 in /)
2021-06-07 16:25:16.063 [DEBUG] [main] [com.sbt.synapse.Application] [T:] - Running with Spring Boot v2.2.8.RELEASE, Spring v5.2.7.RELEASE
2021-06-07 16:25:16.065 [INFO ] [main] [com.sbt.synapse.Application] [T:] - No active profile set, falling back to default profiles: default
2021-06-07 16:26:13.562 [INFO ] [main] [o.h.validator.internal.util.Version] [T:] - HV000001: Hibernate Validator 6.0.20.Final
2021-06-07 16:26:30.759 [INFO ] [main] [com.sbt.synapse.Application] [T:] - Started Application in 82.991 seconds (JVM running for 95.701)

Старт сервера GRPC

2021-06-07 16:25:34.962 [INFO ] [main] [c.s.s.c.s.c.GrpcChannelComponentRegisteringPostProcessor] [T:] - Параметры клиента gRPC GRpcClientProperties(abortOnCallCancel=false, settings={default=GRpcClientProperties.ClientSettings(hostname=empty-service, port=5454, timeout=null, serviceConfig={})})
2021-06-07 16:25:35.057 [INFO ] [main] [c.s.s.c.s.c.GrpcChannelComponentRegisteringPostProcessor] [T:] - Зарегистрирован клиентский канал Grpc. channelKey=default
2021-06-07 16:25:34.965 [INFO ] [main] [c.s.s.c.s.c.GrpcChannelComponentRegisteringPostProcessor] [T:] - Нормализация параметров сервиса gRPC для канала default
2021-06-07 16:25:36.359 [INFO ] [main] [org.reflections.Reflections] [T:] - Reflections took 987 ms to scan 6 urls, producing 14 keys and 61 values
2021-06-07 16:26:05.056 [INFO ] [main] [c.s.s.c.s.util.GRpcServiceUtils] [T:] - Недоступен повтор запросов для канала empty-service:5454
2021-06-07 16:26:05.057 [INFO ] [main] [c.s.s.c.s.util.GRpcServiceUtils] [T:] - Для канала empty-service:5454 установлен serviceConfig {}
2021-06-07 16:26:30.760 [INFO ] [main] [c.s.s.c.s.grpc.GRpcServerRunner] [T:] - Запуск gRPC сервера...
2021-06-07 16:26:30.761 [INFO ] [main] [c.s.s.c.s.grpc.GRpcServerRunner] [T:] - Настройки gRPC сервера: GRpcServerProperties(serverPort=5454, threadPool=ThreadPoolConfiguration(concurrentConsumers=10, maxConcurrentConsumers=20, threadKeepAliveSeconds=60, rejectCapacity=0))
2021-06-07 16:26:31.254 [INFO ] [main] [c.s.s.c.s.grpc.GRpcServerRunner] [T:] - Зарегистрирован обработчик сервиса synapse: Сервис: com.sbt.synapse.database.DbService/dbCallStoredProcedure. Имплементация: com.sbt.synapse.service.ServiceDb@5f9678e1
2021-06-07 16:26:31.274 [INFO ] [main] [c.s.s.c.s.grpc.GRpcServerRunner] [T:] - gRPC сервер запущен на порту 5454.

Старт сервера HTTP

2021-06-07 16:26:24.365 [INFO ] [main] [o.s.b.a.e.web.EndpointLinksResolver] [T:] - Exposing 14 endpoint(s) beneath base path '/actuator'
2021-06-07 16:26:30.670 [INFO ] [main] [o.s.b.w.e.netty.NettyWebServer] [T:] - Netty started on port(s): 8787

Создание пула соединений к БД

2021-06-07 16:25:47.058 [INFO ] [main] [com.zaxxer.hikari.HikariDataSource] [T:] - HikariPool-1 - Starting...
2021-06-07 16:25:55.356 [INFO ] [main] [com.zaxxer.hikari.HikariDataSource] [T:] - HikariPool-1 - Start completed.

Получение секретов для функционала шифрования

2023-06-21 14:30:52.739 [INFO ] [main] [c.s.s.crypto.CryptoModuleFactory] [T:] - Получен токен для доступа в SecMan.
2023-06-21 14:30:52.828 [INFO ] [main] [c.s.s.crypto.CryptoModuleFactory] [T:] - Получен секрет для шифрования данных из SecMan.

Проверка разрешенных DN сертификатов для аутентификации при взаимодействии с БД

2023-06-21 14:30:56.830 [INFO ] [HHHGGGFFFF connection adder] [c.s.s.dnverify.DnHostnameVerifier] [T:] - Configured HostnameVerifier with allowed dn list: [CN=10.25.70.11]
2023-06-21 14:30:56.831 [INFO ] [HHHGGGFFFF connection adder] [c.s.s.dnverify.DnHostnameVerifier] [T:] - Canonical host name for 10.25.70.11 is 10.25.70.11
2023-06-21 14:30:56.831 [INFO ] [HHHGGGFFFF connection adder] [c.s.s.dnverify.DnHostnameVerifier] [T:] - Checking allowed list DN:([CN=10.25.70.11]) and DN server certificate: CN=10.25.70.11.
2023-06-21 14:30:56.831 [INFO ] [HHHGGGFFFF connection adder] [c.s.s.dnverify.DnHostnameVerifier] [T:] - DN server certificate: (CN=10.25.70.11) is in allowed list.

Сообщение, которое информирует о вызове процедуры

2021-06-08 18:41:37.338 [DEBUG] [[grpc-transport]-1] [c.s.s.t.g.ServerTracerHeadersInterceptor] [T:] - Метадата входящего вызова: Metadata(content-type=application/grpc,user-agent=grpc-java-netty/1.30.2,grpc-accept-encoding=gzip,x-forwarded-proto=http,x-request-id=ef240ed0-e314-968c-9a85-507a9c86de49,x-forwarded-client-cert=By=spiffe://cluster.local/ns/ci01994970-idevgen-synapse-esbsrd/sa/default;Hash=eaa9ac5088c0357956fc4d32189c9ef33ae86e84ad3d99d60426e828650aac96;Subject="";URI=spiffe://cluster.local/ns/ci01994970-idevgen-synapse-esbsrd/sa/default,x-b3-traceid=d09820ab0db1fd4ec549500806b8ddda,x-b3-spanid=da703f660cb8faa9,x-b3-parentspanid=c549500806b8ddda,x-b3-sampled=1)

Вызов запроса процедуры БД

2021-06-08 18:41:37.339 [INFO ] [[grpc-transport]-2] [com.sbt.synapse.service.ServiceDb] [T:] - Receive dbRequest entity name: get_reprocess, action: get_reprocess,

Прикладной журнал фиксируется в файлах /opt/synapse/logs/messages*.log в формате JSON. Компонент LOGA извлекает записи прикладного журнала Шлюза БД и передает их в подсистему журналирования.

В прикладном журнале фиксируются события:

  • получения сообщения;

  • отправки сообщения;

  • возникновения ошибки.

Каждая запись о событии в журнале содержит:

Имя поля

Требование к заполнению

Обязательность

projectName

Имя проекта в Kubernetes. Заполняется автоматически

1

podSource

Имя pod в Kubernetes, залогировавшего событие. Заполняется автоматически

1

event_timestamp

Время фиксации события в pod. Заполняется автоматически

1

message

Тело передаваемого сообщения в формате MQ

1

information

Информация о логируемом событии

0

rqUID

Уникальный идентификатор запроса. Основной идентификатор для поиска записей в логе.

1

serviceReceiver

Имя вызываемого сервиса (получателя) или имя брокера и очереди для внешней АС (получателя).

0

operationName

Название операции (корневого тега сообщения)

0

status

Статус операции

0

Пример записи в прикладной лог

{
	"projectName": "Имя проекта",
	"podSource": "Имя pod",
	"event_timestamp": 1611911783399,
	"message": "<MSG_CONTENT>тело сообщения</MSG_CONTENT>",
	"information": "Сообщение получено от АС: АС",
	"rqUID": "abcdef00000001212669000134159445",
	"operationName": "Имя операции",
	"status": "SUCCESS"
} {
	"projectName": "Имя проекта",
	"podSource": "Имя pod",
	"event_timestamp": 1611911786396,
	"message": "<MSG_CONTENT>тело сообщения</MSG_CONTENT>",
	"information": "Сообщение отправлено в: Имя сервиса",
	"rqUID": "abcdef00000001925071162918237829",
	"serviceReceiver": "Имя сервиса",
	"operationName": "Имя операции",
	"status": "SUCCESS"
} {
	"projectName": "Имя проекта",
	"podSource": "Имя pod",
	"event_timestamp": 1611911791304,
	"message": "",
	"information": "Произошла ошибка: ИМЯ СЕРВИСА. Код ошибки: 701. Ошибка при вызове по GRPC ID:414d51204d39392e45534246532e4956cc2c106002a90220 ",
	"rqUID": "abcdef00000002509572495095446810",
	"operationName": "Имя операции",
	"status": "ERROR"
}

Коды ошибок:

Код ошибки

Сообщение в логе

Описание

601

Общая ошибка в шлюзе

602

Код ошибки: 602. Сообщение не может быть отправлено

Ошибка конфигурации шлюза

604

Код ошибки: 604. Сообщение не соответствует схеме <ID>

Ошибка валидации сообщения (при работе с валидатором сообщений)

605

Код ошибки: 605. Ошибка вызова валидатора <ID>

Ошибка вызова валидатора (при работе с валидатором сообщений)

606

Код ошибки: 606. Сообщение не соответствует конфигурации <ID>

Параметры полученного сообщения не соответствуют конфигурации шлюза

701

Код ошибки: 701. Ошибка при вызове по GRPC ID: StackTrace: …

Ошибка вызова по gRPC

События мониторинга#

Для просмотра базового набора событий мониторинга, регистрируемых на уровне пода, через веб-интерфейс Kubernetes, необходимо:

Шаг

Действия

Вход в веб-консоль

1. Перейдите по ссылке (URL) веб-консоли кластера Kubernetes.
2. В окне ввода учетных данных введите логин и пароль

Переход в проект

1. Выберите пункт меню HomeProjects.
2. Выберите из списка нужный проект

Переход в Pod

1. В меню выберите пункт WorkloadPods.
2. На странице найти нужный Pod (при необходимости воспользоваться поиском по имени)
3. Пройти по ссылке в наименовании на вкладку Events.

Просмотр событий

В появившемся списке можно увидеть базовый набор событий мониторинга

Выход из веб-консоли

1. Нажатием на имени пользователя раскройте меню пользователя. 2. Выберите пункт Log out. 3. Закройте окно браузера

Примеры базовых событий мониторинга:

Базовое событие

Описание

Pulling image <ссылка на образ компонента>

Скачивание образа компонента

Successfully pulled image <ссылка на образ компонента>

Образ компонента успешно скачан

Created container <имя компонента>

Создан контейнер компонента

Started container <имя компонента>

Контейнер компонента запустился

Successfully assigned <имя проекта в кластере Kubernetes>/<имя пода> to <свободная нода в кластере Kubernetes>

На свободную ноду успешно назначен созданный под

Также JDBC Gateway интегрирован с компонентом MONA продукта Platform V Monitor и передает метрики, которые доступны по адресу:
< ip >:< spring_boot_server_port >/actuator/prometheus.
Помимо стандартных метрик Spring Boot приложения добавлена метрика "sended_requests_total", показывающая общее количество вызовов каждой процедуры и функции.

Часто встречающиеся проблемы и пути их устранения#

Проблема

Причина

Решение

Не запускается Pod приложения

Недостаточно ресурсов

Увеличьте лимиты/реквесты для приложения. Последовательность действий указана в разделе Настройка выделения ресурсов.

Не запускается Pod приложения

Нет доступной ноды для запуска

Зарегистрируйте обращение в поддержку инфраструктуры

Не запускается Pod приложения

Ошибка в конфигурации

Выгрузите журнал, проведите анализ,при необходимости скорректируйте конфигурацию. Последовательность действий указана в разделе Просмотр и выгрузка системного журнала.

Частый перезапуск контейнера приложения

Медленная загрузка приложения

Увеличьте задержку и/или интервал опроса Liveness-пробы в Deployment шлюза БД. Конфигурирование этих параметров указано в Руководстве прикладного разработчика в разделе Конфигурирование Шлюза БД

Частый перезапуск контейнера приложения

Недостаточно ресурсов

Увеличьте лимиты/реквесты для приложения. Последовательность действий указана в разделе Настройка выделения ресурсов.

Отсутствует подключение к БД

Установленная configmap является некорректной

Проверьте конфигурационные файлы

Не видны необходимые процедуры

Установленная configmap является некорректной

Проверьте конфигурационные файлы

Ошибка TCPS-подключения

Ошибка в конфигурации или сетевая недоступность в кластере

Включите режим debug:all в конфигурационном файле apllication.yml, включите трассировку на контейнере istio, выполнив в терминале команду curl -X POST localhost:15000/logging?level=trace