BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Grafana: архитектура, источники данных и визуализация » Архитектура хранения данных и подключение Datasources Grafana

Архитектура хранения данных и подключение Datasources Grafana

Современная архитектура Grafana строится вокруг разделения метаданных и логики доступа к внешним хранилищам данных. Grafana хранит ваши дашборды, параметры пользователей, настройки организации и конфигурации оповещений, однако сами данные для визуализации остаются в внешних источниках: Prometheus, PostgreSQL, ClickHouse и Elasticsearch. Основная задача Grafana в этом контексте - обеспечить единый, консистентный слой доступа к нескольким источникам данных, унифицировать модель запросов и предоставить эффективную интеграцию через плагин-архитектуру. Понимание этой архитектуры способствует предсказуемой конфигурации, масштабируемости и безопасной эксплуатации, особенно в рамках больших инфраструктур и сложных сценариев observability.

Глубокое понимание архитектуры хранения данных помогает принимать решения о размещении данных, способахProvisioning и стратегиях мониторинга. В главе рассматриваются принципы организации хранения внутри Grafana, роль и взаимодействие Datasources, а также типовые паттерны интеграции для Prometheus, PostgreSQL, ClickHouse и Elasticsearch. Рассматриваются вопросы безопасности, репродуцируемости развёртываний и мониторинга доступности источников данных.

  • Краткое содержание главы
  • Архитектура Grafana как слоя доступа к данным и хранение метаданных
  • Подключение Datasources: принципы, протоколы и безопасность
  • Provisioning Datasources и Dashboards: повторяемость развёртываний
  • Безопасность и мониторинг интеграций

     

Архитектура хранения данных Grafana

Графическая модель Grafana состоит из нескольких взаимосвязанных компонентов: сервер Grafana, база данных метаданных и набор плагинов источников данных. В контексте хранения данных ключевые идеи такие:

  • Grafana Store: здесь хранятся дашборды, панели, настройки пользователей, роли, оповещения и конфигурации организаций. Эти данные занимают небольшой объём относительно самих временных рядов или логов и требуют высокой доступности, но не требуют быстрого хранения больших объёмов. Традиционно для production используются PostgreSQL или MySQL как независимая база данных вместо встроенного SQLite, что обеспечивает устойчивость к нагрузкам и масштабируемость.

  • Хранение источников данных: сами данные не сохраняются в Grafana. Вместо этого Grafana хранит конфигурацию Datasource, включая URL, схему аутентификации и дополнительные параметры. Конкретные данные остаются в внешних системах: Prometheus, PostgreSQL, ClickHouse, Elasticsearch. Плагин-источник данных отвечает за формирование запросов к источнику и перевод их в понятный Grafana формат визуализации.

  • Архитектура плагинов и запросов: Grafana предоставляет универсальный механизм плагинов Datasource. Через него запросы конвертируются в нативный язык целевого источника и отправляются по сети. Результаты возвращаются Grafana для построения визуализации. Такой подход обеспечивает независимость от конкретного источника и позволяет добавлять новые источники без радикального рефакторинга основного кода.

  • Provisioning как источник достоверности: повторяемость развёртываний достигается за счёт provisioning-файлов. Через них можно автоматически создавать Datasource, Dashboards и перемещать их между окружениями (dev/stage/prod). Это критически важно для крупных проектов и CI/CD процессов.

  • Безопасность метаданных и доступ: данные о пользователях и правах доступа хранятся в Grafana DB, а сами credentials к источникам данных - либо в Grafana DB (зашифрованы), либо в секрет-менеджерах/Vault через конфигурации provisioning. Важно разграничение прав: пользователи могут просматривать данные только через разрешённые Datasource и соответствующие дашборды.

Эта архитектура обеспечивает гибкость: мы можем объединять разные источники данных в единой среде визуализации, сохраняя при этом независимость хранения и управления данными каждого источника. В практическом плане это означает, что:

  • Любая панель на дашборде выполняет запрос к одному Datasource;
  • Метаданные дашбордов и конфигурации Datasource управляются отдельно и могут разворачиваться независимо;
  • Для повторяемости развёртываний следует активно использовать provisioning.

Разумная схема взаимодействий в текстовом виде выглядит так: пользователь инициирует действие через UI Grafana → сервер Grafana обрабатывает запрос и обращается к базе метаданных за соответствующими объектами (дашборды, панели, Datasource) → плагин Datasource формирует запрос к внешнему источнику данных и возвращает результат Grafana → визуализация отображает данные. В механизмах кэширования Grafana оперирует на уровне плагинов или источников данных; конкретная реализация кэширования зависит от используемого источника данных и конфигурации плагина.

 

