zabbix實戰--mysql監控詳解
一、監控採集依據:主要基於show global status對資料進行採集:
二、對使用者進行授權,然後使用show global status進行採集分析。
mysql -uroot -p”xxxx” -e "show global status" ###檢視所有的值
監控項註釋:
Aborted_clients ##客戶端不能正常連線,失敗的連線數量。
Aborted_connects ##客戶端中斷數量,可能有惡意連線。
###吞吐量
Bytes_received ##從所有客戶端接收到的位元組數。
Bytes_sent ##傳送給所有客戶端的位元組數。
###com admin 語句執行數量
Com_commit ##統計提交語句次數
com_delete ##統計刪除語句
com_delete_multi ##最小
com_insert ##統計插入語句
com_rollback ##事務回滾
Connections ##不管是否成功連線到mysql的個數
###臨時表數量
Created_tmp_disk_tables ##伺服器建立的臨時表數量
Created_tmp_files ##已經建立的臨時檔案數量
Created_tmp_tables ##伺服器執行語句時自動建立的記憶體中的臨時表的數量。如果Created_tmp_disk_tables較大,你可能要增加tmp_table_size值使臨時表基於記憶體而不基於硬碟。
##後臺預讀執行緒讀取到Innodb緩衝池的頁的數量
Innodb_buffer_pool_reads ##不能滿足InnoDB必須單頁讀取的緩衝池中的邏輯讀數量。
Innodb_buffer_pool_read_ahead ##預讀的次數
Innodb_buffer_pool_read_requests ##從緩衝池中讀取的頁的次數
*緩衝池的命中率=
innodb_buffer_pool_read_requests/(innodb_buffer_pool_read_requests+innodb_buffer_pool_read_ahead+innodb_buffer_pool_reads)
innodb_data_read 總共讀入的位元組數;
innodb_data_reads 發起讀取請求的次數,每次讀取可能需要讀取多個頁。
*平均每次讀取的位元組數=innodb_data_read/innodb_data_reads
Innodb_rows_deleted ##執行deleted操作的次數
Innodb_rows_inserted ##執行insert操作的次數
Innodb_rows_read ##執行select操作的次數
Innodb_rows_updated ##執行update操作的次數
###針對MyISAM引擎:
key_buffer_size ##緩衝池大小
Key_blocks_unused ##未使用的快取簇(blocks)數
Key_blocks_used ##表示曾經用到的最大的blocks數
* 這臺伺服器,所有的快取都用到了,要麼增加key_buffer_size,要麼就是過渡索引了,把快取佔滿了,理想設定:
Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 80%
Key_reads ##在記憶體中沒有找到直接從硬碟讀取索引
Key_read_requests ##一共索引請求
* 計算索引未名字概率:
key_cache_miss_rate = Key_reads / Key_read_requests * 100%
###Qcache查詢緩衝區:
Qcache_free_blocks ##Query Cache 中目前還有多少剩餘的blocks
Qcache_free_memory ##Query Cache 剩餘的記憶體大小
Qcache_hits ##多少次命中
Qcache_inserts ##多少次未命中的插入: Qcache_hits / ( Qcache_hits + Qcache_inserts )
Qcache_lowmem_prunes ##多少條Query 因為記憶體不足而被清除出Query Cache
Qcache_not_cached ##因為query_cache_type 的設定或者不能被cache 的Query 的數量;
Qcache_queries_in_cache ##當前Query Cache中的cache 的Query數量
Slow_queries ##慢查詢
Sort_range ##通過range scan 完成的排序總次數
Sort_rows ##排序總行數
Sort_scan ##通過掃描完成的排序總次數
Table_locks_immediate ##可以立即獲取鎖的查詢次數。
Table_locks_waited ##不能立即獲取鎖的查詢次數。
Uptime ##mysql 執行時長
三、zabbix agnet自定義key:
UserParameter=mysql[*],mysql -uroot -pxxx -e "show global status"|grep "$1" | cut -f2
Mysql[Uptime]
Grep uptime | cut -f2
Myslq[Table_locks_waited]
註釋:通過key傳回的值,$1篩選出我們要的值。
關注微信: