mysql怎么監(jiān)控軟件 mysql監(jiān)控指標(biāo)有哪些

如何監(jiān)控MySQL性能

一,獲取mysql用戶下的進(jìn)程總數(shù)

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、網(wǎng)頁(yè)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、新源網(wǎng)站維護(hù)、網(wǎng)站推廣。

ps -ef | awk '{print $1}' | grep "mysql" | grep -v "grep" | wc-1

二,主機(jī)性能狀態(tài)

# uptime

[root@ ~]# uptime

13:05:52 up 53 days, 52 min, 1 user, load average: 0.00, 0.00, 0.00

三,CPU使用率

# top

# vmstat

四,磁盤(pán)IO量

# vmstat 或 # iostat

五,swap進(jìn)出量[內(nèi)存]

# free

六,數(shù)據(jù)庫(kù)性能狀態(tài)

(1)QPS(每秒Query量)

QPS = Questions(or Queries) / seconds

mysql show /*50000 global */ status like 'Question';

(2)TPS(每秒事務(wù)量)

TPS = (Com_commit + Com_rollback) / seconds

mysql show status like 'Com_commit';

mysql show status like 'Com_rollback';

(3)key Buffer 命中率

key_buffer_read_hits = (1-key_reads / key_read_requests) * 100%

key_buffer_write_hits = (1-key_writes / key_write_requests) * 100%

mysql show status like 'Key%';

(4)InnoDB Buffer命中率

innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%

mysql show status like 'innodb_buffer_pool_read%';

(5)Query Cache命中率

Query_cache_hits = (Qcahce_hits / (Qcache_hits + Qcache_inserts )) * 100%;

mysql show status like 'Qcache%';

(6)Table Cache狀態(tài)量

mysql show status like 'open%';

(7)Thread Cache 命中率

Thread_cache_hits = (1 - Threads_created / connections ) * 100%

mysql show status like 'Thread%';

mysql show status like 'Connections';

(8)鎖定狀態(tài)

mysql show status like '%lock%';

(9)復(fù)制延時(shí)量

mysql show slave status

(10) Tmp Table 狀況(臨時(shí)表狀況)

mysql show status like 'Create_tmp%';

(11) Binlog Cache 使用狀況

mysql show status like 'Binlog_cache%';

(12) Innodb_log_waits 量

mysql show status like 'innodb_log_waits';

當(dāng)然你也可以使用一下開(kāi)源監(jiān)控軟件進(jìn)行監(jiān)控

一,RRDTool

二,Nagios

三,MRTG

四,Cacti

如何監(jiān)控MySQL

首先介紹下 pt-stalk,它是 Percona-Toolkit 工具包中的一個(gè)工具,說(shuō)起 PT 工具包大家都不陌生,平時(shí)常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自于這個(gè)工具包,這里就不多介紹了。

pt-stalk 的主要功能是在出現(xiàn)問(wèn)題時(shí)收集 OS 及 MySQL 的診斷信息,這其中包括:

1. OS 層面的 CPU、IO、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)等信息;

2. MySQL 層面的行鎖等待、會(huì)話連接、主從復(fù)制,狀態(tài)參數(shù)等信息。

而且 pt-stalk 是一個(gè) Shell腳本,對(duì)于我這種看不懂 perl 的人來(lái)說(shuō)比較友好,腳本里面的監(jiān)控邏輯與監(jiān)控命令也可以拿來(lái)參考,用于構(gòu)建自己的監(jiān)控體系。

三、使用

接著我們來(lái)看下如何使用這個(gè)工具。

pt-stalk 通常以后臺(tái)服務(wù)形式監(jiān)控 MySQL 并等待觸發(fā)條件,當(dāng)觸發(fā)條件時(shí)收集相關(guān)診斷數(shù)據(jù)。

觸發(fā)條件相關(guān)的參數(shù)有以下幾個(gè):

function:

°?默認(rèn)為 status,代表監(jiān)控 SHOW GLOBAL STATUS 的輸出;

°?也可以設(shè)置為 processlist,代表監(jiān)控 show processlist 的輸出;

variable:

°?默認(rèn)為 Threads_running,代表 監(jiān)控參數(shù),根據(jù)上述監(jiān)控輸出指定具體的監(jiān)控項(xiàng);

threshold:

°?默認(rèn)為 25,代表 監(jiān)控閾值,監(jiān)控參數(shù)超過(guò)閾值,則滿足觸發(fā)條件;

°?監(jiān)控參數(shù)的值非數(shù)字時(shí),需要配合 match 參數(shù)一起使用,如 processlist 的 state 列;

cycles:

°?默認(rèn)為 5,表示連續(xù)觀察到五次滿足觸發(fā)條件時(shí),才觸發(fā)收集;

連接參數(shù):host、password、port、socket。

其他一些重要參數(shù):

iterations:該參數(shù)指定 pt-stalk 在觸發(fā)收集幾次后退出,默認(rèn)會(huì)一直運(yùn)行。

run-time:觸發(fā)收集后,該參數(shù)指定收集多長(zhǎng)時(shí)間的數(shù)據(jù),默認(rèn) 30 秒。

