標籤:rap ide 開啟 sync usr 系統使用者 ODB 直接 pre
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時會自動忽略系統資訊的收集。
如何使用doDBA?
Github首頁:https://github.com/dblucyne/dodba_tools
wget https://raw.githubusercontent.com/dblucyne/dodba_tools/master/doDBA --no-check-certificatewget https://raw.githubusercontent.com/dblucyne/dodba_tools/master/doDBA.conf --no-check-certificatechmod +x doDBA
下載下來就可以直接使用,不依賴於任何環境。但可以在doDBA.conf設定檔中先把需要設定的資訊填寫好。
{ "Host":"", "Huser": "root", "Hport": "22", "Hpwd": "", "Muser": "root", "Mpwd": "123456", "Mport":"3306"}
使用協助:
$ ./doDBA --helpUsage of ./doDBA: -c string configuration file. (default "doDBA.conf") -h string Connect to host/IP. -hP string Connect host port. (default "22") -help Display this help. -hp string Connect host password. -hu string Connect host user. (default "root") -i duration refresh interval in seconds. (default 1ns) -innodb Print innodb info. -log Print to file by day. -mP string Connect mysql port. (default "3306") -mp string Connect mysql password. -mu string Connect mysql user. -myall Print system and mysql info. -mysql Print mysql info. -mytop Print mysql prcesslist info , like top. -nocolor Print nocolor. -rds Ignore system info. -sys Print system info. -t int mysql trace on Threads_running. (default 50)
使用執行個體
1. 收集Linux效能資料
$ ./doDBA -h=127.0.0.1 -sysDoDBA tools on host 127.0.0.1---------+----load--avg----+-----cpu-usage-----+--swap--+----net----+-----------IO-----------time | 1m 5m 10m| usr sys iow ide| si so| recv send| r/s w/s rb/s wb/s---------+-----------------+-------------------+--------+-----------+------------------------19:23:51 | 1.35 0.72 0.41| 4.2 3.0 3.2 89.6| 0 0|16384.0P16384.0P| 48 2396 768K 69.2M19:23:52 | 1.35 0.72 0.41| 4.8 2.9 3.1 89.2| 0 0|16384.0P16384.0P| 68 2502 1.1M 71.1M
2. 收集MySQL效能資料
$ ./doDBA -h=127.0.0.1 -mysqlDoDBA tools on host 127.0.0.1---------+-------mysql-status-------+-----threads-----+-----slow-----+---bytes---+---------locks----------time | QPS TPS ins upd del| run con cre cac| sql tmp Dtmp| recv send| lockI lockW openT openF---------+--------------------------+-----------------+--------------+-----------+------------------------19:27:32 | 25 11 0 11 0| 3 99 0 6| 0 1 0| 5K 37K| 36 0 538 9319:27:33 | 37 152 13 5 134| 3 99 0 6| 0 5 1| 35K 396K| 216 0 538 9319:27:34 | 39 60 8 8 44| 4 99 0 6| 0 5 0| 26K 220K| 115 0 538 93
3. 收集InnoDB效能資料
$ ./doDBA -h=127.0.0.1 -innodbDoDBA tools on host 127.0.0.1---------+------innodb--rows-----+---------innodb--pages--------+-------innodb--data-------+--innodb-log--time | read ins upd del| data free dirty flush|reads writes read written|fsyncs written---------+-----------------------+------------------------------+--------------------------+--------------19:30:00 | 4741 458 32 0| 350602 8195 18869 125| 0 141 0K 4.0M| 1 66K19:30:01 | 106 521 3 0| 350602 8195 18858 137| 0 151 0K 4.4M| 1 72K19:30:02 | 7982 406 40 2| 350603 8194 18860 160| 0 202 0K 5.1M| 3 84K
4. 收集MySQL及Linux效能資料
$ ./doDBA -h 127.0.0.1 -myall
5. mytop –like linux top
$ ./doDBA -h 127.0.0.1 -mytopDoDBA tools -19:32:36 on host 127.0.0.1 UP 61 days Load: 0.64 0.75 0.63 CPU: 1.99% user, 2.84% sys, 0.00% nice, 0.28% iowait, 94.89% idleMem: 23.3G total, 23.0G used, 317.6M free, 0K buffers Swap: 24.0G total, 0K used, 24.0G free, 13.2G Cached MySQL: 16 QPS, 20 TPS, 0 slowSQL, 2 run ID USER IP/HOST DB Time State SQL -- ---- ------- -- ---- ----- --- 2495440 zabbix 127.0.0.1 0 init show full processlist
6. 藉助Shell收集多台
$ cat ip.txt10.1.x.x110.1.x.x2
Shell
$ cat ip.txt | while read ip; do echo $ip; ./doDBA -h=$ip -mysql -log </dev/null & done
7. 收集到記錄檔
$ ./doDBA -h=127.0.0.1 -mysql -log$ cat 127001_dodba_mysql_20161219.log DoDBA tools on host 127.0.0.1---------+-------mysql-status-------+-----threads-----+-----slow-----+---bytes---+---------locks----------time | QPS TPS ins upd del| run con cre cac| sql tmp Dtmp| recv send| lockI lockW openT openF---------+--------------------------+-----------------+--------------+-----------+------------------------19:35:30 | 23 15 10 5 0| 3 98 0 7| 0 2 1| 9K 8.0M| 43 0 538 9519:35:31 | 53 19 5 14 0| 2 98 0 7| 0 3 0| 38K 1.7M| 86 0 538 93
8. 開啟Doing功能
使用【-t】參數可以基於Threads_running的數量設定閾值,設定後可記錄「processlist,engine innodb status」資訊到dodba.log日誌中,–重現現場。
$ ./doDBA -h=127.0.0.1 -mysql -t=3
9. 查看Doing日誌
$ tail -f dodba.log2016/12/19 19:51:52 ----------------processlist---------------ID:2314306User:zabbixHost:localhostDB:zabbixCommand:QueryTime:0State:updateInfo:insert into history_uint (itemid,clock,ns,value) values (35632,1482148312,240404292,274)
MySQL即時效能監控工具doDBA tools