Роли данных и протоколов

  • Протокол взаимодействия с Grafana: HTTP/HTTPS, REST-API для администрирования и доступа к данным. Это облегчает интеграцию с CI/CD и автоматизацией.

  • Протоколы внешних источников:

    • Prometheus: HTTP API, поддержка PromQL. В Grafana используется через Datasource Prometheus; запросы состоят из временных диапазонов и метрик, конвертируемых в PromQL-подобные выражения.
    • PostgreSQL: SQL-диалекты PostgreSQL; Grafana строит SQL-запросы в рамках временных рядов, предполагая наличие столбца времени и значений.
    • ClickHouse: SQL-подобный язык ClickHouse; поддерживает агрегации по большому объему данных, важна настройка тайм-слота и индексов.
    • Elasticsearch: Elasticsearch Query DSL; поиск по индексам и агрегации, с учётом временной оси и полей типа date.

Важно помнить: при проектировании архитектуры целесообразно выделить сетевые и аутентификационные политики для каждого источника. Привязка Datasource к конкретной сети (например, приватная сеть в Kubernetes) повышает безопасность и уменьшает задержку запросов.

 

Архитектура хранения данных и миграции

  • Миграции схемы Grafana (метаданные, настройки, расширения) происходят через встроенные миграции базы данных. При обновлениях Grafana следует планировать миграцию БД, чтобы сохранить совместимость существующих дашбордов и Datasource.

  • Provisioning обеспечивает репродуцируемость: YAML/JSON/Script-based конфигурации позволяют переносить окружения на разных этапах жизненного цикла проекта. Это снижает риск ручных ошибок и упрощает аудит изменений.

  • Архитектура поддерживает многопроцессорную работу и распределённое развёртывание. В рамках больших инсталляций можно рассмотреть использование внешней базы данных для метаданных (PostgreSQL) и отдельного сервиса для хранения дашбордов и конфигураций.

     

Подключение источников данных: принципы и протоколы

Подключение Datasources - это ключевой элемент консолидации визуализации и аналитики в Grafana. В этом разделе рассматриваются паттерны подключения к основным типам источников данных: Prometheus, PostgreSQL, ClickHouse и Elasticsearch. Основная идея - обеспечить единый механизм аутентификации, настройку доступа, устойчивость к сбоям и предсказуемость задержек при запросах.

  • Общий подход к Datasources: Datasource хранит параметры доступа к внешнему источнику и параметры транзакционной/параллельной обработки запросов. Grafana не дублирует данные источника; он предоставляет механизм запроса, конвертацию параметров и обработку ошибок. Это упрощает поддержку и снижает риск консистентности между источниками данных.

  • Prometheus: основной паттерн** - временные ряды и PromQL. Datasource Prometheus формирует запросы на основе выбратьного временного диапазона, метрик и функций агрегации, затем отправляет их через HTTP API к серверу Prometheus. Преимущество: Prometheus как источник времени и площадка для сбора метрик; Grafana обеспечивает визуализацию и корреляцию между несколькими метриками и уже настроенными алертами.

  • PostgreSQL: Grafana поддерживает подключение к реляционной БД. Данные в PostgreSQL служат как источник времени в рамках таблиц, где критически важны столбцы времени и значения. Grafana строит SQL-запросы с учётом временной оси, фильтров и агрегаций, поддерживает оконные функции и подзапросы. В ходе настройки важно обеспечить правильное индексирование по временным полям и ограничение доступа к данным в рамках ролей.

  • ClickHouse: ориентирован на аналитические нагрузки и масштабируемые агрегации. Grafana использует SQL-диалект ClickHouse и специальные функции времени. Хорошо подходит для больших наборов данных и высоких скоростей выборок, однако следует учитывать задержку на конвертацию и использование специфических функций агрегации.

  • Elasticsearch: ориентирован на полнотекстовый поиск и логи. Grafana через Datasource Elasticsearch строит запросы на основе индексов, с учётом соответствующих полей времени. Важна настройка time field и точность маппинга полей для корректной визуализации.

     

Привязка и безопасность Datasources

  • Конфигурации Datasource содержат параметры доступа: URL, порты, схема аутентификации, креды. В продакшене креды не должны храниться в открытом виде. Grafana поддерживает безопасное хранение credentials или их размещение в секрет-менеджерах. Рекомендовано использовать Vault или аналогичные решения для управления секретами.

  • TLS/MTLS: для каждого источника данных следует активировать TLS, в зависимости от инфраструктуры, и валидировать сертификаты. Это особенно критично для удалённых источников и размещения в публичной сети.

  • Разделение по окружениям: настройки Datasource распределяют между dev/stage/prod. Provisioning позволяет поддерживать согласованную конфигурацию между окружениями и минимизировать риск ручной ошибки.

     

