Дашборд с показателями в Data Lens на основе данных из базы сайта
23.06.2026
≈ 4 минуты.
7 показов
1 дочитывание
Финальный результат может выглядеть например так
Или вот так
Или иначе, вариантов множество.
Бывает что на сайте собираются какие-то данные, по которым хочется увидеть какую-то статистику и/или графики. Реализовавывать это с помощью php и js долго и сложно вносить изменения. Есть прекрасная альтернатива, с которой можно гибко менять состав дашбордов, учитываемые параметры и варианты отображения не используя программирование - Yandex DataLens
Зарегистрируйтесь в облаке.
Теперь выдаем доступ пользователю на конкретную таблицу
В последнем примере sitemanager - это название базы, в котоой есть таблица tablica_s_dannymi
Убедитесь, что MySQL слушает на всех интерфейсах (если нужно)
Если внесли изменения, нужно перезапустить базу данных
Список IP адресов может менться, нужно сверяться с данными из документации - https://yandex.cloud/ru/docs/datalens/concepts/connection/#external-db-connection
Для примера выше настройки подклчюени ябудут заданы примерно так

Дальше следуйте документации сервиса, начните с 1 самого простого графика, дальше разобраться будет проще, как только увидите первый результат.
Или вот так
Или иначе, вариантов множество.
Бывает что на сайте собираются какие-то данные, по которым хочется увидеть какую-то статистику и/или графики. Реализовавывать это с помощью php и js долго и сложно вносить изменения. Есть прекрасная альтернатива, с которой можно гибко менять состав дашбордов, учитываемые параметры и варианты отображения не используя программирование - Yandex DataLens
Зарегистрируйтесь в облаке.
Настройки сервера
Чтобы сервис мог получить доступ к данным, необходимо добавить пользователя mysqlCREATE 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;
Проверка выданных прав
Елси необходимо посомтреть на какие таблицы выданы права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Для примера выше настройки подклчюени ябудут заданы примерно так

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

