概述
操作系统及MySQL数据库的实时性能状态数据尤为重要,特别是在有性能抖动的时候,这些实时的性能数据可以快速帮助你定位系统或MySQL数据库的性能瓶颈,那么有哪些重要的实时性能状态指标可以反应出系统和MySQL数据库的性能负载呢?
doDBA tools是什么?
doDBA tools是一个基于控制台的远程监控工具,它不需要在本地/远程系统上安装任何软件,它可以实时收集操作系统、 MySQL 、InnoDB的实时性能状态数据,并可以生成Doing日志文件,来帮助你快速了解/优化系统及 mysql 数据库。
特点:
- golang 语言开发。
- 可收集 Linux 、MySQL相关性能数据。
- 可本地或 远程 收集,可多台。
- 提供类似Linux top的mytop的功能。
- 基于并发生成 Doing日志 ,还原现场。
- 可记录到日志文件
doDBA tools 工作原理
远程收集系统信息是通过ssh(需提供用户名和密码)的方式连接到远程服务器上收集,收集的方法都是通过读取Linux的proc下的等meminfo,diskstats, uptime ,net, vmstat ,cpuinfo ,loadavg等文件,这和pmm, zabbix 收集方式一致。
远程收集MySQL信息是通过 MySQL tcp连接到MySQL数据库上收集,只需要授予连接用户PROCESS、SELECT权限即可。
系统信息和MySQL信息的收集可以分离,如果只想收集系统信息,只需要提供系统用户名密码即可,如果只收集MySQL可以只提供MySQL连接信息,如果是rds用户,可以使用-rds参数,在使用mytop时会自动忽略系统信息的收集。
Download:
wget --no-check-certificate wget --no-check-certificate
chmod +x doDBA
下载下来就可以直接使用,不依赖于任何环境。
部署安装dodba
安装包地址:/opt/dodba
[root@node1 dodba]# tar -xvf dodba_tools-master.tar.gz dodba_tools-master/ dodba_tools-master/log.log dodba_tools-master/README.md dodba_tools-master/dodba.log dodba_tools-master/1015065123_dodba_mysql_20170509.log dodba_tools-master/1015065123_dodba_mysql_20170510.log dodba_tools-master/doDBA.conf dodba_tools-master/doDBA [root@node1 dodba]# cd dodba_tools-master [root@node1 dodba_tools-master]# ll 总用量 1214384 -rw-r--r-- 1 root root 213606 5月 9 22:53 1015065123_dodba_mysql_20170509.log -rw-r--r-- 1 root root 68977 5月 10 01:08 1015065123_dodba_mysql_20170510.log -rwxrwxrwx 1 root root 6252482 1月 9 18:21 doDBA -rw-r--r-- 1 root root 120 5月 8 15:48 doDBA.conf -rw-r--r-- 1 root root 1236965951 5月 22 14:21 dodba.log -rw-r--r-- 1 root root 1928 5月 8 21:07 log.log -rw-r--r-- 1 root root 5107 1月 9 18:21 README.md [root@node1 dodba_tools-master]# ./doDBA -h 192.168.10.2 --mysql 2017/05/28 02:56:13 Error opening connection to database:Error 1045: Access denied for user 'root'@'192.168.10.2' (using password: YES) [root@node1 dodba_tools-master]# service mysql status MySQL running (2559) [确定]
修改配置文件doDBA.conf
使用实例
1、dodba监控mysql性能
./doDBA -h 192.168.10.2 --mysql
2、dodba监控系统性能
./doDBA -h 192.168.10.2 --sys
3、开启Doing功能(很重要)
使用【-t】参数可以基于Threads_running的数量设置阈值,设置后可记录「processlist,engine innodb status」信息到dodba.log日志中,重现现场。
$ ./doDBA -h=192.168.10.2 -mysql -t=3
在Oracle数据库中提供了「AWR,ASH,SQL Monitor」等众多诊断工具,可以一眼望穿数据库正在做什么,甚至都可以知道在过去30天内任何一个时间区间的性能负载和当时数据库正在做什么。但是在MySQL中虽然有像「zabbix,PMM」等优秀的监控工具,但它们只能反映数据库历史的一些性能数据曲线,如果想看mysql比较详细的信息,还是比较推荐这款工具。
这个是之前写的笔记了,所以可能一些信息老了一点。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~