Пример provisioning и кэширования

## datasources.yaml - Provisioning Grafana
apiVersion: 1
datasources:
  - **name**: Prometheus
    type: prometheus
    access: proxy
    url: http://prometheus.local:9090
    isDefault: true
    jsonData:
      httpMethod: GET
  - **name**: Postgres-Analytics
    type: postgres
    access: proxy
    url: postgres-bd.local:5432/grafana
    jsonData:
      sslmode: require
    secureJsonData:
      password: SECRET_PASSWORD
      ## other secrets
    database: grafana
## Пример добавления datasource через UI не относится к provisioning, но иллюстрирует концепцию:
## url: https://prometheus.example.net
## access: proxy
## type: prometheus

Эти фрагменты иллюстрируют концепцию: provisioning сдаёт конфигурацию Datasource как код, что позволяет автоматизировать развёртывание и поддерживать консистентность между окружениями.

 

Provisioning и безопасность: повторяемость и контроль доступа

Provisioning играет центральную роль в достижении воспроизводимости и auditable-развёртываний. В идеале все Datasource и Dashboards должны быть описаны в конфигурациях и подвержены контролю версий в системе управления кодом. Это позволяет:

  • Воспроизводить окружения без ручного ввода настроек;
  • Обеспечивать единые параметры времени, агрегаций и фильтров в разных средах;
  • Централизованно управлять секретами через секрет-менеджеры, избегая хранения их в открытом виде;
  • Налаживать процесс ревью изменений и откат к предыдущим версиям.

Безопасность реализации Datasources должна охватывать:

  • Роли и разрешения: кто имеет право изменять Datasource и Dashboards, кто может просматривать данные;
  • Шифрование хранимых credentials и защиту от утечки;
  • Мониторинг подключений: журналирование попыток доступа, задержки и ошибки запросов;
  • Механизмы обнаружения аномалий в запросах и ограничение частоты повторяющихся запросов к источнику данных.

     

Практические сценарии внедрения и мониторинга

Размещение Grafana в Kubernetes или иных платформах требует учёта специфики окружения. Основные принципы:

  • Разделение слоёв: Grafana в контейнере, Datasource в виде конфигураций provisioning; источники данных размещаются в отдельной сети или namespace для повышения безопасности.
  • Секреты и конфигурации: креды к источникам хранить в секретах; конфигурацию Datasource держать в provisioning. Это позволяет обновлять креды без пересборки образов.
  • Мониторинг доступности: следует настраивать health checks для источников и наблюдать за задержками между Grafana и внешними источниками. В случае падения источника можно показывать уведомления на дашбордах и автоматически переключаться на соседний источник, если он доступен.

     

Key takeaways

  • Grafana хранит метаданные и конфигурации, связи с внешними источниками данных лежат в Datasource-плагинах; сами данные не копируются в Grafana.
  • Provisioning обеспечивает воспроизводимость и консистентность развёртываний Datasource, Dashboards и конфигураций.
  • Для каждого источника данных применимы разные протоколы и языки запросов: PromQL для Prometheus, SQL-диалекты для PostgreSQL и ClickHouse, Elasticsearch Query DSL для Elasticsearch.
  • Безопасность данных обеспечивается архитектурой доступа, шифрованием credentials и интеграцией с секрет-менеджерами.
  • Мониторинг и observability источников данных критичны: задержки, ошибки и доступность источников напрямую влияют на восприятие дашбордов.
  • Архитектура позволяет объединять данные из нескольких источников в единой панели визуализации, поддерживая согласованность пользовательского опыта.
  • Репродукция окружений и независимость компонентов упрощают миграции, обновления и масштабирование.

     

FAQ

  1. Где Grafana хранит дашборды и настройки пользователей?

Grafana хранит дашборды, панели, настройки пользователей, роли и оповещения в своей базе данных метаданных. По умолчанию это может быть SQLite, но в продакшн-окружениях рекомендуется использовать PostgreSQL или MySQL. Эти данные не включают сами метрики; они относятся к конфигурации визуализации и доступу.

 

  1. Где хранятся учетные данные для Datasources?

Учетные данные к внешним источникам хранятся отдельно от самих данных. Grafana поддерживает хранение credentials в зашифрованном виде внутри его базы данных или в секрет-менеджерах через provisioning. В продакшне предпочтительно использовать секреты и внешние секрет-менеджеры, чтобы не держать пароли в коде.

 

  1. Как происходит provisioning Datasources и Dashboards?

