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-подключение с Cacti сервера на клиента
1 |
# mysql -u cactipercona -psecret -h <IP-address-client> |
С помощью скрипта
1 |
# sudo -u cacti /usr/bin/php -q /usr/share/cacti/scripts/ss_get_mysql_stats.php --user cactipercona --pass secret --host <IP-address-client> --items ku,kv,kw,ig,ih,kq,kr,ks,kt,km,kn,ko,kp,jl,jm,js,jt |
1 |
ig:40 ih:36385 jl:124 jm:27275552 js:4849 jt:33554432 km:0 kn:86 ko:0 kp:1753 kq:7 kr:444 ks:8715 kt:1113 ku:2035 kv:266 kw:20 |
4.Изменение параметров по умолчанию для mysql-подключения
Если необходимо изменить определенные параметры ,то изменять непосредственно в скрипте не лучшее решение т.к. при обновлении скрипта Ваши настройки будут перезаписаны
Поэтому в каталоге /etc/cacti создаем пользователський файл с настройками
Например, для изменения настроек в файле /usr/share/cacti/scripts/ ss_get_mysql_stats.php
Создаем файл /etc/cacti/ss_get_mysql_stats.php.cnf и переопределяем в нем необходимые настройки.
В данном случае логин и пароль mysql-пользователя, под которым буд происходить подключение с Cacti сервера на сервера, с которых необходимо снимать статистику.
1 |
# nano /etc/cacti/ss_get_mysql_stats.php.cnf |
1 2 3 |
<?php $mysql_user = 'cactipercona'; $mysql_pass = 'secret'; |
1 |
# chown cacti /etc/cacti/ss_get_mysql_stats.php.cnf |
5.Импортирование шаблона, создание графиков
У меня используется spine вместо cmd.php и частота запуска определена как 60 секунд (вместо дефолтных 300 секунд).Поэтому перед импортированием шаблона от Percona, в котором также используется 300 секунд, необходимо изменить частоту запуска на 60 секунд.
Создаем свой шаблон на базе существующего с изменением poller-интервала с 300 секунд на 60 секунд
1 |
# cd /<path_to_percona_monitoring_plugins>/cacti/bin/ |
1 |
# ./pmp-cacti-template --script ../scripts/ss_get_mysql_stats.php --poll_interval 60 ../definitions/mysql.def > cacti_host_template_percona_mysql_server_poll_interval_60.xml |
После чего импортируем вновь созданный шаблон
Добавляем мониторинг Mysql к проверяемому хосту
1 |
Console->Device->Servername->Host Template->Percona MySQL Server HT->Save |
Создаем графики
1 |
Console->Device->Servername->Create Graphs for this host-> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
Percona InnoDB Adaptive Hash Index GT Percona InnoDB Buffer Pool Activity GT Percona InnoDB Buffer Pool Efficiency GT Percona InnoDB Buffer Pool GT Percona InnoDB Buffer Pool GT Percona InnoDB Checkpoint Age GT Percona InnoDB Current Lock Waits GT Percona InnoDB I/O GT Percona InnoDB I/O Pending GT Percona InnoDB Insert Buffer GT Percona InnoDB Insert Buffer Usage GT Percona InnoDB Internal Hash Memory Usage GT Percona InnoDB Lock Structures GT Percona InnoDB Log GT Percona InnoDB Memory Allocation GT Percona InnoDB Row Lock Time GT Percona InnoDB Row Lock Waits GT Percona InnoDB Row Operations GT Percona InnoDB Semaphore Wait Time GT Percona InnoDB Semaphore Waits GT Percona InnoDB Semaphores GT Percona InnoDB Tables In Use GT Percona InnoDB Transactions Active/Locked GT Percona InnoDB Transactions GT Percona MyISAM Indexes GT Percona MyISAM Key Cache GT Percona MySQL Binary/Relay Logs GT Percona MySQL Command Counters GT Percona MySQL Connections GT Percona MySQL Files and Tables GT Percona MySQL Handlers GT Percona MySQL Network Traffic GT Percona MySQL Processlist GT Percona MySQL Query Cache GT Percona MySQL Query Cache Memory GT Percona MySQL Query Response Time (Microseconds) GT Percona MySQL Query Time Histogram (Count) GT Percona MySQL Replication GT Percona MySQL Select Types GT Percona MySQL Sorts GT Percona MySQL Table Locks GT Percona MySQL Temporary Objects GT Percona MySQL Threads GT Percona MySQL Transaction Handler GT |
Примеры графиков
https://www.percona.com/doc/percona-monitoring-plugins/1.1/cacti/mysql-templates.html#mysql-templates-user-privileges
Источники:
https://www.percona.com/doc/percona-monitoring-plugins/1.1/cacti/mysql-templates.html#mysql-templates-user-privileges
https://www.percona.com/doc/percona-monitoring-plugins/1.1/cacti/customizing-templates.html