.. _system_check: Проверка программы ================== Проверка ПО конфигурации Стандарт ---------------------------------------- Процесс установки программы описан в разделе :ref:`install_guide_standart`. Проверка Arenadata Cluster Manager (ADCM) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. attention:: Проверка Arenadata Cluster Manager (ADCM) осуществляется только при условии установки РЕД ОС 7.2 Arenadata Cluster Manager (ADCM), при успешной установке, должен быть доступен по адресу ``http://:8000``. Для авторизации используйте следующие данные: - логин: ``admin``; - пароль: ``admin``. Проверка Arenadata Streaming (ADS) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. attention:: Проверка Arenadata Streaming (ADS) осуществляется только при условии установки РЕД ОС 7.2 Проверка сервиса Zookeeper ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Проверка сервиса **Zookeeper** осуществляется через графический пользовательский интерфейс Arenadata Cluster Manager (ADCM). Чтобы выполнить проверку, выполните следующие действия: 1. Выберите кластер **ADS**, для этого откройте вкладку **Cluster-ADB**. 2. На вкладке **Services** для сервиса **Zookeeper**, в поле **Actions** нажмите кнопку **Run action** и выберите **Check**. Проверка сервиса Apache Kafka ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Проверка сервиса **Apache Kafka** осуществляется через графический пользовательский интерфейс Arenadata Cluster Manager (ADCM). Чтобы выполнить проверку, выполните следующие действия: 1. Выберите кластер ADS, для этого откройте вкладку **Cluster-ADB**. 2. На вкладке **Services** для сервиса Apache Kafka, в поле **Actions** нажмите кнопку **Run action** и выберите **Check**. Проверка ProStore ~~~~~~~~~~~~~~~~~~~~~~ Проверка ПО **ProStore** осуществляется путём отправки SQL-запросов к **ProStore** через клиентское JDBC-подключение и сопоставления ожидаемого эталонного и полученного результатов. Проверка осуществляется согласно следующим этапам: 1. Создать Витрину в **ProStore** с помощью SQL-запроса: .. code-block:: sql CREATE DATABASE <имя несуществующей логической базы>, например, CREATE DATABASE testdb; 2. Создать таблицу в **ProStore** со всеми типами колонок с помощью SQL-запроса: .. code-block:: sql CREATE TABLE <имя логической базы из п.1>.all_types ( - id int not null, - double_col double, - float_col float, - char_col varchar(36), - boolean_col boolean, - int_col int not null, - bigint_col bigint, - date_col date, - timestamp_col timestamp, - primary key (id) - ) - distributed by (id) 3. Проверить существование и структуру созданной таблицы в **ProStore** с помощью SQL-запросов: .. code-block:: sql select \* from <имя логической базы из п.1>.all_types DATASOURCE_TYPE='ADG' select \* from <имя логической базы из п.1>.all_types DATASOURCE_TYPE='ADQM' select \* from <имя логической базы из п.1>.all_types DATASOURCE_TYPE='ADB' 4. Удалить таблицу со всеми типами колонок из **ProStore** с помощью SQL-запроса: .. code-block:: sql DROP TABLE <имя логической базы из п.1>.all_types 5. Удалить Витрину с помощью SQL-запроса: .. code-block:: sql DROP DATABASE <имя логической базы из п.1>. .. attention:: Наличие сообщений об ошибках, а также отличие получаемых состояний **ProStore** на различных этапах проверки от ожидаемых состояний является индикатором неуспешного прохождения проверки. Проверка СМЭВ QL Сервера ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой СМЭВ QL Сервера .. include:: ../../modules/smev-ql/doc/smev_ql_check.rst Проверка СМЭВ3-адаптера ~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой СМЭВ-адаптер .. include:: ../../modules/smev3-adapter/doc/smev3_adapter_check.rst Проверка СМЭВ4-адаптера - Модуля исполнения запросов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой СМЭВ4-адаптер - Модуль исполнения запросов .. include:: ../../modules/podd-adapter-query/doc/podd_adapter_query_check.rst Проверка СМЭВ4-адаптера – Модуля MPPR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой СМЭВ4-адаптер – Модуль MPPR .. include:: ../../modules/podd-adapter-mppr/doc/podd_adapter_mppr_check.rst Проверка СМЭВ4-адаптера - Модуля MPPW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой СМЭВ4-адаптер-Модуль MPPW .. include:: ../../modules/podd-adapter-mppw/doc/podd_adapter_mppw_check.rst Проверка СМЭВ4-адаптера – Модуля импорта данных табличных параметров ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой СМЭВ4-адаптер – Модуль импорта данных табличных параметров .. include:: ../../modules/podd-adapter-import-tp/doc/podd_adapter_import_tp_check.rst Проверка СМЭВ4-адаптера – Модуля группировки данных табличных параметров ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой СМЭВ4-адаптер – Модуль группировки данных табличных параметров .. include:: ../../modules/podd-adapter-group-tp/doc/podd_adapter_group_tp_check.rst Проверка СМЭВ4-адаптера – Модуль дефрагментации чанков табличных параметров ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой СМЭВ4-адаптер – Модуль дефрагментации чанков табличных параметров .. include:: ../../modules/podd-avro-defragmentator/doc/podd_avro_defragmentator_check.rst Проверка модуля группировки чанков репликации ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Описание модуля .. Подключаем файл с описанием модуля .. include:: ../../modules/podd-adapter-group-repl/doc/podd_adapter_group_repl_check.rst Проверка DATA-uploder – Модуля исполнения асинхронных заданий ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой Data-uploder – Модуль исполнения асинхронных заданий .. include:: ../../modules/data-uploader/doc/data_uploader_check.rst Проверка REST-uploader – Модуля асинхронной загрузки данных из сторонних источников ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой REST-uploader – Модуль асинхронной загрузки данных из сторонних источников .. include:: ../../modules/rest-uploader/doc/rest_uploader_check.rst Проверка СМЭВ4-адаптера – Модуля подписки ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой СМЭВ4-адаптер – Модуль подписки .. include:: ../../modules/podd-adapter-replicator/doc/podd_adapter_replicator_check.rst Проверка BLOB-адаптера ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой BLOB-адаптер .. include:: ../../modules/blob-adapter/doc/blob_adapter_check.rst Проверка Сервиса формирования документов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой Сервис формирования документов .. include:: ../../modules/printable-form-service/doc/printable_form_service_check.rst .. Проверка CSV-Uploader .. ---------------------------------------- .. Подключаем файл с проверкой CSV-Uploader .. .. include:: ../../modules/csv-uploader/doc/csv_uploader_check installation.rst Проверка ETL ~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой ETL .. include:: ../../modules/etl/doc/etl_check.rst Проверка Apache Airflow ^^^^^^^^^^^^^^^^^^^^^^^^^ Проверка сервиса **Apache Airflow** осуществляется через графический пользовательский интерфейс, в случае успешной установки, он должен быть доступен по адресу ``http://localhost:8080``. Для авторизации используйте следующие данные: - логин: ``airflow``; - пароль: ``airflow``. Также, можно проверить удалённое подключение с помощью http-запроса, для этого выполните следующую команду .. code-block:: bash ENDPOINT_URL="http://localhost:8080/" curl -X GET \\ --user "airflow:airflow" \\ "${ENDPOINT_URL}/api/v1/pools" Проверка Apache Spark ^^^^^^^^^^^^^^^^^^^^^^^^^^ Проверка сервиса **Apache Spark** осуществляется через графический пользовательский интерфейс, в случае успешной установки, он должен быть доступен по адресу: Веб-сервер **Spark Master** доступен по адресу .. code-block:: bash http://<ваш ip-адрес>:8080 например http://localhost:8080/ Веб-сервер **Spark Worker 1** доступен по адресу .. code-block:: bash http://<ваш ip-адрес>:8081 например http://localhost:8081/ Проверка Apache Hadoop ^^^^^^^^^^^^^^^^^^^^^^^^^^ Проверить корректность работы **Apache Hadoop** можно командой: .. code-block:: bash make wordcount или последовательно выполнить следующие команды: .. code-block:: bash docker build -t hadoop-wordcount ./submit docker run --network docker-hadoop_default --env-file hadoop.env bde2020/hadoop-base:master hdfs dfs -mkdir -p /input/ docker run --network docker-hadoop_default --env-file hadoop.env bde2020/hadoop-base:master hdfs dfs -copyFromLocal -f /opt/hadoop-3.2.1/README.txt /input/ docker run --network docker-hadoop_default --env-file hadoop.env hadoop-wordcount docker run --network docker-hadoop_default --env-file hadoop.env bde2020/hadoop-base:master hdfs dfs -cat /output/\* docker run --network docker-hadoop_default --env-file hadoop.env bde2020/hadoop-base:master hdfs dfs -rm -r /output docker run --network docker-hadoop_default --env-file hadoop.env bde2020/hadoop-base:master hdfs dfs -rm -r /input После запуска **Apache Hadoop** можно зайти в следующие WEB–интерфейсы: .. code-block:: bash Namenode: http://:9870/dfshealth.html#tab-overview History server: http://:8188/applicationhistory Datanode: http://:9864/ Nodemanager: http://:8042/node Resource manager: http://:8088/ Проверка Tarantool(Vinyl) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Проверка СУБД **Tarantool** осуществляется согласно документации на СУБД Tarantool: https://www.tarantool.io/en/doc/latest/book/monitoring/ . Проверка Backup manager ~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой Backup manager .. include:: ../../modules/backup-manager/doc/backup_manager_check.rst Проверка REST-адаптер ~~~~~~~~~~~~~~~~~~~~~~~~~~ Проверить удалённое подключение с помощью HTTP-запроса: .. code-block:: bash curl localhost:8080 В случае успешной установки ответ будет следующим: .. code-block:: bash {"timestamp":"2021-03-15T10:22:57.325+0000","status":404,"error":"Not Found","message":"","path":"/"}% Проверка Counter-provider - Сервиса генерации уникального номера ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой Сервиса генерации уникального номера .. include:: ../../modules/counter-provider/doc/counter_provider_check.rst Проверка ПО конфигурации Лайт ---------------------------------------- .. _check_install_prostore: Процесс установки программы описан в разделе :ref:`install_guide_lite`. Для проверки установки программы следует выполнить следующие действия: 1. Открыть в браузере web-интерфейс **Portainer** для управления docker-контейнерами по адресу ``IP:9000``, где - ``IP`` - адрес сервера. - ``9000`` - порт сервера. 2. Введите логин и пароль администратора Portainer. По умолчанию - ``admin``/ ``LongPassword`` (см. :numref:`img_authorization_docker`). .. _img_authorization_docker: .. figure:: img/image5-1_lig.png :align: center :alt: Авторизация в Portainer Авторизация в Portainer 3. Чтобы определить и автоматически настроить локальную среду нажмите значок **Get Started** (см. :numref:`img_Portainer`). .. _img_Portainer: .. figure:: img/image5_lig.png :align: center :alt: Окно «Quick Setup» Окно «Quick Setup» 4. На главной странице нажмите ссылку **local** (см. :numref:`img_local_link`). .. _img_local_link: .. figure:: img/image6_lig.png :align: center :alt: Окно «Home» Окно «Home» 5. Нажмите значок **Containers** (см. :numref:`img_Containers`). .. _img_Containers: .. figure:: img/image7_lig.png :align: center :alt: Окно «Containers» Окно «Containers» 6. В разделе **Container list** сверить наличие компонентов со списком компонентов дистрибутива программы, приведенных в :ref:`distr_components` документа «Техническое описание программы ПО «Витрина данных НСУД»». 7. Подключиться к программе по SSH (например, через `Putty `_). Выполнить запрос, согласно приведенному примеру ниже. Пример запроса .. code-block:: bash curl -X POST -H "Content-Type: application/json" -d '{"requestId": "797de19a-54e2-4c9c-af6e-a9ee312230b5","datamartMnemonic": "base01","sql": "CHECK_VERSIONS()"}' http://0.0.0.0:9090/query/execute Пример успешного ответа (см. :numref:`image9_link`). .. _image9_link: .. figure:: img/image9_lig.png :align: center :alt: Проверка подключения к базе данных Prostore Проверка подключения к базе данных Prostore 8. Подключиться к Grafana. Для этого следует перейти по адресу: ``http://<имя сервера>:3000`` и выполнить авторизацию (указаны значения по умолчанию): - логин: admin; - пароль: admin. Проверить, что показатели Healthcheck Leaviness и Readiness (дашборд Lite) работают (индикатор зеленого цвета). 9. Просмотреть лог-файл установки (ansible/ansible.log). Лог-файл не должен содержать записей с ошибками установки. Обновление программы ==================== Обновление ПО конфигурации Стандарт -------------------------------------- Для обновления версии ПО нужно обновить файлы компонентов, полученные из дистрибутива новой версии программы. Все настройки программы (адреса серверов, порты и т.д.) останутся без изменений. Обновление ПО конфигурации Лайт -------------------------------------- .. attention:: Перед началом обновления выполните резервное копирование! Обновление с версии 1.0.0 до версии 1.0.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. attention:: Данное обновление предусмотрено только для перехода с версии программы 1.0.0 до версии 1.0.1. Чтобы обновить программу необходимо выполнить следующие действия (подробная инструкция по обновлению ниже): #. Выполнить резервное копирование. #. Скопировать архив с обновлением программы на сервер. #. Распаковать архив с обновлением. #. Запустить процесс обновления. #. Проверить, что обновление прошло успешно. Резервное копирование ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. attention:: Действия этого раздела необходимо выполнять под созданной учетной записью **datamart** (см. раздел :ref:`datamart_user_lite`). Для того чтобы выполнить резервное копирование создайте архив текущей версии с указанием актуальной даты копирования. Например: .. code-block:: bash tar -czvf dtm-lite-2022-01-17.tgz ansible/ images/ jdbc/ rpms/ Копирование архива с обновлением программы на сервер ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для загрузки на сервер архива с файлами обновления программы используйте SFTP-клиент (например, WinSCP или Filezilla). Для авторизации используйте логин и пароль учетной записи администратора **datamart** созданной при установке ОС (см. раздел :ref:`datamart_user_lite`). 1. Подключитесь по SSH к серверу (см. раздел :ref:`ssh_connect`), используя логин и пароль учетной записи администратора. 2. Загрузите файл с архивом в домашнюю директорию пользователя **datamart** командой: .. code-block:: bash mv ~/dtm-lite-1.0.1.tgz /home/datamart/ где, - ``dtm-lite-1.0.1.tgz`` - название архива программы. - ``datamart`` - имя пользователя. Распаковка архива с обновлением ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. attention:: Перед тем как выполнить разархивирование рекомендуется просмотреть/скопировать значения переменных (IP-адрес сервера, префикс и т.д.), которые использовались в предыдущей версии программы в файле ``ansible/group_vars/all/main.yml``. После распаковки архива с обновлением программы данные из этого файла будут удалены. Чтобы распаковать архив, выполните команду:: tar -xzvf dtm-lite-1.0.1.tgz Процесс обновления программы ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Чтобы запустить процесс обновления программы с помощью Ansible, необходимо выполнить следующие действия: 1. Переименовать файл ``custom.example.yml`` расположенный в папке ``ansible/group_vars/`` в ``custom.yml``. Для этого выполните команду: :: cp -n ansible/group_vars/custom.example.yml ansible/group_vars/custom.yml 2. В файле ``custom.yml`` указать корректные значения для следующих переменных: - ``server_ip`` - адреса сервера. Укажите IP-адрес сервера, на который будет установлено обновление программы. Например: :: server_ip: "172.16.10.59" - ``server_user_name`` - имя пользователя операционной системы. Укажите имя пользователя операционной системы сервера, под которым устанавливается обновление (см. раздел :ref:`datamart_user_lite`), например: :: server_user_name: datamart - ``podd_kafka_topic_prefix`` - префикс перед именем топиков для СМЭВ4-агента (указывается опционально). Например: :: podd_kafka_topic_prefix: "user_prefix." .. attention:: В качестве префикса рекомендуется использовать мнемонику витрины. После определения параметра префикса следует обязательно ставить символ ``.`` (точка)! Пример: ``podd_kafka_topic_prefix: "prod_vitrina98."`` Чтобы запустить процесс обновления программы выполните команду:: docker-ansible-cmd ansible-playbook -i hosts install.yml Начнется процесс обновления программы (см. рис. ниже): .. figure:: img/progress_install_lig.png :align: center :alt: Обновление программы Обновление программы Установка обновления завершена. После завершения обновления необходимо убедиться, что обновление программы прошло успешно. Проверка обновления программы до версии 1.0.1 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для проверки обновления программы необходимо выполнить следующие действия: 1. Убедиться, что после установки обновления нет ошибок в работе программы. 2. Убедиться, что параметр ``failed`` (см. рис. выше) после установки обновления имеет значение - ``0``. Это значит, что все необходимые компоненты программы были обновлены, а необходимые взаимосвязи между ними настроены корректно. 3. Открыть *Portainer* и проверить, что версии компонентов соответствуют указанным ниже:: csv-uploader:1.0.12 podd-adapter:5.0.7 query-execution:5.2.2 Обновление с версии 1.0.1 до версии выше ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Чтобы обновить программу необходимо выполнить следующие действия: #. Выполнить резервное копирование. #. Скопировать архив с обновлением программы на сервер. #. Распаковать архив с обновлением. #. Запустить процесс обновления. #. Проверить, что обновление прошло успешно. Резервное копирование ^^^^^^^^^^^^^^^^^^^^^^^^ .. attention:: Действия этого раздела необходимо выполнять под созданной учетной записью **datamart** (см. раздел :ref:`datamart_user_lite`). Для того чтобы выполнить резервное копирование создайте архив текущей версии с указанием актуальной даты копирования. Например:: tar -czvf dtm-lite-2022-01-17.tgz ansible/ images/ jdbc/ rpms/ Копирование архива с обновлением программы на сервер ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для загрузки на сервер архива с файлами обновления программы используйте SFTP-клиент (например, WinSCP или Filezilla). Для авторизации используйте логин и пароль учетной записи администратора **datamart** созданной при установке ОС (см. раздел :ref:`datamart_user_lite`). 1. Подключитесь по SSH к серверу (см. раздел :ref:`ssh_connect`), используя логин и пароль учетной записи администратора. 2. Загрузите файл с архивом в домашнюю директорию пользователя **datamart** командой:: mv ~/dtm-lite-<номер версии>.tgz /home/datamart/ где, - ``dtm-lite-<номер версии>.tgz`` - название архива программы. - ``datamart`` - имя пользователя. Распаковка архива с обновлением ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Чтобы распаковать архив, выполните команду:: tar -xzvf dtm-lite-<номер версии>.tgz Процесс обновления программы ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Чтобы запустить процесс обновления программы с помощью Ansible, необходимо выполните команду:: docker-ansible-cmd ansible-playbook -i hosts install.yml Начнется процесс обновления программы (см. рис. ниже): .. figure:: img/progress_install_lig.png :align: center :alt: Обновление программы Обновление программы Установка обновления завершена. После завершения обновления необходимо убедиться, что обновление программы прошло успешно. Проверка обновления программы ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для проверки обновления программы необходимо выполнить следующие действия: 1. Убедиться, что после установки обновления нет ошибок в работе программы. 2. Убедиться, что параметр ``failed`` (см. рис. выше) после установки обновления имеет значение - ``0``. Это значит, что все необходимые компоненты программы были обновлены, а необходимые взаимосвязи между ними настроены корректно. 3. Открыть *Portainer* и проверить, что версии компонентов соответствуют указанным компонентам для конфигурации Лайт.