卢飞-golang-基于控制台的远程监控工具,不需要在本地/远程系统上安装任何软件,下载即可直接使用,不依赖于任何环境。
远程收集系统信息:通过ssh连接到远程服务器,读取proc下meminfo、diskstats、uptime、net、vmstat、cpuinfo、loadavg等文件; 远程收集mysql信息:通过tcp连接到mysql数据库上收集,只需要授权连接用户process、select即可;
收集内容:
cpu、memory、swap、net、IO
processlist、locks、threads、slow query
reads、writes、innodb_buffer_pool_pages
network、usage、openfile/table、connection、qps、tps
wget https://raw.githubusercontent.com/dblucyne/dodba_tools/master/doDBA --no-check-certificate
wget https://raw.githubusercontent.com/dblucyne/dodba_tools/master/doDBA.conf --no-check-certificate
chmod +x doDBA
vim doDBA.conf
{
"Host":"",
"Huser": "",
"Hport": "",
"Hpwd": "",
"Muser": "sysbench",
"Mpwd": "dodba",
"Mport": "3306"
}
Linux:
groupadd dodba
useradd dodba -g dodba
echo xxxx | passwd dbdba --stdin
MySQL:
create user dodba@'xxx.xxx.xxx.%' identified by 'dodba';
grant select,process on *.* to dodba@'xxx.xxx.xxx.%';
./doDBA -help
-help # 显示帮助
-c string # 指定配置文件 (default "doDBA.conf")
-h string # 连接的 host/IP
-sys # 打印Linux的信息
-myall # 打印Linux和MySQL的信息
-mysql # 打印MySQL的信息
-innodb # 打印InnoDB存储引擎的信息
-mytop # 打印MySQL processlist,类似top
-i <duration> # 刷新间隔的秒数 (默认1s)
-t <int> #当MySQL Threads_running到达阈值时会输出 show processlist和showengine innodb status到dodba.log中 (默认50)
-hP <string> # 主机端口 (默认 "22")
-hp <string> # 主机密码
-hu <string> # 主机用户 (默认 "root")
-mP <string> # MySQL端口 (默认 "3306")
-mp <string> # MySQL密码
-mu <string> # MySQL用户
-rds # 忽略Linux信息
-log # 按照日期输出到日志文件
-nocolor # 不加颜色输出
经过实际测试,一个doDBA 进程同时只能配置一个数据源参数,配置2个及以上时,只能生效一个,说明参数有优先级的区别。
优先级如下:
mysql > innodb > myall > sys
收集MySQL及Linux性能数据
./doDBA -h=10.1.x.xx -myall
收集Linux性能数据
./doDBA -h=10.1.x.xx -sys
收集MySQL性能数据
./doDBA -h=10.1.x.xx -mysql
收集InnoDB性能数据
./doDBA -h=10.1.x.xx -innodb
收集到日志文件
./doDBA -h=10.1.x.xx -mysql -log
开启Doing功能
使用【-t】参数可以基于Threads_running的数量设置阈值,设置后可记录「processlist,engine innodb status」信息到dodba.log日志中,复现现场。
./doDBA -h=10.1.x.xx -myall -t=3
查看Doing日志
tail -f dodba.log
./doDBA -c doDBA.conf -mytop
[root@bj02-test-mysql-22e129e140e73 ~]# ./doDBA -c doDBA.conf -mytop
2020/08/01 16:53:50 Read host failed.
[root@bj02-test-mysql-22e129e140e73 ~]# ./doDBA -h 22.129.140.73 -mytop
2020/08/01 16:54:41 dial tcp 22.129.140.73:22: getsockopt: connection refused
mysql-status
qps —— Com_select
tps —— Com_insert + Com_update + Com_delete
ins —— Com_insert
upd —— Com_update
del —— Com_delete
threads
run —— Threads_running
con —— Threads_connected
cre —— Threads_created
cac —— Threads_cached
slow
sql —— Slow_queries
tmp —— Created_tmp_tables
dtmp —— Created_tmp_disk_tables
bytes
recv —— Bytes_received
send —— Bytes_sent
locks
lockI —— Table_locks_immediate
lockW —— Table_locks_waited
openT —— Open_tables
openF —— Open_files
有疑问加站长微信联系(非本文作者)