sleep:該參數(shù)指定在觸發(fā)收集后,sleep 多久后繼續(xù)監(jiān)控,默認(rèn) 300 秒。

interval:指定狀態(tài)參數(shù)的檢查頻率,判斷是否需要觸發(fā)收集,默認(rèn) 1 秒。

dest:監(jiān)控?cái)?shù)據(jù)存放路徑,默認(rèn)為 /var/lib/pt-stalk。

retention-time :監(jiān)控?cái)?shù)據(jù)保留時(shí)長(zhǎng),默認(rèn) 30 天。

daemonize:以后臺(tái)服務(wù)運(yùn)行,默認(rèn)不開(kāi)啟。

log:后臺(tái)運(yùn)行日志,默認(rèn)為 /var/log/pt-stalk.log。

collect:觸發(fā)發(fā)生時(shí)收集診斷數(shù)據(jù),默認(rèn)開(kāi)啟。

°?collect-gdb:收集 GDB 堆棧跟蹤,需要 gdb 工具。

°?collect-strace:收集跟蹤數(shù)據(jù),需要 strace 工具。

°?collect-tcpdump:收集 tcpdump 數(shù)據(jù),需要 tcpdump 工具。

zabbix怎么監(jiān)控mysql

在之前的博文里面寫(xiě)過(guò)如何通過(guò)Zabbix監(jiān)控mysql主從同步是否OK,mysql從庫(kù)是否有延時(shí)

(Seconds_Behind_Master)主庫(kù),當(dāng)mysql主從有異常時(shí)通過(guò)Email或者SMS通知DBA和系統(tǒng)人員。除此之外,Zabbix

還可以監(jiān)控mysql slow queries,mysql version,uptime,alive等。下面通過(guò)Zabbix

Graphs實(shí)時(shí)查看的SQL語(yǔ)句操作情況和mysql發(fā)送接收的字節(jié)數(shù)。

1.Zabbix官方提供的監(jiān)控mysql的模板Template App MySQL,可以看到相關(guān)的Items和key。

2.把該模板Template App MySQL

Link到相關(guān)的主機(jī)上面,發(fā)現(xiàn)Item的Status是不可用的,因?yàn)閗ey的值是通過(guò)Mysql用戶查看"show global

status"信息或者用mysqladmin命令查看status或extended-status的信息而取的值。

mysql show global status; mysql show status;

3.結(jié)合官方提供的key編寫(xiě)Shell腳本,從數(shù)據(jù)庫(kù)中取出Items的key的值。

[root@monitor scripts]# cat checkmysqlperformance.sh #!/bin/sh #Create by sfzhang 2014.02.20 MYSQL_SOCK="/data/mysql/3306/mysql.sock" MYSQL_PWD=`cat /data/mysql/3306/.mysqlpassword` ARGS=1 if [ $# -ne "$ARGS" ];then echo "Please input one arguement:" fi case $1 in Uptime) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK status|cut -f2 -d":"|cut -f1 -d"T"` echo $result Com_update) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_update"|cut -d"|" -f3` echo $result Slow_queries) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK status |cut -f5 -d":"|cut -f1 -d"O"` echo $result Com_select) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_select"|cut -d"|" -f3` echo $result Com_rollback) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_rollback"|cut -d"|" -f3` echo $result Questions) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK status|cut -f4 -d":"|cut -f1 -d"S"` echo $result Com_insert) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_insert"|cut -d"|" -f3` echo $result Com_delete) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_delete"|cut -d"|" -f3` echo $result Com_commit) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_commit"|cut -d"|" -f3` echo $result Bytes_sent) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` echo $result Bytes_received) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Bytes_received" |cut -d"|" -f3` echo $result Com_begin) result=`mysqladmin -uroot -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_begin"|cut -d"|" -f3` echo $result *) echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions)" esac

4.在Zabbix_agentd.conf里面添加UserParameter,格式如下,對(duì)于Zabbix來(lái)說(shuō),腳本其實(shí)就是一個(gè)插件。

UserParameter=mysql.version,mysql -V UserParameter=mysql.ping,mysqladmin -uroot -p123456 -S /data/mysql/3306/mysql.sock ping | grep -c alive UserParameter=mysql.status[*],/etc/zabbix/scripts/checkmysqlperformance.sh $1 $2

5.重啟agentd服務(wù)器,然后在zabbix server用zabbix_get就可以取到key的值。

6.在zabbix前端可以實(shí)時(shí)查看SQL語(yǔ)句每秒鐘的操作次數(shù)。

7.在zabbix前端可以實(shí)時(shí)查看mysql發(fā)送接收的字節(jié)數(shù)。其中bytes received表示從所有客戶端接收到的字節(jié)數(shù),bytes sent表示發(fā)送給所有客戶端的字節(jié)數(shù)。

本文名稱:mysql怎么監(jiān)控軟件 mysql監(jiān)控指標(biāo)有哪些
本文鏈接:http://bm7419.com/article2/ddepdoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)網(wǎng)站改版、品牌網(wǎng)站建設(shè)、定制網(wǎng)站網(wǎng)站策劃、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司