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

23.06.2026 ≈ 4 минуты. 7 показов 1 дочитывание
Финальный результат может выглядеть например так
2026-06-23_20-00.jpg

Или вот так
2026-06-23_20-00_1.jpg

Или иначе, вариантов множество.

Бывает что на сайте собираются какие-то данные, по которым хочется увидеть какую-то статистику и/или графики. Реализовавывать это с помощью php и js долго и сложно вносить изменения. Есть прекрасная альтернатива, с которой можно гибко менять состав дашбордов, учитываемые параметры и варианты отображения не используя программирование - Yandex DataLens

Зарегистрируйтесь в облаке.

Настройки сервера

Чтобы сервис мог получить доступ к данным, необходимо добавить пользователя mysql   
CREATE USER 'yandex_datalens'@'%' IDENTIFIED BY 'moy_password_#2kd2';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'yandex_datalens'@'%';

-- следующая команда может быть использована для изменения пароля 
-- ALTER USER 'yandex_datalens'@'%' IDENTIFIED BY 'moy_novyi_parol_#yMv8*#2kd2';
Теперь выдаем доступ пользователю на конкретную таблицу
GRANT SELECT ON sitemanager.tablica_s_dannymi TO 'yandex_datalens'@'%';
FLUSH PRIVILEGES;
В последнем примере sitemanager - это название базы, в котоой есть таблица tablica_s_dannymi

Проверка выданных прав

Елси необходимо посомтреть на какие таблицы выданы права
SHOW GRANTS FOR 'yandex_datalens'@'%';

Настройка Mysql

Редактируем файл конфигурации 
sudo vi /etc/my.cnf

Убедитесь, что MySQL слушает на всех интерфейсах (если нужно)
[mysqld]
bind-address = 0.0.0.0

Если внесли изменения, нужно перезапустить базу данных

sudo systemctl restart mysqld

Добавление правил в Firewall

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

Вараинт для iptables

# Разрешаем доступ к MySQL (порт 3306) с указанных IPv4 подсетей
sudo iptables -A bx_public -p tcp --dport 3306 -s 178.154.242.176/28 -j ACCEPT -m comment --comment "Yandex Datalens"
sudo iptables -A bx_public -p tcp --dport 3306 -s 178.154.242.192/28 -j ACCEPT -m comment --comment "Yandex Datalens"
sudo iptables -A bx_public -p tcp --dport 3306 -s 178.154.242.208/28 -j ACCEPT -m comment --comment "Yandex Datalens"
sudo iptables -A bx_public -p tcp --dport 3306 -s 178.154.242.128/28 -j ACCEPT -m comment --comment "Yandex Datalens"
sudo iptables -A bx_public -p tcp --dport 3306 -s 178.154.242.144/28 -j ACCEPT -m comment --comment "Yandex Datalens"
sudo iptables -A bx_public -p tcp --dport 3306 -s 178.154.242.160/28 -j ACCEPT -m comment --comment "Yandex Datalens"
sudo iptables -A bx_public -p tcp --dport 3306 -s 130.193.60.0/28 -j ACCEPT -m comment --comment "Yandex Datalens"

# Запрещаем все остальные подключения к MySQL
sudo iptables -A bx_public -p tcp --dport 3306 -j DROP

# Разрешаем доступ с указанных IPv6 подсетей
sudo ip6tables -A INPUT -p tcp --dport 3306 -s 2a02:6b8:c03:500::/112 -j ACCEPT
sudo ip6tables -A INPUT -p tcp --dport 3306 -s 2a02:6b8:c02:900::/112 -j ACCEPT
sudo ip6tables -A INPUT -p tcp --dport 3306 -s 2a02:6b8:c0e:500::/112 -j ACCEPT
sudo ip6tables -A INPUT -p tcp --dport 3306 -s 2a02:6b8:c41:1300::/112 -j ACCEPT

# Запрещаем остальные IPv6 подключения
sudo ip6tables -A INPUT -p tcp --dport 3306 -j DROP

sudo service iptables save
sudo service ip6tables save  # для IPv6

Вариант для firewall-cmd


# Добавляем правила для IPv4
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv4" source address="178.154.242.176/28" port port="3306" protocol="tcp" accept'
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv4" source address="178.154.242.192/28" port port="3306" protocol="tcp" accept'
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv4" source address="178.154.242.208/28" port port="3306" protocol="tcp" accept'
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv4" source address="178.154.242.128/28" port port="3306" protocol="tcp" accept'
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv4" source address="178.154.242.144/28" port port="3306" protocol="tcp" accept'
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv4" source address="178.154.242.160/28" port port="3306" protocol="tcp" accept'
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv4" source address="130.193.60.0/28" port port="3306" protocol="tcp" accept'

# Добавляем правила для IPv6
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv6" source address="2a02:6b8:c03:500:0:f83d:a987:0/112" port port="3306" protocol="tcp" accept'
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv6" source address="2a02:6b8:c02:900:0:f83d:a987:0/112" port port="3306" protocol="tcp" accept'
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv6" source address="2a02:6b8:c0e:500:0:f83d:a987:0/112" port port="3306" protocol="tcp" accept'
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv6" source address="2a02:6b8:c41:1300:0:f83d:a987:0/112" port port="3306" protocol="tcp" accept'

# ---
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=100 family="ipv4" source address="94.253.2.219" port port="3306" protocol="tcp" accept'


# Затем добавляем правило reject для порта
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=1000 family="ipv4" port port="3306" protocol="tcp" reject'
sudo firewall-cmd  --permanent --zone=bx_trusted --add-rich-rule='rule priority=1000 family="ipv6" port port="3306" protocol="tcp" reject'

# Применяем изменения
sudo firewall-cmd --reload


sudo firewall-cmd --zone=bx_trusted --list-rich-rules


Список IP адресов может менться, нужно сверяться с данными из документации - https://yandex.cloud/ru/docs/datalens/concepts/connection/#external-db-connection

Создание графиков в datalens

После того как настройки на стороне сайта сделаны, необходио натсроить подклчюение а облаке в сервисе DataLens.  Подробно все распсиано в документации - https://yandex.cloud/ru/docs/datalens/operations/connection/create-mysql

Для примера выше настройки подклчюени ябудут заданы примерно так
2026-06-23_20-26.jpg

Дальше следуйте документации сервиса, начните с 1 самого простого графика, дальше разобраться будет проще, как только увидите первый результат.


Обратно к списку