Prometheus: еще больше метрик от MySQL-сервера

Apr 4, 2016 21:47 · 224 words · 2 minute read prometheus monitoring

В данной статье узнаем, как максимально быстро начать следить за производительностью MySQL-серверов с помощью системы мониторинга Prometheus и дашбордов Grafana. Давайте разберемся!

Считаем, что у нас установлена и настроена система мониторинга 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:

GRANT REPLICATION CLIENT, PROCESS, SUPER, SELECT ON *.* TO 'prometheus'@'localhost' IDENTIFIED BY 'ПАРОЛЬ';
GRANT SELECT, UPDATE, DELETE, DROP ON performance_schema.* TO 'prometheus'@'localhost';

Предустановленные дашборды в своих настройках используют метку alias для работы с несколькими хостами. Убедитесь, что в конфигурационном файле /etc/prometheus/prometheus.yml вы тоже ее используете, например:

...
 - job_name: 'mysql'
    scrape_interval: "5s"
    honor_labels: true
    target_groups:
      - targets: ['localhost:9104']
        labels:
          alias: 'db1'
...

В конце конфигурационного файла /etc/grafana/grafana.ini необходимо раскомментировать следующие строки:

...
[dashboards.json]
enabled = false
path = /var/lib/grafana/dashboards

Устанавливаем дашборды:

git clone https://github.com/percona/grafana-dashboards.git
cp -r grafana-dashboards/dashboards /var/lib/grafana/

Перезапускаем Grafana:

service grafana-server restart

В репозитории Percon’ы существуют также готовые docker-образы с настроенной связкой Prometheus и Grafana.

tweet Share