DBAtool-doDBA


本文摘自网络,作者,侵删。

卢飞-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

本文来自:简书

感谢作者:胡萝卜苗儿

查看原文:DBAtool-doDBA

相关阅读 >>

手撸Golang Go与微服务 saga模式之2

Go语言基础之基本数据类型

Go Gob

分享一款Golang style语法的Golang orm库

beeGo项目和Go项目 打包部署到linux

Golang 如何类型转换

Go语言操作mysql语言基础知识

Golang怎么判断指针是否为空

Golang基础数据类型字符串

Golang怎么定时任务

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...