Thank you for reading this post, don't forget to subscribe!
Считаем, что у нас установлена и настроена система мониторинга Prometheus, ее компоненты node_exporter
и mysqld_exporter
, а также Grafana для отображения метрик и создания дашбордов.
Percona предлагает использовать целый набор предустановленных дашбордов, который находится в открытом доступе здесь. Сразу стоит отметить, что часть этих дашбордов будут работать только если вы используете Percona Server версии > 5.5.10.
Далее необходимо убедиться, что в MySQL у вас включены (=ON) переменные:
userstat
query_response_time_stats
и mysqld_exporter
запущен с дополнительными ключами:
-collect.info_schema.query_response_time=true
-collect.info_schema.tables=true
-collect.info_schema.tablestats=true
-collect.auto_increment.columns=true
-collect.binlog_size=true
-collect.info_schema.processlist=true
-collect.info_schema.userstats=true
С помощью следующих запросов выставляем необходимые права пользователю, который определен в переменной DATA_SOURCE_NAME
компонента mysqld_exporter
:
1 2 3 |
<span class="hljs-keyword">GRANT</span> <span class="hljs-keyword">REPLICATION</span> <span class="hljs-keyword">CLIENT</span>, PROCESS, SUPER, <span class="hljs-keyword">SELECT</span> <span class="hljs-keyword">ON</span> *.* <span class="hljs-keyword">TO</span> <span class="hljs-string">'prometheus'</span>@<span class="hljs-string">'localhost'</span> <span class="hljs-keyword">IDENTIFIED</span> <span class="hljs-keyword">BY</span> <span class="hljs-string">'ПАРОЛЬ'</span>; <span class="hljs-keyword">GRANT</span> <span class="hljs-keyword">SELECT</span>, <span class="hljs-keyword">UPDATE</span>, <span class="hljs-keyword">DELETE</span>, <span class="hljs-keyword">DROP</span> <span class="hljs-keyword">ON</span> performance_schema.* <span class="hljs-keyword">TO</span> <span class="hljs-string">'prometheus'</span>@<span class="hljs-string">'localhost'</span>; |
Предустановленные дашборды в своих настройках используют метку alias
для работы с несколькими хостами. Убедитесь, что в конфигурационном файле /etc/prometheus/prometheus.yml
вы тоже ее используете, например:
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 |
... - job_name: 'mysql' scrape_interval: "5s" honor_labels: true target_groups: - targets: ['localhost:9104'] labels: alias: 'db1' ... |
[/codesyntax]
В конце конфигурационного файла /etc/grafana/grafana.ini
необходимо раскомментировать следующие строки:
1 2 3 4 5 |
... [dashboards.json] enabled = <span class="hljs-literal">false</span> path = <span class="hljs-regexp">/var/lib</span><span class="hljs-regexp">/grafana/dashboards</span> |
Устанавливаем дашборды:
1 2 3 |
git <span class="hljs-built_in">clone</span> <a class="vglnk" href="https://github.com/percona/grafana-dashboards.git" rel="nofollow">https://github.com/percona/grafana-dashboards.git</a> cp -r grafana-dashboards/dashboards /var/lib/grafana/ |
Перезапускаем Grafana:
1 2 |
service grafana-server restart |
В репозитории Percon’ы существуют также готовые docker-образы с настроенной связкой Prometheus и Grafana.