今天就跟大家聊聊有關(guān)使用zabbix怎么對(duì)MySQL進(jìn)行監(jiān)控,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
為羅江等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及羅江網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、羅江網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
在創(chuàng)建監(jiān)控項(xiàng)之前要盡量考慮清楚要監(jiān)控什么,怎么監(jiān)控,監(jiān)控?cái)?shù)據(jù)如何存儲(chǔ),監(jiān)控?cái)?shù)據(jù)如何展現(xiàn),如何處理報(bào)警等。要進(jìn)行監(jiān)控的系統(tǒng)規(guī)劃需要對(duì)Zabbix很了解,這里只是提出監(jiān)控的需求。
需求一:監(jiān)控MySQL的狀態(tài),當(dāng)狀態(tài)發(fā)生異常,發(fā)出報(bào)警;
需求二:監(jiān)控MySQL的操作,并用圖表展現(xiàn);
Zabbix Server與Agent之間監(jiān)控?cái)?shù)據(jù)的采集主要是通過(guò)Zabbix Server主動(dòng)向Agent詢(xún)問(wèn)某個(gè)Key的值,Agent會(huì)根據(jù)Key去調(diào)用相應(yīng)的函數(shù)去獲取這個(gè)值并返回給Server端。Zabbix 2.4.7的Agent本并沒(méi)有內(nèi)置MySQL的監(jiān)控功能(但是Server端提供了相應(yīng)的Template配置),所以我們需要使用Zabbix的User Parameters功能,為MySQL添加監(jiān)控腳本。
mysql> grant usage on *.* to zabbix@127.0.0.1 identified by '123456'; mysql> flush privileges;
利用UserParameter參數(shù)自定義Agent Key。
對(duì)于需求一 ,我們采用mysqladmin這個(gè)工具來(lái)實(shí)現(xiàn),命令如下:
# mysqladmin -h 127.0.0.1 -u zabbix -p123456 ping mysqld is alive
如果MySQL狀態(tài)正常,會(huì)顯示mysqld is alive,否則會(huì)提示連接不上。對(duì)于服務(wù)器端,mysqld is alive這樣的句子不好理解,服務(wù)器端最好只接收1和0,1表示服務(wù)可用,0表示服務(wù)不可用。那么再改進(jìn)一下這個(gè)命令,如下:
# mysqladmin -h 127.0.0.1 -u zabbix -p123456 ping |grep -c alive 1
用戶(hù)名和密碼放在命令中對(duì)于以后的維護(hù)不好,所以我們?cè)?var/lib/zabbix/下創(chuàng)建一個(gè)包含MySQL用戶(hù)名和密碼的配置文件“.my.cnf”,如下:
user=zabbix host=127.0.0.1 password='123456'
有了這個(gè)文件后的命令變更為
HOME=/var/lib/zabbix/ mysqladmin ping |grep -c alive 1
做完這一步后需要做的就是,將這個(gè)監(jiān)控命令添加到Zabbix Agent中,并與一個(gè)Key對(duì)應(yīng),這樣Zabbox Server就能通過(guò)這個(gè)Key獲取MySQL的狀態(tài)了。我們使用mysql.ping作為MySQL狀態(tài)的Key。
首先在去除/etc/zabbix/zabbix_agentd.conf中
“Include=/etc/zabbix_agentd.d/” 這一行的注釋符。
其次,在/etc/zabbix/zabbix_agentd.d/目錄下創(chuàng)建userparameter_mysql.conf文件。在文件中添加如下命令:
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
使用下面的命令測(cè)試是否正常工作。
# /usr/sbin/zabbix_agentd -t mysql.ping mysql.ping [t|1]
vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf ####監(jiān)控mysql性能的腳本 UserParameter=mysql.status[*],/etc/zabbix/zabbix_agentd.d/check_mysql.sh $1 #####mysql版本 UserParameter=mysql.version,mysql -V
#!/bin/bash # ------------------------------------------------------------------------------- # FileName: check_mysql.sh # Revision: 1.0 # ------------------------------------------------------------------------------- # Copyright: # License: GPL # 用戶(hù)名 MYSQL_USER='zabbix' # 密碼 MYSQL_PWD='zabbix@123' # 主機(jī)地址/IP MYSQL_HOST='ip' # 端口 MYSQL_PORT='3306' # 數(shù)據(jù)連接 MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}" # 參數(shù)是否正確 if [ $# -ne "1" ];then echo "arg error!" fi # 獲取數(shù)據(jù) case $1 in Uptime) result=`${MYSQL_CONN} status 2>/dev/null |cut -f2 -d":"|cut -f1 -d"T"` echo $result ;; Com_update) result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_update"|cut -d"|" -f3` echo $result ;; Slow_queries) result=`${MYSQL_CONN} status 2>/dev/null |cut -f5 -d":"|cut -f1 -d"O"` echo $result ;; Com_select) result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_select"|cut -d"|" -f3` echo $result ;; Com_rollback) result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_rollback"|cut -d"|" -f3` echo $result ;; Questions) result=`${MYSQL_CONN} status 2>/dev/null |cut -f4 -d":"|cut -f1 -d"S"` echo $result ;; Com_insert) result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_insert"|cut -d"|" -f3` echo $result ;; Com_delete) result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_delete"|cut -d"|" -f3` echo $result ;; Com_commit) result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_commit"|cut -d"|" -f3` echo $result ;; Bytes_sent) result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Bytes_sent" |cut -d"|" -f3` echo $result ;; Bytes_received) result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Bytes_received" |cut -d"|" -f3` echo $result ;; Com_begin) result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_begin"|cut -d"|" -f3` echo $result ;; *) echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)" ;; esac
chmod +x /etc/zabbix/zabbix_agentd.d/check_mysql.sh Chown zabbix.zabbix /etc/zabbix/zabbix_agentd.d/check_mysql.sh
zabbix_agentd -t mysql.ping
zabbix_get -s ip -P 端口 -k mysql.ping
**創(chuàng)建主機(jī) **
關(guān)聯(lián)模板
創(chuàng)建監(jiān)控項(xiàng)
創(chuàng)建圖形
查看監(jiān)控圖像
其他監(jiān)控項(xiàng)以此配置完成
version:數(shù)據(jù)庫(kù)版本 key_buffer_size:myisam的索引buffer大小 sort_buffer_size:會(huì)話的排序空間(每個(gè)線程會(huì)申請(qǐng)一個(gè)) join_buffer_size:這是為鏈接操作分配的最小緩存大小,這些連接使用普通索引掃描、范圍掃描、或者連接不適用索引 max_connections:最大允許同時(shí)連接的數(shù)量 max_connect_errors:允許一個(gè)主機(jī)最多的錯(cuò)誤鏈接次數(shù),如果超過(guò)了就會(huì)拒絕之后鏈接(默認(rèn)100)??梢允褂胒lush hosts命令去解除拒絕 open_files_limits:操作系統(tǒng)允許mysql打開(kāi)的文件數(shù)量,可以通過(guò)opened_tables狀態(tài)確定是否需要增大table_open_cache,如果opened_tables比較大且一直還在增大說(shuō)明需要增大table_open_cache max-heap_tables_size:建立的內(nèi)存表的最大大?。J(rèn)16M)這個(gè)參數(shù)和tmp_table_size一起限制內(nèi)部臨時(shí)表的最大值(取這兩個(gè)參數(shù)的小的一個(gè)),如果超過(guò)限制,則表會(huì)變?yōu)閕nnodb或myisam引擎,(5.7.5之前是默認(rèn)是myisam,5.7.6開(kāi)始是innodb,可以通過(guò)internal_tmp_disk_storage_engine參數(shù)調(diào)整)。 max_allowed_packet:一個(gè)包的最大大小 ##########GET INNODB INFO #INNODB variables innodb_version: innodb_buffer_pool_instances:將innodb緩沖池分為指定的多個(gè)(默認(rèn)為1) innodb_buffer_pool_size:innodb緩沖池大小、5.7.5引入了innodb_buffer_pool_chunk_size, innodb_doublewrite:是否開(kāi)啟doublewrite(默認(rèn)開(kāi)啟) innodb_read_io_threads:IO讀線程的數(shù)量 innodb_write_io_threads:IO寫(xiě)線程的數(shù)量 ########innodb status innodb_buffer_pool_pages_total:innodb緩沖池頁(yè)的數(shù)量、大小等于innodb_buffer_pool_size/(16*1024) innodb_buffer_pool_pages_data:innodb緩沖池中包含數(shù)據(jù)的頁(yè)的數(shù)量 ########## GET MYSQL HITRATE 1、查詢(xún)緩存命中率 如果Qcache_hits+Com_select<>0則為 Qcache_hits/(Qcache_hits+Com_select),否則為0 2、線程緩存命中率 如果Connections<>0,則為1-Threads_created/Connections,否則為0 3、myisam鍵緩存命中率 如果Key_read_requests<>0,則為1-Key_reads/Key_read_requests,否則為0 4、myisam鍵緩存寫(xiě)命中率 如果Key_write_requests<>0,則為1-Key_writes/Key_write_requests,否則為0 5、鍵塊使用率 如果Key_blocks_used+Key_blocks_unused<>0,則Key_blocks_used/(Key_blocks_used+Key_blocks_unused),否則為0 6、創(chuàng)建磁盤(pán)存儲(chǔ)的臨時(shí)表比率 如果Created_tmp_disk_tables+Created_tmp_tables<>0,則Created_tmp_disk_tables/(Created_tmp_disk_tables+Created_tmp_tables),否則為0 7、連接使用率 如果max_connections<>0,則threads_connected/max_connections,否則為0 8、打開(kāi)文件比率 如果open_files_limit<>0,則open_files/open_files_limit,否則為0 9、表緩存使用率 如果table_open_cache<>0,則open_tables/table_open_cache,否則為0
看完上述內(nèi)容,你們對(duì)使用zabbix怎么對(duì)mysql進(jìn)行監(jiān)控有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
分享名稱(chēng):使用zabbix怎么對(duì)mysql進(jìn)行監(jiān)控
URL地址:http://chinadenli.net/article32/jggcsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站排名、關(guān)鍵詞優(yōu)化、網(wǎng)站制作、自適應(yīng)網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(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)