站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

MRTG-MySQL Load 負載圖表化

前言

本篇實作完全參考 [OHaHa's 學習心得 - MRTG-MySQL-Load],只是依個人習慣實作過就整理成筆記;在開始玩本次實作以前請先確定您的 SNMP 及 MRTG 已安裝並正確定設定,若無可參考本站 MRTG-主機網卡流量統計 文章,本次實作為利用 MRTG 圖形來了解目前 MySQL Database 負載情況。

實作環境

安裝及設定

步驟1.安裝 mrtg-mysql-load 套件

依如下步驟來安裝 mrtg-mysql-load 套件

 #cd /usr/ports/databases/mrtg-mysql-load          //切換至安裝路徑
 #make install clean                               //安裝套件並清除安裝過程中產生不必要檔案

步驟2.複製 mrtg-mysql-load 範例檔來修改

安裝完成後我們可直接複製範例檔案來修改比較快

 #cd /usr/local/etc/mrtg                           //切換至設定檔路徑
 #cp mrtg.cfg-mysql-load.example mysql-load.cfg    //複製 mrtg mysql load 範例檔
 #cp mysql-load-cfg.example mysql-connect-cfg      //複製欲連接至 mysql 的範例檔

步驟2-1.mysql-connect-cfg (連接至 MySQL 設定檔)

要抓取 MySQL 的值一定要有存取該 MySQL Database 的帳號、密碼,這個設定檔就是填入一些關於連接 MySQL Database 主機的相關資訊

 host=192.168.11.13                                 //指定 MySQL 主機 IP                     
 port=3306                                          //指定 MySQL 服務 Port Number
 username=mrtgsql                                   //可存取 MySQL 帳號
 password=123456                                    //可存取 MySQL 密碼
 logfile=/usr/local/www/data/mrtg/mysql-connect.log //指定 Log 存放處

因此這個檔案有存放連接 MySQL 的敏感資訊,因此要設定一下權限

 #chmod 600 mysql-connect-cfg

步驟2-2.mysql-load.cfg (畫 MRTG 圖設定檔)

本設定檔就是要畫出 MySQL Questions Load (每分鐘對 MySQL 的查詢數量)的 MRTG 設定檔,內容如下

 Target[MySQL]: `/usr/local/bin/mrtg-mysql-load -c /usr/local/etc/mrtg/mysql-connect-cfg`   //抓取 MySQL 主機負載數值
 Options[MySQL]: growright, perminute, nopercent, integer
 MaxBytes[MySQL]: 200                                                                       //流量圖表的最大值
 AbsMax[MySQL]: 2000                                                                        //當每分鐘查詢超過 2000 後便忽略
 Title[MySQL]: MySQL Load analysis -- www.weithenn.org                                      //網頁的 title (Browser 左上方文字)
 PageTop[MySQL]: <H1>MySQL Load Analysis -- www.weithenn.org</H1>                           //流量網頁內的標題
 YLegend[MySQL]: Questions                                                                  //流量圖的 Y 軸顯示名稱
 ShortLegend[MySQL]: 查詢/分
 Legend1[MySQL]: Questions
 Legend2[MySQL]:
 Legend3[MySQL]: Maximal # of questions per min.
 Legend4[MySQL]: Maximal # of slow queries per min.
 LegendI[MySQL]: &nbsp;# of questions:
 LegendO[MySQL]: &nbsp;# of slow queries:
 Language:big5                                                                              //使用語系
 WorkDir:/usr/local/www/data/analysis/mrtg/                                                 //存放產生圖檔的路徑

步驟2-3.修改 mrtg-mysql-load 執行檔內容

因為 mrtg-mysql-load 指令內容中會使用到 mysqladmin 這個指令來存取 MySQL 但此執行檔中未指定絕對路徑 (造成抓取的統計數據都是 0),後來改為絕對路徑後便可順利抓到數值了。

 #vi /usr/local/bin/mrtg-mysql-load
 $cmd = "mysqladmin ".                   //預設值
 $cmd = "/usr/local/bin/mysqladmin ".    //修改後(絕對路徑)

步驟3.產生檔案

產生檔案,下列指令執行 2 ~ 3 次到沒錯誤訊息後就代表完成了

 #/usr/local/bin/mrtg /usr/local/etc/mrtg/mysql-load.cfg      

步驟4.寫入排程

將如下指令寫入排程內以便達成自動產生流量圖表 (每五分鐘執行一次)

 #crontab -e
 */5 * * * *   /usr/local/bin/mrtg /usr/local/etc/mrtg/mysql-load.cfg     //每五分鐘執行一次 

參考

[ ★ OHaHa's 學習心得 MRTG-MySQL-Load★]

[mrtg-mysql-load Documentation]

[Installing mrtg-mysql-load]

[ NET-SNMP Tutorial -- MRTG]

Me FAQ

Q1.無法抓到統計數值?

Error Meaage:

當我手動執行指令 /usr/local/bin/mrtg /usr/local/etc/mrtg/mysql-load.cfg 是可抓到統計數值(查看 mysql-connect.log 可知)但編入排程內卻無法統計數值(mysql-connect.log 內容不會更新)

若能正確統計數值,則每次執行完設定檔後都會把數值寫入 mysql-connect.log 內,內容應該會如下所示(我的數值,僅供參考)

 #tail mysql-connect.log
 --2007-6-2 18:15:1--
 1417523                                  //當統計啟動後, 共有 1,417,523 個查詢傳送到此伺服器
 0
 4 days 1 hour 16 min 58 sec
 MySQL version 5.1.18-beta [mrtg-mysql-load v. 1.02]
 --2007-6-2 18:20:1--
 1418820                                  //當統計啟動後, 共有 1,418,820 個查詢傳送到此伺服器
 0
 4 days 1 hour 21 min 57 sec
 MySQL version 5.1.18-beta [mrtg-mysql-load v. 1.02] 

Ans:

因為 mrtg-mysql-load 指令內容中會使用到 mysqladmin 這個指令來存取 MySQL 但此執行檔中未指定絕對路徑,後來改為絕對路徑後便可順利抓到數值了。

 #vi /usr/local/bin/mrtg-mysql-load
 $cmd = "mysqladmin ".                   //預設值
 $cmd = "/usr/local/bin/mysqladmin ".    //修改後(絕對路徑)
Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com