Установка программы =================== .. note:: Установка витрины данных производится без необходимости доступа к сети Интернет для скачивания компонент. .. _install_guide_standart: Установка ПО конфигурации Стандарт --------------------------------------- Порядок установки ~~~~~~~~~~~~~~~~~~~~~ 1. Проверить соответствие серверов техническим характеристикам (см. раздел :ref:`server_requirements`). 2. Выполнить предварительные действия перед установкой программы (см. раздел :ref:`preactions`). 3. Установить на серверы, в соответствующем порядке, следующее программное обеспечение: - Arenadata Cluster Manager (ADCM) - при условии использования CentOS 7.9; - Arenadata Streaming (ADS) - при условии использвания CentOS 7.9; - коннектор Kafka-Postgres; - ProStore; - СМЭВ QL Сервер; - СМЭВ3-адаптер; - ПОДД-адаптер - Модуль исполнения запросов; - ПОДД-адаптер – Модуль MPPR; - ПОДД-адаптер – Модуль MPPW; - ПОДД-адаптер – Модуль импорта данных табличных параметров; - ПОДД-адаптер – Модуль группировки данных табличных параметров; - ПОДД-адаптер – Модуль дефрагментации чанков табличных параметров; - Data-uploader – Модуль исполнения асинхронных заданий; - REST-uploader – Модуль асинхронной загрузки данных из сторонних источников; - ПОДД-адаптер – Модуль подписки; - BLOB-адаптер; - Сервис формирования документов; - ETL; - CSV-uploader; - REST-адаптер; - Counter-provider. 4. Проверить работу всех компонентов программы (см. раздел :ref:`system_check`). Версии компонентов программы приведены в :ref:`distr_components` документа «Техническое описание программы ПО «Витрина данных НСУД»». Описание настроек модулей приведено в Руководстве администратора ПО «Витрина данных НСУД». Установка ПО ProStore ~~~~~~~~~~~~~~~~~~~~~~~~ Установка ProStore должна осуществляться после установки СУБД и брокера сообщений. ПО ProStore поставляется в виде дистрибутива с компонентами в jar-файлах. Процесс установки состоит из следующих действий приведен в разделе `Сборка и развертывание `_ документации **Prostore**. Установка СМЭВ QL Сервера ~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка СМЭВ QL Сервера .. Подключаем файл с установкой СМЭВ QL Сервера .. include:: ../../modules/smev-ql/doc/smev_ql_install.rst Установка СМЭВ3-адаптера ~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка СМЭВ-адаптер .. Подключаем файл с установкой СМЭВ-адаптер .. include:: ../../modules/smev3-adapter/doc/smev3_adapter_install.rst Установка ПОДД-адаптера - Модуля исполнения запросов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка ПОДД-адаптер - Модуль исполнения запросов .. Подключаем файл с установкой ПОДД-адаптер - Модуль исполнения запросов .. include:: ../../modules/podd-adapter-query/doc/podd_adapter_query_install.rst Установка ПОДД-адаптера – Модуля MPPR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка ПОДД-адаптер – Модуль MPPR .. Подключаем файл с установкой ПОДД-адаптер – Модуль MPPR .. include:: ../../modules/podd-adapter-mppr/doc/podd_adapter_mppr_install.rst Установка ПОДД-адаптера - Модуля MPPW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка ПОДД-адаптер-Модуль MPPW .. Подключаем файл с установкой ПОДД-адаптер-Модуль MPPW .. include:: ../../modules/podd-adapter-mppw/doc/podd_adapter_mppw_install.rst Установка ПОДД-адаптера – Модуля импорта данных табличных параметров ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка ПОДД-адаптер – Модуль импорта данных табличных параметров .. Подключаем файл с установкой ПОДД-адаптер – Модуль импорта данных табличных параметров .. include:: ../../modules/podd-adapter-import-tp/doc/podd_adapter_import_tp_install.rst Установка ПОДД-адаптера – Модуля группировки данных табличных параметров ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка ПОДД-адаптер – Модуль группировки данных табличных параметров .. Подключаем файл с установкой ПОДД-адаптер – Модуль группировки данных табличных параметров .. include:: ../../modules/podd-adapter-group-tp/doc/podd_adapter_group_tp_install.rst Установка ПОДД-адаптера – Модуль дефрагментации чанков табличных параметров ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка ПОДД-адаптер – Модуль дефрагментации чанков табличных параметров .. Подключаем файл с установкой ПОДД-адаптер – Модуль дефрагментации чанков табличных параметров .. include:: ../../modules/podd-avro-defragmentator/doc/podd_avro_defragmentator_install.rst Установка модуля группировки чанков репликации ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Описание модуля .. Подключаем файл с описанием модуля .. include:: ../../modules/podd-adapter-group-repl/doc/podd_adapter_group_repl_install.rst Установка DATA-uploder – Модуля исполнения асинхронных заданий ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка Data-uploder – Модуль исполнения асинхронных заданий .. Подключаем файл с установкой Data-uploder – Модуль исполнения асинхронных заданий .. include:: ../../modules/data-uploader/doc/data_uploader_install.rst Установка REST-uploader – Модуля асинхронной загрузки данных из сторонних источников ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка REST-uploader – Модуль асинхронной загрузки данных из сторонних источников .. Подключаем REST-uploader – Модуль асинхронной загрузки данных из сторонних источников .. include:: ../../modules/rest-uploader/doc/rest_uploader_install.rst Установка ПОДД-адаптера – Модуля подписки ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка ПОДД-адаптер – Модуль подписки .. Подключаем файл с установкой ПОДД-адаптер – Модуль подписки .. include:: ../../modules/podd-adapter-replicator/doc/podd_adapter_replicator_install.rst Установка BLOB-адаптера ~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка BLOB-адаптер .. Подключаем файл с установкой BLOB-адаптер .. include:: ../../modules/blob-adapter/doc/blob_adapter_install.rst Установка Сервиса формирования документов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка Сервис формирования документов .. Подключаем файл с установкой Сервис формирования документов .. include:: ../../modules/printable-form-service/doc/printable_form_service_install.rst Загрузка и удаление данных через ETL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Инструкция по загрузке и удалению данных через ETL Общее описание ^^^^^^^^^^^^^^^^^^^ .. Подключаем файл с описанием .. include:: ../../modules/etl/doc/etl_doc.rst Особенности реализации ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. Подключаем файл с требованиями к исходникам, особенностями реализации и получением токена proxy api .. include:: ../../modules/etl/doc/etl_config.rst Загрузка / удаление данных ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. Подключаем файл с загрузками / удалением данных .. include:: ../../modules/etl/doc/etl_load.rst Проверка статусной информации по загрузке ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. Подключаем файл с проверкой статусной информацией .. include:: ../../modules/etl/doc/etl_check.rst Работа с вложениями через S3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. Подключаем файл с работой с вложениями через S3 .. include:: ../../modules/etl/doc/etl_attach.rst Маппинг данных ^^^^^^^^^^^^^^^^^ .. Подключаем файл с маппингом данных .. include:: ../../modules/etl/doc/etl_mapping.rst Валидация данных ^^^^^^^^^^^^^^^^^^^^ .. Подключаем файл с валидацией данных .. include:: ../../modules/etl/doc/etl_validation.rst Установка утилиты Back Manager ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка утилиты Back Manager .. Подключаем файл с установкой утилиты Back Manager .. include:: ../../modules/backup-manager/doc/backup_manager_install.rst Установка Apache Airflow ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Подготовка конфигурации ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Клонировать репозиторий Apache Airflow из официального репозитория .. code-block:: bash git clone https://github.com/apache/airflow.git 2. Перейти в папку **airflow** 3. Создать в папке файл ``Dockerfile.custom`` со следующим содержимым .. code-block:: bash FROM ${BASE_AIRFLOW_IMAGE} SHELL ["/bin/bash", "-o", "pipefail", "-e", "-u", "-x", "-c"] USER 0 # Install Java RUN mkdir -pv /usr/share/man/man1 \\ && mkdir -pv /usr/share/man/man7 \\ && curl -fsSL https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public \| apt-key add - \\ && echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > \\ /etc/apt/sources.list.d/adoptopenjdk.list \\ && apt-get update \\ && apt-get install --no-install-recommends -y \\ adoptopenjdk-8-hotspot-jre \\ && apt-get autoremove -yqq --purge \\ && apt-get clean \\ && rm -rf /var/lib/apt/lists/\* # Установка JDR 1.8 ENV JAVA_HOME=/usr/lib/jvm/adoptopenjdk-8-hotspot-jre-amd64 USER ${AIRFLOW_UID} # Установка компонента apache.spark RUN pip install --upgrade pip \\ && pip install --no-cache-dir --user 'apache-airflow[apache.spark]' Установка Apache Airflow ^^^^^^^^^^^^^^^^^^^^^^^^^^ Установка **Apache Airflow** выполняется с помощью **Docker**. Установка **Docker** описана в разделе :ref:`install_adcm`. 1. Создайте новый образ в *Docker*, в той же директории, где расположен файл ``Dockerfile.custom``: .. code-block:: bash docker build . \\ --build-arg BASE_AIRFLOW_IMAGE="apache/airflow:2.0.1-python3.8" \\ -f Dockerfile.java8 \\ -t airflow:2.0.1-python3.8-custom 2. Скачать файл ``docker-compose.yaml`` с официального сайта Airflow https://Airflow.apache.org/docs/apache-airflow/2.0.1/docker-compose.yaml 3. Установить ``docker-compose.yaml`` через SSH-консоль технологического пользователя. - Выдать права на исполнение файла .. code-block:: bash sudo chmod +x /usr/local/bin/docker-compose - Запустить sudo .. code-block:: bash ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose - Проверить корректность установки .. code-block:: bash $ docker-compose --version docker-compose version 1.28.6, build 1110ad01 1. Перейти в директорию с файлом ``docker-compose.yml``: .. code-block:: bash cd ~/direct 5. Инициализировать компоненты .. code-block:: bash docker-compose up airflow-init 6. Запустить сервисы с новым образом .. code-block:: bash docker-compose up AIRFLOW_IMAGE_NAME=apache/airflow:2.0.1-python3.8-custom Установка Apache Spark ~~~~~~~~~~~~~~~~~~~~~~~~ Установка **Docker** описана в разделе :ref:`install_adcm`. Подготовка конфигурации ^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Клонировать репозиторий **Apache Airflow** из официального репозитория: .. code-block:: bash git clone https://github.com/big-data-europe/docker-spark.git 2. Перейти в директорию ``docker-spark``: .. code-block:: bash cd ~/direct 3. Выполнить скрипт ``./build.sh`` или вручную последовательно запустить следующие команды - сборка базового образа .. code-block:: bash docker build -t bde2020/spark-base:3.1.1-hadoop3.2 - сборка образа мастер .. code-block:: bash docker build -t bde2020/spark-master:3.1.1-hadoop3.2 - сборка образа воркера .. code-block:: bash docker build -t bde2020/spark-worker:3.1.1-hadoop3.2 4. Проверить наличие собранных образов, выполнив команду docker: .. code-block:: bash REPOSITORY TAG IMAGE ID CREATED SIZE bde2020/spark-worker 3.1.1-hadoop3.2 05c349b4646f 4 minutes ago 460MB bde2020/spark-master 3.1.1-hadoop3.2 7918c5357d6d 4 minutes ago 460MB bde2020/spark-base 3.1.1-hadoop3.2 5430434220d2 4 minutes ago 460MB Установка ^^^^^^^^^^^^^^^ 1. Перейти в директорию *docker-spark*, где располагается файл ``docker-compose.yml``: .. code-block:: bash cd ~/direct 2. Запустить Apache Spark командой: .. code-block:: bash docker-compose up 3. Проверить командой: .. code-block:: bash docker ps В списке запущенных образов должны присутствовать ``spark-worker`` и ``spark-master``. Установка Apache Hadoop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Установка **Docker** описана в разделе :ref:`install_adcm`. Подготовка конфигурации ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Клонировать репозиторий **Apache Hadoop** из официального репозитория .. code-block:: bash git clone https://github.com/big-data-europe/docker-hadoop.git Перейти в папку **docker-hadoop** .. code-block:: bash cd ~/direct 2. Выполнить скрипт ``make build`` или вручную последовательно запустить следующие команды: - сборка базового образа .. code-block:: bash docker build -t bde2020/hadoop-base:master ./base - сборка остальных образов .. code-block:: bash docker build -t bde2020/hadoop-namenode:master ./namenode docker build -t bde2020/hadoop-datanode:master ./datanode docker build -t bde2020/hadoop-resourcemanager:master ./resourcemanager docker build -t bde2020/hadoop-nodemanager:master ./nodemanager docker build -t bde2020/hadoop-historyserver:master ./historyserver docker build -t bde2020/hadoop-submit:master ./submit 3. Проверить наличие собранных образов: Выполнить команду docker: .. code-block:: bash REPOSITORY TAG IMAGE ID CREATED SIZE bde2020/hadoop-submit master 665a424edc23 9 minutes ago 1.37GB bde2020/hadoop-historyserver master ff53bf6835e2 9 minutes ago 1.37GB bde2020/hadoop-nodemanager master c48c47bc840f 9 minutes ago 1.37GB bde2020/hadoop-resourcemanager master 74fc55d664d2 9 minutes ago 1.37GB bde2020/hadoop-datanode master f69c6460a292 9 minutes ago 1.37GB bde2020/hadoop-namenode master 7a8250da8510 9 minutes ago 1.37GB bde2020/hadoop-base master aeb6500ab4b5 10 minutes ago 1.37GB Процесс установки ^^^^^^^^^^^^^^^^^^^ 1. Перейти в директорию **docker-hadoop**, где располагается файл ``docker-compose.yml`` .. code-block:: bash cd ~/direct 2. Поднять Apache Hadoop командой .. code-block:: bash docker-compose up 3. Проверить командой .. code-block:: bash docker ps В списке запущенных образов должны присутствовать ``hadoop-resourcemanager``, ``hadoop-historyserver``, ``hadoop-datanode``, ``hadoop-nodemanager``, ``hadoop-namenode``. Установка Tarantool (Vinyl) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Установка **Docker** описана в разделе ":ref:`install_adcm`. Подготовка конфигурации ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Клонировать репозиторий Tarantool из официального репозитория .. code-block:: bash git clone https://github.com/tarantool/docker.git 2. Выполнить сборку согласно инструкции: https://github.com/tarantool/docker#how-to-push-an-image-for-maintainers 3. Перейти в клонированную директорию **docker** .. code-block:: bash cd ~/direct 4. Выполнить сборку образа *docker* для Tarantool .. code-block:: bash export TAG=2 export OS=alpine DIST=3.9 VER=2.8.0 PORT=5200 make -f .gitlab.mk build 5. Проверить наличие собранных образов командой docker images .. code-block:: bash REPOSITORY TAG IMAGE ID CREATED SIZE tarantool/tarantool 2 27f80564ecce 2 minutes ago 298MB 6. Создать в клонированной директории *docker* файл ``docker-compose.yml`` со следующим содержимым:: .. code-block:: yaml version: "3" services: tarantool1: image: tarantool/tarantool:2 container_name: tarantool1 restart: always networks: - tarantool_network ports: - "3301:3301" volumes: - tarantool1_volume:/opt/tarantool environment: # https://github.com/tarantool/docker#environment-variables TARANTOOL_REPLICATION: "tarantool1,tarantool2" tarantool2: image: tarantool/tarantool:2 container_name: tarantool2 restart: always networks: - tarantool_network ports: - "3302:3301" volumes: - tarantool2_volume:/opt/tarantool environment: TARANTOOL_REPLICATION: "tarantool1,tarantool2" volumes: tarantool1_volume: tarantool2_volume: networks: tarantool_network: driver: bridge Процесс установки ^^^^^^^^^^^^^^^^^^ 1. Перейти в директорию ``/docker``, где располагается файл ``docker-compose.yml`` .. code-block:: bash cd ~/direct 2. Пример запуска мастер-мастер репликации: .. code-block:: bash https://github.com/tarantool/docker#start-a-master-master-replica-set 1. Поднять Tarantool командой .. code-block:: bash docker-compose up 2. Проверить командой .. code-block:: bash docker ps В списке запущенных образов должны присутствовать ``tarantool1`` и ``tarantool2``. Установка CSV-Uploader ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка CSV-uploader .. Подключаем файл с установкой CSV-uploader .. include:: ../../modules/csv-uploader/doc/csv_uploader_install.rst Установка REST-адаптера ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Установка сервисов и необходимых сервисных баз данных. .. attention:: Установка данных сервисов выполняется после выполнения действий, описанных в разделе :ref:`preactions`. Действия по установке выполняются на сервере **ADCM** через SSH-консоль технологического пользователя. Установка docker-образов ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Установка Docker описана в разделе :ref:`install_adcm`. Далее необходимо установить образ REST-адаптера, при этом файл образа ``.tar`` должен быть загружен через Docker из дистрибутива программы. Пример команды для установки: .. code-block:: bash docker image load -i Подготовка конфигурации ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для подготовки скриптов необходимо выполнить следующие действия: 1. Отредактировать переменные в файле ``application.yml`` для рабочей среды. Отредактированный файл необходимо поместить в директорию ``config``: - указать корректный путь до целевой БД. Переменная ``jdbc_url``. Например: .. code-block:: bash jdbc:{drv_name}://{IP_Host}:{Port}/{db_name} , где: - ``drv_name`` - имя драйвера , берется из описания драйвера базы - ``IP_Host`` - ip или имя хоста с базой; - ``Port`` - порт, на котором будет слушать сервис. По умолчанию 8080; - ``db_name`` - имя базы данных. - указать ``driver-class-name`` - имя класса , берется из описания драйвера базы; - указать переменную ``file_path`` - наименование файла с описанием запросов, по умолчанию ``sample.yaml``; - Указать переменные ``execquery`` - сопоставление operationId из файла с описанием запросов c файлом обработчиком, по умолчанию ``sample.peb``. Процесс установки ^^^^^^^^^^^^^^^^^^^^ Для установки необходимо выполнить следующие действия: 1. Перейти в директорию с файлом ``docker-compose.yml``: .. code-block:: bash cd ~/direct 2. Поднять сервис конечных точек командой: .. code-block:: bash docker-compose up -d 3. Проверить установку следующей командой: .. code-block:: bash docker ps В списке запущенных образов должен присутствовать ``rest-adapter``. Установка Counter-provider ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Установка Counter-provider .. Подключаем файл с установкой Counter-provider .. include:: ../../modules/counter-provider/doc/counter_provider_install.rst Установка коннектора Kafka-Postgres ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Из полученного дистрибутива ПО скопировать и загрузить в папку **kafka-postgres-connector** файлы: - ``kafka-postgres-writer-0.3.0.jar``, - ``kafka-postgres-reader-0.3.0.jar``, - ``kafka-postgres-avro-0.3.0.jar``. 2. Скопировать конфигурационные файлы **KAFKA-POSTGRES-WRITER** ``application.yaml`` и **KAFKA-POSTGRES-READER** ``application.yaml`` в папку **kafka-postgres-connector/config**. Конфигурационный файл **KAFKA-POSTGRES-WRITER** ``application.yaml``: .. code-block:: yaml logging: level: ru.datamart.kafka: ${LOG_LEVEL:DEBUG} org.apache.kafka: ${KAFKA_LOG_LEVEL:INFO} http: port: ${SERVER_PORT:8096} vertx: pools: eventLoopPoolSize: ${VERTX_EVENT_LOOP_SIZE:12} workersPoolSize: ${VERTX_WORKERS_POOL_SIZE:32} verticle: query: instances: ${QUERY_VERTICLE_INSTANCES:12} insert: poolSize: ${INSERT_WORKER_POOL_SIZE:32} insertPeriodMs: ${INSERT_PERIOD_MS:1000} batchSize: ${INSERT_BATCH_SIZE:500} consumer: poolSize: ${KAFKA_CONSUMER_WORKER_POOL_SIZE:32} maxFetchSize: ${KAFKA_CONSUMER_MAX_FETCH_SIZE:10000} commit: poolSize: ${KAFKA_COMMIT_WORKER_POOL_SIZE:1} commitPeriodMs: ${KAFKA_COMMIT_WORKER_COMMIT_PERIOD_MS:1000} client: kafka: consumer: checkingTimeoutMs: ${KAFKA_CHECKING_TIMEOUT_MS:10000} responseTimeoutMs: ${KAFKA_RESPONSE_TIMEOUT_MS:10000} consumerSize: ${KAFKA_CONSUMER_SIZE:10} closeConsumersTimeout: ${KAFKA_CLOSE_CONSUMER_TIMEOUT:15000} property: bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:kafka.host:9092} group.id: ${KAFKA_CONSUMER_GROUP_ID:postgres-query-execution} auto.offset.reset: ${KAFKA_AUTO_OFFSET_RESET:earliest} enable.auto.commit: ${KAFKA_AUTO_COMMIT:false} auto.commit.interval.ms: ${KAFKA_AUTO_INTERVAL_MS:1000} datasource: postgres: database: ${POSTGRES_DB_NAME:test} user: ${POSTGRES_USERNAME:dtm} password: ${POSTGRES_PASS:dtm} hosts: ${POSTGRES_HOSTS:localhost:5432} poolSize: ${POSTGRES_POOLSIZE:10} preparedStatementsCacheMaxSize: ${POSTGRES_CACHE_MAX_SIZE:256} preparedStatementsCacheSqlLimit: ${POSTGRES_CACHE_SQL_LIMIT:2048} preparedStatementsCache: ${POSTGRES_CACHE:true} Конфигурационный файл **KAFKA-POSTGRES-READER** `application.yaml`: .. code-block:: yaml logging: level: ru.datamart.kafka: ${LOG_LEVEL:DEBUG} org.apache.kafka: ${KAFKA_LOG_LEVEL:INFO} http: port: ${SERVER_PORT:8094} vertx: pools: eventLoopPoolSize: ${VERTX_EVENT_LOOP_SIZE:12} workersPoolSize: ${VERTX_WORKERS_POOL_SIZE:32} verticle: query: instances: ${QUERY_VERTICLE_INSTANCES:12} datasource: postgres: database: ${POSTGRES_DB_NAME:test} user: ${POSTGRES_USERNAME:dtm} password: ${POSTGRES_PASS:dtm} hosts: ${POSTGRES_HOSTS:localhost:5432} poolSize: ${POSTGRES_POOLSIZE:10} preparedStatementsCacheMaxSize: ${POSTGRES_CACHE_MAX_SIZE:256} preparedStatementsCacheSqlLimit: ${POSTGRES_CACHE_SQL_LIMIT:2048} preparedStatementsCache: ${POSTGRES_CACHE:true} fetchSize: ${POSTGRES_FETCH_SIZE:1000} kafka: client: property: key.serializer: org.apache.kafka.common.serialization.ByteArraySerializer value.serializer: org.apache.kafka.common.serialization.ByteArraySerializer .. _install_adcm: Установка Arenadata Cluster Manager (ADCM) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. attention:: При условии установки CentOS 7.9 **ADCM** – сервер, с которого будет централизованно производиться установка почти всех компонентов программы. Данный компонент обязателен для установки. **ADCM** поставляется в docker-контейнерах, поэтому чтобы установить ADCM на сервере должен быть установлен Docker или совместимое программное обеспечение для работы с контейнерами. Текущая версия программного обеспечения несовместима с SELinux. Подробная инструкция по установке **ADCM** приведена в официальной документации разработчика: https://docs.arenadata.io/adcm/user/install.html. Установка **ADCM** осуществляется пользователем согласно следующим этапам: 1. Выключить ``selinux``. Для этого в файле ``/etc/selinux/config`` установите значение ``SELINUX=disabled`` и перезапустить сервер командой ``reboot now``. 2. Установите Docker для этого используйте следующие команды .. code-block:: bash yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y containerd.io yum install -y docker-ce-3:18.09.1-3.el7 systemctl enable docker systemctl start docker 3. Установить **ADCM** в **Docker**. Для этого используйте следующие команды .. code-block:: bash docker pull arenadata/adcm:latest docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data arenadata/adcm:latest 4. Запустите **ADCM** командой .. code-block:: bash docker start adcm 5. Убедитесь, что **ADCM** установлен корректно, для этого перейдите в браузере по адресу ``http://``. В случае корректной установки откроется окно "Авторизация" (см. :numref:`image1`). .. _image1: .. figure:: img/image1_ig.png :align: center :alt: Окно "Авторизация" Окно "Авторизация" Для авторизации используйте следующие данные: - пользователь - ``admin``; - пароль - ``admin``. После завершения процедуры авторизации откроется главное окно программы Arenadata Cluster Manager (см. :numref:`image2`). .. _image2: .. figure:: img/image2_ig.png :align: center :alt: Главное окно программы "Arenadata Cluster Manager" Главное окно программы "Arenadata Cluster Manager" Установка Arenadata Streaming (ADS) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. attention:: При условии установки CentOS 7.9 **ADS** устанавливается на кластере с помощью **ADCM** из загруженного установочного пакета (бандла). Скачать установочный пакет (версия: ``ads_v1.6.0.0-1``) можно с сайта разработчика: https://store.arenadata.io/#products/arenadata_streaming. Подробная инструкция по установке **ADS** приведена в официальной документации разработчика: - `https://docs.arenadata.io/DTM/Install/ADS.html `__ - `https://docs.arenadata.io/ads/Install/index.html `_. В данной инструкции описывается установка кластера Kafka и импорт уже установленного кластера **Zookeeper**. 1. Для создания кластера необходимо иметь предварительно загруженный бандл (версия: ads_v1.6.0.0-1). В графическом интерфейсе **ADCM** перейти в раздел *CLUSTERS -> Create cluster*. Создать кластер (см. :numref:`image_6`). .. _image_6: .. figure:: img/image6_ig.png :align: center :alt: Создание кластера ADS через графический интерфейс ADCM Создание кластера ADS через графический интерфейс ADCM 2. В разделе **Services** графического интерфейса ADCM необходимо добавить сервисы в созданный кластер (см. :numref:`image7`). Версии сервисов могут отличаться от указанных на рисунке. .. _image7: .. figure:: img/image7_ig.png :align: center :alt: Добавление через графический интерфейс ADCM сервисов в созданный кластер Добавление через графический интерфейс ADCM сервисов в созданный кластер 3. В случае, если **Kafka** и **Zookeeper** разворачивается в одном кластере, необходимо добавить сервис **Zookeeper**. 4. В разделе **Hosts** графического интерфейса ADCM указать серверы созданного кластера, на которых будет развёрнуто ПО **ADS** (см. :numref:`image8`). .. _image8: .. figure:: img/image8_ig.png :align: center :alt: Выбор через графический интерфейс ADCM серверов для развёртывания кластера ADS Выбор через графический интерфейс ADCM серверов для развёртывания кластера ADS 5. В разделе *Hosts - Components* указать три узла (ноды) **Kafka** (см :numref:`image9`). .. _image9: .. figure:: img/image9_ig.png :align: center :alt: Выбор через графический интерфейс ADCM узлов Kafka Выбор через графический интерфейс ADCM узлов Kafka 6. Указать кластер *Zookeeper* в разделе **Import**, в случае если **Zookeeper** находится на другом кластере (см :numref:`image10`). .. _image10: .. figure:: img/image10_ig.png :align: center :alt: Выбор через графический интерфейс ADCM кластера *Zookeeper* для импорта Выбор через графический интерфейс ADCM кластера *Zookeeper* для импорта 7. Нажмите кнопку **Install**, чтобы запустить процесс установки. В окне "Дополнительные параметры" нажмите кнопку **Run**, чтобы выполнить установку (см :numref:`image11`). .. _image11: .. figure:: img/image11_ig.png :align: center :alt: Запуск через графический интерфейс ADCM процесса установки Запуск через графический интерфейс ADCM процесса установки 8. Проверьте, что установка завершена, для этого: - Проверьте лог-файлы *Zookeeper* по относительному пути: .. code-block:: bash /var/log/zookeeper/ - Проверьте лог-файл *Kafka* по относительному пути: .. code-block:: bash /var/log/kafka/ - Проверьте настройки подключения к кластеру **Zookeeper** с помощью сторонней утилиты **KafkaTool** (см :numref:`image12`). - Проверьте корректность разрешения имен серверов для автоматического определения bootstrap-серверов **Kafka**. При отсутствии DNS-севера добавьте в локальный ``hosts`` адреса **Kafka**. - Определите путь ``chroot path``, для этого выполните на любом сервере **Zookeeper** команду: .. code-block:: bash /usr/lib/zookeeper/bin/zkCli.sh Далее, выполните команду: .. code-block:: bash ls /arenadata/cluster .. _image12: .. figure:: img/image12_ig.png :align: center :alt: Проверка через графический интерфейс ADCM настроек подключения к кластеру Zookeeper Проверка через графический интерфейс ADCM настроек подключения к кластеру Zookeeper При проверке, в данном руководстве, использовался графический интерфейс приложения Offset Explorer 2.1 (https://www.kafkatool.com/download.html). .. _datacollect: Установка компонента сбора данных запросов и ответов Витрины данных ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Компонент сбора данных запросов и ответов Витрины данных реализован с целью проведения бизнес-мониторинга ИЭП процессов обработки запросов Типовым ПО "Витрина данных", как в целом, так и в части функционирования отдельных витрин для последующей передачи данных в СЦЛ. Процесс установки ^^^^^^^^^^^^^^^^^^^^ Общий процесс установки состоит из следующих действий: 1. Настройка логирования модулей. 2. Установка и настройка Vector. 3. Установка и настройка HaProxy. 4. Установка и настройка fluentbit. 5. Установка ClickHouse. Настройка логирования модулей ################################ На стороне модулей **ПОДД-адаптер**, **Модуль MPPR**, **BLOB-адаптер** и **Сервис формирования документов** необходимо настроить формирование логов в формате JSON. Для этого необоходимо в файле ``logback.xml`` включить ``net.logstash.logback.encoder.LogstashEncoder``. Пример logback.xml: .. code-block:: xml logs/application.log logs/application.%d{yyyy-MM-dd}.log 30 3GB `Подробная информация об encoder `_ Установка и настройка Vector ################################ Установка производится по `официальной документации Vector `_ Настройка Vector: Пример настройки source: .. code-block:: yaml json_source: type: fluent address: 0.0.0.0:24226 Пример фильтрации сообщений, имеющих флаг ``scl``: .. code-block:: yaml scl_tags_filter: type: filter inputs: - json_source condition: type: "vrl" source: |- exists(.tags) && includes(array!(.tags), "TYPE_SCL") Пример парсинга scl-сообщений: .. code-block:: yaml scl_message_remap: type: remap inputs: - scl_tags_filter source: |- . = parse_json!(.message) Пример отправки scl-сообщений в **Kafka**: .. code-block:: yaml podd_agent_sink: type: kafka inputs: - scl_message_remap bootstrap_servers: kafka:9092 topic: "<префикс>.scl.signal" acknowledgements: true compression: "gzip" encoding: codec: json healthcheck: true Установка и настройка HaProxy ################################## Установка производится по `официальной документации HaProxy `_ Для настройки HaProxy в секции ``backend`` нужно перечислить список установленных инстансов **Vector**. Пример файла ``haproxy.cfg``: .. code-block:: bash global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats defaults mode tcp log global retries 3 maxconn 3000 listen stats bind 0.0.0.0:1936 mode http stats enable stats uri / frontend services bind 0.0.0.0:24226 default_backend services mode tcp backend services balance roundrobin mode tcp server vector01 vector-01:24226 server vector02 vector-02:24226 Установка и настройка FluentBit ##################################### Установка производится по `официальной документации FluentBit `_. Далее необходимо настроить FluentBit на чтение файлов с логами приложений. Пример файла конфигурации ``fluent-bit.conf``: .. code-block:: bash [SERVICE] flush 5 daemon off log_level info parsers_file parsers.conf [INPUT] name tail path <путь до лог файла приложения> tag * parser json [OUTPUT] name forward match * host haproxy port 24226 Пример файла ``parsers.conf``: .. code-block:: bash [PARSER] Name json Format json На этом настройка fluentbit завершена. Включение / выключение отправки сообщений в СЦЛ ************************************************** Отправка логов в СЦЛ осуществляется автоматически после корректной настройки компонента. Для выключения отправки логов можно закомментировать блок ``podd_agent_sink`` отправки сообщений в Kafka в настройках Vector. Установка и настройка ClickHouse ###################################### Установка производится по `официальной документации ClickHouse `_ Пример задания конфигурационных настроек: .. code-block:: yaml clickhouse_default_config: clickhouse: logger: level: trace log: /var/log/clickhouse-server/clickhouse-server.log errorlog: /var/log/clickhouse-server/clickhouse-server.err.log size: 1000M count: 10 http_port: 8123 tcp_port: 9000 listen_host: 0.0.0.0 max_connections: 4096 keep_alive_timeout: 3 user_directories: users_xml: path: users.xml local_directory: path: "{{ clickhouse_root_data_folder }}/access/" path: "{{ clickhouse_root_data_folder | add_slash }}" .. _install_guide_lite: Установка ПО конфигурации лайт --------------------------------------- .. attention:: Перед установкой программы необходимо обязательно выполнить предварительные действия по настройке (см. раздел :ref:`preactions`). Состав компонентов дистрибутива и номер версии программы приведены в разделе :ref:`distr_components` документа «Техническое описание программы ПО «Витрина данных НСУД»». Требования к серверному оборудованию, телекоммуникационному оборудованию и каналам связи приведены в :numref:`common_info_gd` документа «Техническое описание программы ПО «Витрина данных НСУД»». Настройка конфигурационного файла ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Чтобы запустить процесс установки программы с помощью Ansible, необходимо настроить конфигурационный файл. Для этого выполните следующие действия: 1. Переименовать файл ``custom.example.yml`` расположенный в папке *ansible/group_vars/* в ``custom.yml``. Для этого выполните команду: .. code-block:: bash cp -n ansible/group_vars/custom.example.yml ansible/group_vars/custom.yml 2. В файле ``custom.yml`` указать корректные значения для следующих переменных: - ``server_ip`` - адреса сервера. Укажите IP-адрес сервера, на который будет установлена программа. Например: .. code-block:: bash server_ip: "172.16.10.59" - ``server_user_name`` - имя пользователя операционной системы. Укажите имя пользователя операционной системы сервера, под которым будет производиться установка программы (см. раздел :ref:`datamart_user_lite`), например: .. code-block:: bash server_user_name: datamart - ``podd_kafka_topic_prefix`` - префикс перед именем топиков для ПОДД-агента. Например: .. code-block::bash podd_kafka_topic_prefix: "user_prefix." .. attention:: В качестве префикса рекомендуется использовать мнемонику витрины. После определения параметра префикса следует обязательно ставить символ ``.`` (точка)! Пример: ``podd_kafka_topic_prefix: "prod_vitrina98."`` .. _install_lite: Установка программы ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для установки программы выполните команду: .. code-block:: bash docker-ansible-cmd ansible-playbook -i hosts install.yml Начнется процесс установки программы (см. :numref:`img_progress_install`): .. _img_progress_install: .. figure:: img/progress_install_lig.png :align: center :alt: Процесс установки Процесс установки Установка программы завершена. При успешной установке параметр ``failed`` должен иметь значение - ``0`` (см. :numref:`img_progress_install`). Это значит, что все компоненты программы установлены, а необходимые взаимосвязи между ними настроены корректно. После установки программы следует провести ее проверку. .. _monitoring_install: Установка системы мониторинга -------------------------------- Для мониторинга состояния работы Типового ПО «Витрина данных» используется связка Grafana + Prometheus. Prometheus — система мониторинга, обладающая возможностями тонкой настройки метрик. Prometheus используется для отслеживания состояния работы компонентов системы на низком уровне. Grafana — инструмент с открытым исходным кодом для визуализации данных из различных систем сбора статистики. Grafana используется для представления в графическом виде временных рядов и текстовых данных. Для Grafana и Prometheus доступны установки как на Bare metal, так и под Docker. .. note:: Описание настроек системы мониторинга приведено в разделе :ref:`monitoringset` документа «Руководство администратора Типового ПО «Витрина данных»». Установка Prometheus на Bare metal ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Подготовка сервера ^^^^^^^^^^^^^^^^^^^^ Перед установкой нужно настроить параметры сервера, необходимые для правильно работы системы. 1. Установить пакеты, нужные для работы: - **wget** - для загрузки файлов; - **tar** - для распаковки архивов. В зависимости от системы, команды будут отличаться. .. tab-set:: .. tab-item:: на CentOS .. code-block:: bash yum updateinfo yum install wget tar .. tab-item:: на Ubuntu .. code-block:: bash apt update apt install wget tar 2. Проверить, что установлен нужный часовой пояс, описание настройки часового пояса приведено в разделе :ref:`timezoneset`. 3. На фаерволе, при его использовании, необходимо открыть порт TCP 9090 — http для сервера Prometheus. Используя IPtables открыть порт командой: .. code-block:: bash iptables -I INPUT -p tcp --match multiport --dports 9090 -j ACCEPT Сохранить правила с помощью iptables-persistent: .. tab-set:: .. tab-item:: на CentOS .. code-block:: bash service iptables save .. tab-item:: на Ubuntu .. code-block:: bash apt install iptables-persistent netfilter-persistent save 4. При использовании CentOS необходимо отключить SELinux, как указано в разделе :ref:`SELinux_set`. Установка Prometheus ^^^^^^^^^^^^^^^^^^^^^^ Prometheus не устанавливается из репозитория и имеет не простой процесс установки. Необходимо скачать исходник, создать пользователя, вручную скопировать нужные файлы, назначить права и создать юнит для автозапуска. Загрузка ############## Для загрузки нужно перейти на `официальную страницу загрузки `_, скопировать ссылку на пакет для Linux (желательно, использовать версию LTS) и загрузить пакет командой: .. code-block:: bash wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz .. note:: Если система вернет ошибку, необходимо установить пакет wget. Установка (копирование файлов) ################################# После скачивания архив Prometheus, необходимо его распаковать и скопировать содержимое по разным каталогам. 1. Создать каталоги, в которые скопировать файлы для Prometheus командой: .. code-block:: bash mkdir /etc/prometheus /var/lib/prometheus 2. Распаковать архив командой: .. code-block:: bash tar -zxf prometheus-*.linux-amd64.tar.gz 3. Перейти в каталог с распакованными файлами: .. code-block:: bash cd prometheus-*.linux-amd64 4. Распределить файлы по каталогам: .. code-block:: bash cp prometheus promtool /usr/local/bin/ cp -r console_libraries consoles prometheus.yml /etc/prometheus 5. Выйти из каталога и удалить исходник: .. code-block:: bash cd .. && rm -rf prometheus-*.linux-amd64/ && rm -f prometheus-*.linux-amd64.tar.gz Назначение прав #################### 1. Создать пользователя, который будет запускать систему мониторинга: .. code-block:: bash useradd --no-create-home --shell /bin/false prometheus .. note:: Данная команда создает пользователя Prometheus без домашней директории и без возможности входа в консоль сервера. 2. Задать владельца для каталогов, которые были созданы ранее: .. code-block:: bash chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus 3. Задать владельца для скопированных файлов: .. code-block:: bash chown prometheus:prometheus /usr/local/bin/{prometheus,promtool} Запуск и проверка ###################### 1. Запусить Prometheus от одноименного пользователя командой: .. code-block:: bash sudo -u prometheus /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/ --web.console.templates=/etc/prometheus/consoles --web.console.libraries=/etc/prometheus/console_libraries Система выведет в консоль лог запуска с сообщением в конце: .. code-block:: bash level=info ts=2019-08-07T07:39:06.849Z caller=main.go:621 msg="Server is ready to receive web requests." 2. В браузере набрать адрес: ``http://:9090`` — в случае успешной установки загрузится консоль Prometheus. Автозапуск ############## Для настройки автоматического старта Prometheus нужно создать новый юнит в systemd. 1. Открыть консоль сервера, прервать работу Prometheus с помощью комбинации Ctrl + C и создать файл ``prometheus.service``: .. code-block:: bash vi /etc/systemd/system/prometheus.service [Unit] Description=Prometheus Service Documentation=https://prometheus.io/docs/introduction/overview/ After=network.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus \ --config.file /etc/prometheus/prometheus.yml \ --storage.tsdb.path /var/lib/prometheus/ \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure [Install] WantedBy=multi-user.target 2. Разрешить автозапуск: .. code-block:: bash systemctl enable prometheus 3. Запустить службу: .. code-block:: bash systemctl start prometheus 4. Проверить корректность запуска: .. code-block:: bash systemctl status prometheus Установка Grafana на Bare metal ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. tab-set:: .. tab-item:: Установка на CentOS 1. Создать файл конфигурации репозитория: .. code-block:: bash vi /etc/yum.repos.d/grafana.repo [grafana] name=grafana baseurl=https://packages.grafana.com/oss/rpm repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packages.grafana.com/gpg.key sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt 2. Установить Grafana командой: .. code-block:: bash yum install grafana 3. На вопросы системы, задаваемые в процессе установки нужно будет выбирать ответ: **Y**. .. tab-item:: Установка на Ubuntu 1. Добавить репозиторий командой: .. code-block:: bash add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" 2. Установить ключ для проверки подлинности репозитория Grafana: .. code-block:: bash wget -q -O - https://packages.grafana.com/gpg.key | apt-key add - 3. Обновить список портов: .. code-block:: bash apt update 4. Установить Grafana: .. code-block:: bash apt install grafana 5. На вопросы системы, задаваемые в процессе установки нужно будет выбирать ответ: **Y**. Настройка брэндмауэра ^^^^^^^^^^^^^^^^^^^^^^^ По умолчанию, Grafana работает на порту 3000. Для возможности подключиться к серверу нужно открыть данный порт командой: .. code-block:: bash iptables -A INPUT -p tcp --dport 3000 -j ACCEPT Сохранить правила с помощью iptables-persistent: .. tab-set:: .. tab-item:: на CentOS .. code-block:: bash service iptables save .. tab-item:: на Ubuntu .. code-block:: bash netfilter-persistent save .. note:: Eсли при вводе второй команды система выдаст ошибку, нужно установить пакет командой ``apt install iptables-persistent``. Запуск Grafana ^^^^^^^^^^^^^^^^^ Разрешить автозапуск командой: .. code-block:: bash systemctl enable grafana-server Запуск сервиса: .. code-block:: bash systemctl start grafana-server Установка Prometheus и Grafana в Docker ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для этого варианта установки необходимо установить Docker. Описание установки Docker приведено в разделе :ref:`docker_install`. Для того чтобы установить установить Prometheus и Grafana необходимо создать файл ``docker-compose.yml`` со следующим содержимым: .. code-block:: bash version: '3.3' networks: monitoring: driver: bridge volumes: prometheus_data: {} services: grafana: image: grafana/grafana-enterprise container_name: grafana restart: unless-stopped ports: - 3000:3000 prometheus: image: prom/prometheus:latest container_name: prometheus restart: unless-stopped volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--web.enable-lifecycle' ports: - 9090:9090 networks: - monitoring В примере выше указан путь к корневой папке с которой будет запущен docker-compose файл. Для Prometheus необходимо указать папку в которой будет располагаться файл конфигурации ``prometheus.yml``. Пример файла приведен в разделе :ref:`prometheus_config`. После этого нужно вернуться на уровень выше, где находится файл ``docker-compose.yml`` и выполнить установку командой: .. code-block:: bash docker-compose up -d После установки Prometheus будет доступен по адресу http://ip:9090 .. _prometheus_access: .. figure:: img/prometheus_access.jpg :align: center :alt: Доступ Prometheus Доступ Prometheus Веб интерфейс Grafana будет доступен по адресу http://ip:3000. Для авторизации необходимо ввести логин ``viewer`` и пароль ``viewer``. .. _grafana_auth: .. figure:: img/grafana_auth.jpg :align: center :alt: Авторизация в Grafana Авторизация в Grafana