MySQL監控利器-Innotop

来源:http://www.cnblogs.com/ivictor/archive/2016/01/05/5101506.html
-Advertisement-
Play Games

Innotop是一款十分強大的MySQL監控工具,用perl所寫,通過文本模式展示MysQL伺服器和Innodb的運行狀況。安裝innotop下載地址:https://github.com/innotop/innotopGithub上提供兩種版本,一種是開發版(innotop-master),一種是...


Innotop是一款十分強大的MySQL監控工具,用perl所寫,通過文本模式展示MysQL伺服器和Innodb的運行狀況。

 

安裝innotop

下載地址:https://github.com/innotop/innotop

Github上提供兩種版本,一種是開發版(innotop-master),一種是穩定版(innotop-gtid)。在這裡,我們使用的是開發版。

註意:網上提供的下載地址是http://code.google.com/p/innotop/,但這個是原先的維護地址,該項目現已遷移到Github上,而且,innotop-1.9.0.tar.gz這個版本也測試了下(google code上面的最新版本是1.9.1),很多功能都無法使用,可能與MySQL的版本有關,建議還是直接從Github上下載。

# unzip innotop-master.zip

# cd innotop-master

# perl Makefile.PL

Checking if your kit is complete...
Looks good
Warning: prerequisite Term::ReadKey 2.1 not found.
Writing Makefile for innotop

報以上錯誤,缺少ReadKey包。

# yum search ReadKey   --註意:基本上缺失的Perl Module都可以通常yum獲取

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: centos.ustc.edu.cn
 * updates: centos.ustc.edu.cn
================================================= N/S matched: ReadKey ==================================================
perl-TermReadKey.x86_64 : A perl module for simple terminal control

  Name and summary matches only, use "search all" for everything.

# yum install -y perl-TermReadKey

# perl Makefile.PL

Writing Makefile for innotop

# make install

cp innotop blib/script/innotop
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/innotop
Manifying blib/man1/innotop.1
Installing /usr/local/share/man/man1/innotop.1
Installing /usr/local/bin/innotop
Appending installation info to /usr/lib64/perl5/perllocal.pod

 

如何使用Innotop

首先我們通過innotop --help查看其常見的啟動參數

# innotop --help
Usage: innotop <options> <innodb-status-file>

  --[no]color   -C   Use terminal coloring (default)
  --config      -c   Config file to read
  --count            Number of updates before exiting
  --delay       -d   Delay between updates in seconds
  --help             Show this help message
  --host        -h   Connect to host
  --[no]inc     -i   Measure incremental differences
  --mode        -m   Operating mode to start in
  --nonint      -n   Non-interactive, output tab-separated fields
  --password    -p   Password to use for connection
  --port        -P   Port number to use for connection
  --skipcentral -s   Skip reading the central configuration file
  --socket      -S   MySQL socket to use for connection
  --spark            Length of status sparkline (default 10)
  --timestamp   -t   Print timestamp in -n mode (1: per iter; 2: per line)
  --user        -u   User for login if not current user
  --version          Output version information and exit
  --write       -w   Write running configuration into home directory if no config files were loaded

 其中,

-d:多久時間更新一次

-h:連接的主機名

-p:連接的埠

-S:socket的位置

-u:連接的用戶

熟悉MysQL的童鞋不難理解。

 

登錄進來後,預設是Dashboard。Innotop支持多種模式,Dashboard只是其中一種模式。通過“?”鍵我們可以查看所有模式

通過上述字母可切換到不同的狀態下。

 

如何查看innotop的文檔

1. # man innotop

2. # perldoc innotop

 

如何監控多個MySQL伺服器

有兩種方式:

一、直接在innotop互動式界面中添加,步驟如下:

# innotop

進入到互動式界面後,點擊@鍵,會進入到連接配置界面

下麵開始填寫,主要有以下幾項:

說明如下:

Choose connections for this mode:選擇連接,如果連接不存在,則手動創建。所以下麵會有提示“There is no connection called 'master26',create it?:”。

填寫y,然後回車,會提示填寫DSN string,按格式來即可。

其中在Enter password這一項需要註意,你輸入密碼的時候游標沒有動,但實際上它是有輸入,輸入完畢,直接回車即可。

對於該種方法,簡單,在監控機器較少的情況下,比較適用,但該方法的弊端在於一旦退出innotop,所有的配置信息都會丟失,重新進入,需重新配置。

所以,推薦的方法如下。

二、利用配置文件

# innotop --write,進入互動式界面後退出。會在當前目錄下生成一個.innotop/innotop.conf

# ls .innotop/
innotop.conf  plugins

# vim .innotop/innotop.conf 

該配置文件中有關連接的配置信息,預設有一個localhost。

[connections]

localhost=user= have_user= have_pass= dsn=DBI:mysql:;host=localhost;mysql_read_default_group=client savepass= dl_table=test.innotop_dl

[/connections]

當然,這個對我們編輯自己的配置信息沒有多大用處,可以刪除掉。

在此,可根據第一種方式添加一個connection信息,然後根據該信息進行相應的編輯。