Provisioning осуществляется через конфигурационные файлы (YAML/JSON), которые разворачиваются в окружении Grafana. Эти файлы позволяют автоматически создавать Datasource, Dashboards и папки, обеспечивая идентичность окружений и простую миграцию между dev/stage/prod.

 

  1. Какие режимы работы Datasource наиболее критичны для производительности?

Производительность зависит от конкретного источника данных и конфигурации. Prometheus требует разумной настройки времени хранения и агрегаций, PostgreSQL/ClickHouse - правильной индексации по временным полям и эффективных запросов, Elasticsearch - оптимизации индексов и ограничений на агрегации. Важна настройка тайм-аута, повторных попыток и разумной пагинации результатов.

 

  1. Как обеспечивается безопасность доступа к Datasource?

Важные аспекты: разграничение ролей, шифрование credentials, использование TLS/MTLS для соединений с источниками, аудит изменений и мониторы доступа. Следует избегать открытой передачи параметров доступа в журналах и хранить их исключительно в секретах.

 

  1. Можно ли подключать несколько Prometheus к одному Grafana?

Да. Grafana позволяет создавать несколько Datasource Prometheus, каждую инстанцию Prometheus можно использовать отдельно или как резерв для федерации. В рамках одного дашборда можно смешивать данные из разных источников, если структура метрик совместима с визуализацией.

 

  1. Как Grafana обрабатывает запросы к разным источникам данных внутри одного дашборда?

Каждый панель запрашивает данные у выбранного Datasource. Grafana не переносит данные между источниками внутри одного запроса; он выполняет независимые запросы к каждому источнику и объединяет результаты на уровне визуализации.

 

  1. Какие лучшие практики при миграции Grafana DB и конфигураций Datasource?

Планируйте миграции через provisioned конфигурации и инструмент контроля версий. Применяйте миграцию БД Grafana заранее и тестируйте обновления в staging окружении. Разделяйте окружения и держите креды в секретах. Регулярно делайте резервное копирование БД метаданных Grafana.

 

  1. Какие ограничения стоит учитывать при использовании ClickHouse и Elasticsearch в Grafana?

ClickHouse отлично подходит для больших аналитических нагрузок, но важно учитывать специфику диалекта SQL и агрегаций. Elasticsearch хорошо для логов и полнотекстовых запросов, но требует корректной настройки индексов и полей времени. В обоих случаях внимайте задержкам, индексации и настройкам агрегаций.

 

  1. Как проверить здоровье Datasource в Grafana?

Проверяйте доступность источника данных через тест подключения в разделе Datasource, смотрите логи Grafana и мониторы времени отклика. Настройка тайм-аута, повторных попыток и политики retry помогает быстро обнаруживать проблемы и минимизировать влияние на пользователей.

 

Эта глава охватывает критические аспекты архитектуры хранения данных Grafana и подключения Datasources. Правильно спроектированная конфигурация обеспечивает устойчивую работу дашбордов, масштабируемость визуализации и безопасное управление доступом к данным.

← Предыдущая статья
Обзор источников данных: Prometheus, PostgreSQL, ClickHouse, Elastic
Следующая статья →
Развертывание Grafana: локально, в дата-центре и в облаке

 

Узнать стоимость решенияЗапросить видео презентацию

Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Ручная обработка заявок на займы в МФО ДоброЗайм была малоэффективной и приводила к высоким затратам по ФОТ отдела верификации и андеррайтинга. При этом время обработки заявок было высоким, как и количество ошибок под влиянием человеческого фактора. Дополнительные сложности создавал сложный документооборот, обусловленный неконсолидированной кредитной историей и скоринговой оценкой. Все это суммарно мешало масштабированию бизнеса МФО.

  • «Синтека» — ведущий разработчик инновационных сервисов для строительной отрасли, который решает ключевые задачи автоматизации службы снабжения строительных компаний.

  • MoneyCare — кредитная платформа и сервис для ПОС-кредитования в магазинах, установленная в более чем 18 тысячах трейдинговых точек и сотрудничающая с 11 главными банками России.

  • Компания «Бизон-Трейд» является официальным дилером ведущих мировых производителей сельскохозяйственной техники (Fendt, Valtra, Lemken и др.) на Юге России. Входит в состав агрохолдинга «Бизон», основанного в 1994 году. Имеет 8 филиалов в Краснодарском и Ставропольском краях, Ростовской области.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.