Innotop 是一款功能強大的 MySQL 即時監控工具,由 Perl 編寫,採用文字模式介面展示 MySQL 服務器與 InnoDB 的運行狀態。它能幫助 DBA 快速掌握資料庫效能瓶頸,是運維工具箱中的利器。
官方下載地址已遷移至 GitHub:https://github.com/innotop/innotop。提供開發版與穩定版兩種選擇,建議直接從 GitHub 獲取最新版本,避免舊版本(如 1.9.0/1.9.1)因 MySQL 版本不兼容導致功能異常。
# 解壓縮並進入目錄 unzip innotop-master.zip cd innotop-master # 生成 Makefile(首次會提示缺少 Term::ReadKey 模組) perl Makefile.PL
若出現 Warning: prerequisite Term::ReadKey 2.1 not found,透過 yum 安裝缺失模組:
yum search ReadKey yum install -y perl-TermReadKey # 再次生成 Makefile 並安裝 perl Makefile.PL make install
安裝完成後,innotop 執行檔將部署在 /usr/local/bin/,man page 亦同步安裝。
啟動前可透過 innotop --help 查看參數,常用選項包括:
-d:更新間隔(秒)-h:目標主機-P:連接埠-S:Socket 路徑-u:登入用戶進入互動介面後,預設為 Dashboard 模式。按 ? 可查看所有支援模式(如 Q=查詢清單、M=主從狀態、I=InnoDB 狀態等),按對應字母鍵即可切換。

man innotop:系統手冊perldoc innotop:Perl 內建文件Innotop 支援同時監控多台伺服器,有兩種方式:
innotop 進入介面master26),系統提示建立新連線時輸入 y
缺點:退出 Innotop 後配置遺失,下次需重新設定。
innotop --write 進入介面後退出,自動產生 ~/.innotop/innotop.conf[connections] 區塊定義多組連線:[connections] master26=user=root have_user=1 pass=123 have_pass=1 dsn=DBI:mysql:;host=192.168.91.26;port=3306 savepass=1 slave25=user=root have_user=1 pass=123 have_pass=1 dsn=DBI:mysql:;host=192.168.91.25;port=3306 savepass=1 slave22=user=root have_user=1 pass=123 have_pass=1 dsn=DBI:mysql:;host=192.168.91.22;port=3306 savepass=1 [/connections]
啟動後預設監控第一組連線,按 n 或 @ 切換實例。
為避免頻繁切換,可將多台伺服器歸組,統一顯示關鍵指標。
按 # 鍵,輸入群組名稱(如 master-slave),再依序加入連線名稱。
[server_groups] master-slave=master26 slave22 slave25 [/server_groups]

注意:互動式配置完成後,需重新啟動 Innotop 才會顯示 CXN 欄位。
生產環境建議不在配置檔存明文密碼:
[connections] server144=user=root have_user=1 have_pass=1 dsn=DBI:mysql:;host=192.168.244.144;port=3306 savepass= dl_table= [/connections>
互動式添加時,Save password in plain text in the config file? 輸入 n 即可。
在 M 模式下按 o 鍵,可直接向從庫發送 SQL 指令,極大提升故障處理效率。

Innotop 功能豐富、介面輕量,掌握配置檔與 Server Groups 技巧,即可輕鬆實現多實例、多叢集的統一監控。更多深度用法請參考 Percona 官方部落格。