<===

ProNotes

2025-12-29 13:43:52
Для Prometheus mysqld_exporter (порт 9104) обычно хватает отдельного малопривилегированного пользователя с глобальными PROCESS/REPLICATION CLIENT и правом SELECT только для служебных схем.

## Базовый вариант прав

Минимально рабочий и при этом относительно безопасный набор для MariaDB/MySQL выглядит так:[1][2][3]

```sql
CREATE USER 'exporter'@'localhost'
  IDENTIFIED BY 'СЛОЖНЫЙ_ПАРОЛЬ'
  WITH MAX_USER_CONNECTIONS 3;

GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'exporter'@'localhost';
GRANT SELECT ON performance_schema.*   TO 'exporter'@'localhost';
GRANT SELECT ON information_schema.*   TO 'exporter'@'localhost';

FLUSH PRIVILEGES;
```

- PROCESS, REPLICATION CLIENT ON *.* нужны экспортеру для чтения глобальных статус‑метрик и репликации.[4][1]
- SELECT на performance_schema и information_schema позволяет собирать почти все стандартные метрики без доступа к пользовательским данным.[5][3][1]

## Упрощённый (но менее «минимальный») вариант

Много гайдов дают более простой, но чуть менее ограниченный GRANT:[6][2][3]

```sql
CREATE USER 'exporter'@'localhost'
  IDENTIFIED BY 'СЛОЖНЫЙ_ПАРОЛЬ'
  WITH MAX_USER_CONNECTIONS 3;

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
FLUSH PRIVILEGES;
```

- Тут SELECT ON *.* даёт чтение всех баз, включая пользовательские таблицы, что может быть нежелательно с точки зрения безопасности.[7][1][6]

## Особенности для MariaDB

- В MariaDB глобальные привилегии (PROCESS, REPLICATION CLIENT и т.п.) обязательно выдавать с `ON *.*`, иначе будет ошибка синтаксиса.[8][1]
- Если включён сбор привилегий пользователей (`--collect.mysql.user.privileges`), экспортеру понадобится SELECT с таблицы `mysql.user`, то есть SELECT на системную базу `mysql.*`, что ещё больше раскрывает данные и включать это стоит только при реальной необходимости.[9][10]

Если скажешь версию MariaDB и какие коллекторы включены в mysqld_exporter, можно подобрать совсем минимальный набор GRANT под твою конфигурацию.

[1](https://github.com/prometheus/mysqld_exporter/issues/622)
[2](https://www.digitalocean.com/community/tutorials/monitoring-mysql-and-mariadb-droplets-using-prometheus-mysql-exporter)
[3](https://dev.to/alighaemia/how-to-set-up-mariadbmysql-exporter-on-galera-cluster-nodes-for-prometheus-monitoring-4b3l)
[4](https://github.com/prometheus/mysqld_exporter/)
[5](https://www.alibabacloud.com/help/en/arms/prometheus-monitoring/permissions-required-for-mysqld-exporter-to-access-mysql-databases)
[6](https://www.robustperception.io/monitoring-mysqld-with-prometheus)
[7](https://severalnines.com/blog/how-monitor-mysql-containers-prometheus-deployment-standalone-and-swarm-part-one/)
[8](https://github.com/prometheus/mysqld_exporter/issues/640)
[9](https://manpages.ubuntu.com/manpages/noble/man1/prometheus-mysqld-exporter.1.html)
[10](https://github.com/prometheus/mysqld_exporter/issues/444)
[11](https://github.com/prometheus/mysqld_exporter)
[12](https://www.alibabacloud.com/help/en/prometheus/developer-reference/permissions-required-for-mysqld-exporter-to-access-mysql-databases)
[13](https://stackoverflow.com/questions/60544399/prometheus-mysql-exporter)
[14](https://www.percona.com/sites/default/files/presentations/Prometheus-MySQL-2101.pdf)
[15](https://www.linkedin.com/pulse/monitoring-mysql-prometheus-grafana-mysqldexporter-satish-sharma)
[16](https://genexdbs.com/prometheus-exporter-for-mysql-and-mongodb-a-complete-guide/)
[17](https://cloudtechservice.com/mysql-monitoring/)
[18](https://isaac-exe.gitbook.io/various-tutorials/tutorials/3.-mysql/3.5-monitoring-db-instances/monitoring-tools/3.-mysql-prometheus-exporter)
[19](https://www.howtoforge.de/anleitung/wie-man-mysql-oder-mariadb-mit-prometheus-und-grafana-uberwacht/)
[20](https://mariadb.com/docs/tools/mariadb-enterprise-operator/metrics)
← Previous Next →
Back to list