以第一種方式中的master26為例,添加後,innotop.conf中的信息如下:

[connections]

localhost=user= have_user= have_pass= dsn=DBI:mysql:;host=localhost;mysql_read_default_group=client savepass= dl_table=test.innotop_dl
master26=user=root have_user=1 pass=123 have_pass=1 dsn=DBI:mysql:;host=192.168.91.26;port=3306 savepass=1

[/connections]

根據實際生產的需求,編輯innotop.conf文件。

[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]

啟動innotop,預設監控的是master26的信息。

可通過“n”或“@”選擇相應的伺服器。

好雖好,但不夠直觀,我們希望本例中三個伺服器的信息能顯示在一個屏幕里,這樣就不需要進行來回的切換,更直觀。這裡,就需要用到SERVER GROUPS的功能。

 

SERVER GROUPS

顧名思義,就是講伺服器進行分組,這種信息展示的粒度就不在是伺服器,而是整個組了。

同樣有兩種方式添加:

一、直接在innotop互動式界面中添加

使用“#”鍵,首先創建組的名字,然後添加伺服器,如下所示:

二、編輯配置文件

[server_groups]

master-slave=master26 slave22 slave25

[/server_groups]

下麵,我們來看看集群顯示的效果

對於監控主從集群的狀況,完全夠用。

註意: 在innotop互動式界面中配置完畢後,需退出innotop,再進入,不然就不會顯示CXN列。

 

總結:

1. 可能有人有疑慮,將密碼保存到配置文件中,是否不安全,尤其是在生產環境下。其實,密碼也可以不保存在配置文件中,配置如下:

[connections]

server144=user=root have_user=1 have_pass=1 dsn=DBI:mysql:;host=192.168.244.144;port=3306 savepass= dl_table=

[/connections]

如果是在innotop互動式界面中添加,則最後一步Save password in plain text in the config file?: 寫“n”即可。

2. 除了上述功能,innotop還是蠻強大的。譬如在M模式,即Replication Status下,可通過“o”鍵給伺服器發送命令。如下所示:

Anyway,Innotop功能還是及其強大的,大家慢慢琢磨吧~

 

參考:

https://www.percona.com/blog/2013/10/14/innotop-real-time-advanced-investigation-tool-mysql/


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 組內準備搭建內部yum源,在這之前需要規範軟體的安裝目錄,並把現有的應用打包。目前接觸兩種rpm打包工具,rpmbuild和fpm。-rpmbuild rpmbuild關鍵是spec文件編寫。 環境搭建yum -y install rpm-build rpmdevtoolsuseradd rpm;....
  • 30號發現自己機房的另外一條業務線的一臺伺服器流量特別的高(單台伺服器出口流量超過900M),進入伺服器特別慢,由於流量的影響業務的訪問情況。懷疑這台linux伺服器應該中木馬了,於是緊急措施先將伺服器的WAN口宕掉,然後進行如下排查:1、病毒木馬排查。1.1、使用netstat查看網路連接,分析是...
  • linux網路流量實時監控工具之iptrafIPTraf是一個網路監控工具,功能比nload更強大,可以監控所有的流量,IP流量,按協議分的流量,還可以設置過濾器等,如下圖對監控網路來說,這個更適合也更強大,但在總的流量顯示上,沒nload直觀和方便官網及下載 http://iptraf.seul....
  • 五種狀態模式:終極鉤子提醒者延遲事件正交組件轉換到歷史1.終極鉤子模式俗語:老爸對兒子說,你可以按你的特殊方式去做事,但如果你不做,我會做。目的:公共的處理功能放到父狀態,並可以在子狀態中重載,以實現特殊的功能。為什麼叫終極鉤子,因為如果子狀態不處理,總會在父狀態中得到處理,是個終極的處理。問題:父...
  • 1.首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地連接MySQL資料庫。因為在重新設置MySQL的root密碼的期間,MySQL資料庫完全出於沒有密碼保護的狀態下,其他的用戶也可以任意地登錄和修改MySQL的信息。可以採用將MySQL對外的埠封閉,並且停止Apache以及所有的用戶進程的方法...
  • 經常有這樣的需求,我們在Windows下載的軟體包,如何上傳到遠程Linux主機上?還有如何從Linux主機下載軟體包到Windows下;之前我的做法現在看來好笨好繁瑣,不過也達到了目的,笨人有本方法嘛;我是怎麼操作的:1、打開一臺本地Linux虛擬機,使用mount 掛載Windows的共用文件夾...
  • Having--對分組信息進行過濾,因為分組之後的信息和原來的表信息沒有關係了,Having可以用的之後,出現在Group子句中的列,還有聚合函數 SELECT s_Age ,COUNT(s_ID)FROM dbo.Student GROUP BY s_Age--正確的 SELECT s_Age ,...
  • Group By:對數據進行分組,分組之後的數據就是“分組信息”,和原來表的信息,就沒有聯繫了,分組之後,可以取到分組數據,就是根據什麼欄位分組,就能取到欄位的名字了。還能使用聚合函數。Group By和Order By都是要放在Where語句之後,Group By和Order By都是對篩選後的數...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...