Перейти к содержанию
Innovialabs

Как настроить Metabase для бизнес-дашбордов

Практика3 мин

Коротко

Запустите Metabase в Docker с отдельной PostgreSQL для служебных данных, подключите базу через пользователя только для чтения, соберите вопросы в дашборды, ограничьте доступ группами и настройте рассылку отчётов по расписанию.

Что вы получите

Metabase — open-source BI-инструмент: менеджеры задают вопросы к данным через визуальный конструктор, аналитики пишут SQL, а результаты превращаются в графики и дашборды. Базовая настройка — несколько шагов: запустить контейнер, безопасно подключить базу, собрать первый дашборд, настроить права и подписки.

Шаг 1. Установка в Docker

Для быстрой проверки хватит одной команды:

docker run -d -p 3000:3000 --name metabase metabase/metabase

По умолчанию Metabase хранит свои настройки, пользователей и дашборды во встроенном файле H2 — для продакшена это не рекомендуется. Для реальной работы дайте ему отдельную служебную базу PostgreSQL:

services:
  metabase:
    image: metabase/metabase
    ports:
      - "3000:3000"
    environment:
      MB_DB_TYPE: postgres
      MB_DB_HOST: metabase-db
      MB_DB_PORT: 5432
      MB_DB_DBNAME: metabase
      MB_DB_USER: metabase
      MB_DB_PASS: ${METABASE_DB_PASSWORD}
      JAVA_TIMEZONE: Asia/Tashkent
    depends_on:
      - metabase-db
  metabase-db:
    image: postgres:16
    environment:
      POSTGRES_DB: metabase
      POSTGRES_USER: metabase
      POSTGRES_PASSWORD: ${METABASE_DB_PASSWORD}
    volumes:
      - metabase-db-data:/var/lib/postgresql/data
volumes:
  metabase-db-data:

Затем поставьте его за reverse proxy с HTTPS, откройте сайт и создайте первого администратора. Делайте бэкапы служебной базы: в ней все ваши вопросы и дашборды. Фиксируйте образ на конкретной версии и обновляйтесь осознанно.

Шаг 2. Пользователь только для чтения

Никогда не подключайте Metabase под владельцем базы. Создайте отдельную роль, которая умеет только читать:

CREATE ROLE metabase_ro WITH LOGIN PASSWORD 'use-a-strong-password';
GRANT CONNECT ON DATABASE shop TO metabase_ro;
GRANT USAGE ON SCHEMA public TO metabase_ro;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO metabase_ro;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO metabase_ro;
ALTER ROLE metabase_ro SET statement_timeout = '60s';
  • ALTER DEFAULT PRIVILEGES распространяется на будущие таблицы, но только созданные той ролью, которая выполнила команду. Выполните её от роли, под которой идут миграции.
  • statement_timeout не даст тяжёлому запросу подвесить базу.
  • Ещё лучше — подключаться к реплике для чтения, чтобы отчёты не конкурировали с приложением.
  • Скройте таблицы с персональными и секретными данными (хэши паролей, токены) или вовсе не выдавайте к ним доступ.

В Metabase откройте Admin settings → Databases → Add database и укажите хост и данные пользователя только для чтения. Проверьте часовой пояс отчётов в настройках локализации, чтобы «сегодня» для всех означало один и тот же день.

Шаг 3. Вопросы и дашборды

  • Вопрос (question) — один запрос: через визуальный конструктор (фильтр, агрегация, группировка) или на SQL.
  • Модель (model) — очищенный набор данных (например, «Оплаченные заказы»), на котором другие строят вопросы, с понятными названиями и описаниями колонок.
  • Дашборд — набор вопросов с общими фильтрами (период, город, менеджер), привязанными к нужным колонкам.

Практичный первый дашборд: выручка по дням, количество заказов, средний чек, топ товаров, заказы по статусам. Называйте всё языком бизнеса и добавляйте короткие описания — так цифрам доверяют.

Шаг 4. Права доступа

Metabase управляет доступом через группы:

  • Права на данные определяют, какие базы и таблицы видит группа и может ли она писать SQL.
  • Права на коллекции определяют, кто может смотреть или редактировать сохранённые вопросы и дашборды.

Простая схема: аналитики пишут SQL; менеджеры только смотрят подготовленные коллекции; сырые таблицы с персональными данными не видит никто, кроме администраторов. Уберите лишние права у группы по умолчанию «All Users» — в неё входит каждый пользователь. Часть продвинутых возможностей, например ограничения на уровне строк, есть только в платных редакциях.

Шаг 5. Отчёты на почту по расписанию

  1. В Admin settings → Email настройте SMTP и отправьте тестовое письмо.
  2. Откройте дашборд, выберите Subscriptions, добавьте получателей и расписание (например, каждый понедельник утром).
  3. Для отдельного вопроса настройте alert: Metabase пришлёт сообщение, когда появятся результаты или будет пересечена целевая линия.

Укажите адрес сайта в общих настройках, чтобы ссылки в письмах вели куда нужно.

Частые вопросы

Open-source редакцию можно бесплатно развернуть у себя. Платные тарифы добавляют облачную версию и продвинутые функции, например права на уровне строк и расширенный SSO.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.