Алгоритм действий состоит из следующих шагов: 1.Создание пользователя с необходимымы привилегиями для сбора метрик с mysql 2.Запуск MySQL-экспортера для сбора метрик с MySQL и отдачи их Prometheus-у 3.Настройка Prometheus-а для сбора метрик с MySQL-экспортера 4.Импортирование/настройка dashboard Grafana для визуализации метрик 5.Настрйка правил Prometheus для мониторинга MySQL показателей Описание параметров, которые испоьзуются для поcтроения дашбоарада в […]
Записи с меткой ‘mysql’
Раздельные файлы для таблиц InnoDB в MySQL
Останавливаем MySQL и делаем бекап файлов/каталогов MySQL
1 |
# /etc/init.d/mysql stop |
1 |
# cp -pra /var/lib/mysql /var/lib/mysql-back |
Запускаем MySQL и создаем бекап всех баз данных
1 |
# /etc/init.d/mysql start |
1 |
# mysqldump -EKR --single-transaction --all-databases > /root/dump.sql |
Создаем SQL файл drop.sql для удаления всех баз данных за исключением базы данных mysql и information_schema
1 |
# mysql -e "SELECT DISTINCT CONCAT ('DROP DATABASE ',TABLE_SCHEMA,' ;') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA <> 'mysql' AND TABLE_SCHEMA <> 'information_schema';" | tail -n+2 > /root/drop.sql |
Проверяем,что файл drop.sql содержит корректные имена баз данных( и не содержит баз данных mysql и information_schema)
1 |
# less /root/drop.sql |
Выполняем удаление […]
Мониторинг MySQL в Zabbix средствами Percona Monitoring Plugins
1.Настройка Zabbix-агента
1 |
# mkdir -p /var/lib/zabbix/percona |
Скачиваем архив,распаковываем и копируем каталоги scripts и templates из распакованного архива в /var/lib/zabbix/percona/ https://www.percona.com/downloads/percona-monitoring-plugins/
1 |
# cd /var/lib/zabbix/percona/ |
1 |
# wget https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-monitoring-plugins-1.1.6.tar.gz |
1 |
# tar xvzf percona-monitoring-plugins-1.1.6.tar.gz |
1 |
# cp -r percona-monitoring-plugins-1.1.6/zabbix/scripts /var/lib/zabbix/percona/ |
1 |
# cp -r percona-monitoring-plugins-1.1.6/zabbix/templates /var/lib/zabbix/percona/ |
1 |
# rm -rf percona-monitoring-plugins* |
Проверяем название файла, который подключается в основном конфигурационном файле агента
1 |
# grep -i 'Include' /etc/zabbix/zabbix_agentd.conf | grep -v '^#' |
1 |
Include=/etc/zabbix/zabbix_agentd.d/ |
Копируем файл конфигурации агента для мониторинга mysql, перезапускаем агента
1 |
# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/ |
1 |
# service zabbix-agent restart |
На клиенте создаем пользователя с паролем к доступу ко […]
Настройка мониторинга MySQL в Nagios средствами Percona Monitoring Plugins
1.Установка Percona Nagios Monitoring Plugins на Nagios-сервере (будет использоваться удаленное подключение к MySQL для снятия статистики) (в случае использования NRPE эти плагины необходимо установить на каждом клиенте, который будет мониториться)
1 |
# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm |
1 |
# yum install percona-nagios-plugins |
1 |
Plugins are installed to /usr/lib64/nagios/plugins |
2.Создание файла с учетными данными пользователя для удаленного доступа
1 |
# mkdir /etc/nagios/ |
1 |
# nano /etc/nagios/mysql.cnf |
1 2 3 |
[client] user = nagiosuser password = nagiospassword |
1 |
# chown root:nagios /etc/nagios/mysql.cnf |
1 |
# chmod 640 /etc/nagios/mysql.cnf |
3.Создание пользователя с необходимыми привилегиями
1 |
mysql>grant PROCESS, SUPER, REPLICATION CLIENT on *.* to nagiosuser@'<IP-address-Nagios-server>' identified by 'nagiospassword'; |
[…]
Настройка мониторинга MySQL в Nagios
1.Установка необходимых пакетов
1 |
# yum install perl-Nagios-Plugin perl-Switch |
2.Скачивание и загрузка скрипта/плагина mysql_health_check.pl в папку с плагинами(например, в /usr/lib64/nagios/plugins/) Последняя версия доступна на GitHub
1 |
https://github.com/palominodb/PalominoDB-Public-Code-Repository/tree/d94b6cef297cc9eb6a98e57390f612a0232d7c0c |
Или с моего сайта(скорее всего уже устаревшая) здесь
1 |
# chmod 755 /usr/lib64/nagios/plugins/mysql_health_check.pl |
Просмотр синтаксиса/опций
1 |
# /usr/lib64/nagios/plugins/mysql_health_check.pl --help | less |
3.Создание файла с описанием команд Первая команда — check-mysql использует стандартный/штатный скрипт, который идет в комплекте с Nagios-плагинами и отображает […]
Настройка мониторинга MySQL в Cacti средствами Percona Monitoring Plugins
1.Копируем скрипт ss_get_mysql_stats.php в папку <path_to_Cacti>/scripts/
1 |
# cp percona-monitoring-plugins-1.1.5/cacti/scripts/ss_get_mysql_stats.php /usr/share/cacti/scripts/ |
1 |
# chmod +x /usr/share/cacti/scripts/ss_get_mysql_stats.php |
2.Разрешаем на клиенте MySQL-подключение с Cacti-сервера
1 |
# nano /etc/my.cnf |
1 2 |
#bind_address = 127.0.0.1 bind_address = 0.0.0.0 |
1 |
# service mysql restart |
1 |
# netstat -nlpt | grep mysql |
1 |
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 20359/mysqld |
Настройка firewall
1 |
# iptables -N mysql |
1 |
# iptables -A INPUT -p tcp --dport 3306 -j mysql |
1 |
# iptables -A mysql -s <IP-address-Cacti-server> -j ACCEPT |
1 |
# iptables -A mysql -j LOG --log-prefix "input mysql: " |
1 |
# iptables -A mysql -j DROP |
Или просто (подразумевается,что политика по умолчанию для цепочки INPUT установлена в DROP)
1 |
# iptables -A INPUT -p tcp --dport 3306 -s <IP-address-Cacti-server> -j ACCEPT |
Создаем пользователя с необходимыми правами, который будет подключаться с Cacti-сервера
1 |
mysql> GRANT SUPER, PROCESS ON *.* TO 'cactipercona'@'%' IDENTIFIED BY "secret"; |
1 |
mysql> flush privileges; |
3.Тестируем mysql-подключение […]
Установка и использование Percona XtraBackup
1.Установка Percona XtraBackup Centos
1 |
# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm |
1 |
# yum install percona-xtrabackup |
Ubuntu Импортируем публичный GPG-ключ
1 |
# apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A |
Добавляем репозитарий Percona
1 |
# echo "deb http://repo.percona.com/apt "$(lsb_release -sc)" main" | tee /etc/apt/sources.list.d/percona.list |
Проверяем,что добавился новый репозитарий
1 |
# cat /etc/apt/sources.list.d/percona.list |
1 |
deb http://repo.percona.com/apt trusty main |
Обновляем локальный кеш и устанавливаем пакет
1 |
# apt-get update && apt-get install percona-xtrabackup |
Также можно скачать конкретную версию Percona XtraBackup для требуемой операционной системы с официального сайта Percona
1 |
https://www.percona.com/downloads/XtraBackup/ |
Update: Установка XtraBackup-2.4 на Ubuntu/Debian
1 |
# wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb |
1 |
# dpkg -i percona-release_0.1-4.xenial_all.deb |
1 |
# apt-get update |
1 |
# apt-get install percona-xtrabackup-24 |
[…]
Установка и использование Percona Toolkit
Установка Percona Toolkit Debian/Ubuntu
1 |
# wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb |
1 |
# dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb |
1 |
# apt-get update |
1 |
# apt-get install percona-toolkit |
Centos
1 |
# yum install perl-IO-Socket-SSL perl-Digest-MD5 perl-TermReadKey |
1 |
# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm |
1 |
# yum install percona-toolkit |
1 |
pt-variable-advisor |
Анализ переменных MySQL(на основе SHOW VARIABLES) и вывод рекомендаций
1 |
# pt-variable-advisor localhost |
1 |
pt-query-digest |
Анализ slow-log,списка процессов(show processlist) или tcpdump 1)Отчет самых медленных запросов из файла
1 |
# pt-query-digest /var/log/mysql/mysql-slow.log |
2)Отчет самых медленных запросов из списка процессов
1 |
# pt-query-digest --processlist h=127.0.0.1 |
Либо через анализ tcpdump
1 |
# tcpdump -s 65535 -x -nn -q -tttt -i any -c 10 port 3306 > mysql.tcp.txt |
1 |
# pt-query-digest --type tcpdump mysql.tcp.txt |
1 |
pt-ioprofile |
Просмотр […]
Установка и настройка Percona XtraDB Cluster на Centos7/Ubuntu14
Разработчик продукта рекомендует использовать минимум 3 ноды для создания кластера(причины описаны в статье). С целью знакомства с этим продуктом использовалось две ноды на виртуальных машинах. 1.Установка Percona XtraDB Cluster Centos
1 |
# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm |
Подключаем EPEL-репозитарий(если он еще не был подключен)
1 |
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm |
Устанавливаем пакет, необходимій для Percona XtraDB Cluster
1 |
# yum install socat |
Устанавливаем PXC
1 |
# yum install Percona-XtraDB-Cluster-56 |
Отклчаем SELinux, если он […]
Запуск двух MySQL-копий на одном сервере на Ubuntu
1.Создаем отдельные каталоги для баз данных и логов для второй копии MySQL
1 |
# mkdir /var/lib/mysql2 |
1 |
# chown -R mysql:mysql /var/lib/mysql2 |
1 |
# mkdir /var/log/mysql2 |
1 |
# chown -R mysql:mysql /var/log/mysql2 |
2.Создаем новый конфигурационный файл для второй копии MySQL
1 |
# cp -R /etc/mysql /etc/mysql2 |
1 |
# cd /etc/mysql2 |
1 |
# sed -i 's/3306/3307/g' my.cnf |
1 |
# sed -i 's/mysqld.sock/mysqld2.sock/g' my.cnf |
1 |
# sed -i 's/mysqld.pid/mysqld2.pid/g' my.cnf |
1 |
# sed -i 's|/var/lib/mysql/|/var/lib/mysql2/|g' my.cnf |
1 |
# sed -i 's|/var/log/mysql/|/var/log/mysql2/|g' my.cnf |
3.Настройка apparmor на Ubuntu для корректного создания/инициализации второй копии MySQL
1 |
# apt-get install apparmor-utils |
1 |
# aa-complain /usr/sbin/mysqld |
4.Инициализация/создания баз данных второй копии MySQL
1 |
# mysql_install_db --user=mysql --datadir=/var/lib/mysql2/ |
1 |
# ls -al /var/lib/mysql2/ |
[…]