1 添加帳戶密碼
mysql> GRANT USAGE ON . TO 'mysqlcheck'@'localhost' IDENTIFIED BY 'mysqlcheck';
mysql> FLUSH PRIVILEGES;
USAGE ON*.* 表示該用戶對(duì)任何數(shù)據(jù)庫(kù)和任何表都沒有權(quán)限行楞。
登陸后只可以查看到information_schema這個(gè)表
information_schema 數(shù)據(jù)庫(kù)跟 performance_schema 一樣亏栈,都是 MySQL 自帶的信息數(shù)據(jù)庫(kù)奈惑。其中 performance_schema 用于性能分析箍铭,而 information_schema 用于存儲(chǔ)數(shù)據(jù)庫(kù)元數(shù)據(jù)(關(guān)于數(shù)據(jù)的數(shù)據(jù)),例如數(shù)據(jù)庫(kù)名、表名毫深、列的數(shù)據(jù)類型、訪問權(quán)限等
2 創(chuàng)建.my.cnf或者直接將用戶名密碼寫入到/etc/my.cnf中
創(chuàng)建隱藏文件在某個(gè)目錄毒姨,如/etc/zabbix
[root@zabbix zabbix]# cat .my.cnf 注意權(quán)限zabbix:zabbix
#Zabbix Agent
[client]
host=127.0.0.1
user=mysqlcheck
password=mysqlcheck
3 修改agent端自帶腳本
ls -al /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
注意修改HOME=/etc/zabbix 這個(gè)地址哑蔫,就是.my.cnf所在位置
比如:mysql.version這個(gè)是zabbix中監(jiān)控的值,mysql -V就是獲取的值
[root@zabbix zabbix_agentd.d]# cat userparameter_mysql.conf
# For all the following commands HOME should be set to the directory that has .my.cnf file with password information.
# Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert].
# Key syntax is mysql.status[variable].
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/etc/zabbix mysql -N | awk '{print $$2}'
# Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data].
# Key syntax is mysql.size[<database>,<table>,<type>].
# Database may be a database name or "all". Default is "all".
# Table may be a table name or "all". Default is "all".
# Type may be "data", "index", "free" or "both". Both is a sum of data and index. Default is "both".
# Database is mandatory if a table is specified. Type may be specified always.
# Returns value in bytes.
# 'sum' on data_length or index_length alone needed when we are getting this information for whole database instead of a single table
UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/etc/zabbix mysql -N'
UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
mysql.size[]
mysql.ping
mysql.version
后面的是命令弧呐,添加了生產(chǎn)數(shù)據(jù)庫(kù)但是可能是用戶沒有那個(gè)權(quán)限闸迷,mysql.version這個(gè)都可以獲取,部分mysql.ping這個(gè)可以獲取俘枫,mysql.size[]不可以獲取
[應(yīng)該是和mysqlcheck這個(gè)用戶的添加和權(quán)限有關(guān)系腥沽,因?yàn)榇蠹叶荚谟梦揖拖炔粍?dòng)了]
自己測(cè)試注意一些
4 自帶模版添加
Template DB MYSQL Active
如果是zabbix客戶端主動(dòng)式需要修改監(jiān)控項(xiàng)的獲取方式。
自帶模版含義
zabbix中每秒刪除/插入/回滾/更新計(jì)算方法:
QPS 指標(biāo)主要體現(xiàn)實(shí)例的實(shí)際處理能力
5 增加慢查詢數(shù)|全盤掃描數(shù)|連接數(shù)監(jiān)控
全盤掃描
全表掃描是數(shù)據(jù)庫(kù)搜尋表的每一條記錄的過程鸠蚪,直到所有符合給定條件的記錄返回為止今阳。通常在數(shù)據(jù)庫(kù)中,對(duì)無索引的表進(jìn)行查詢一般稱為全表掃描茅信;然而有時(shí)候我們即便添加了索引盾舌,但當(dāng)我們的SQL語句寫的不合理的時(shí)候也會(huì)造成全表掃描。
可參考:
https://yq.aliyun.com/articles/658369
云數(shù)據(jù)庫(kù) MySQL CPU 占比過高的常見原因和解決方法蘸鲸?
1 慢查詢堆積妖谴,請(qǐng)查看實(shí)例監(jiān)控上的慢查詢和全表掃描,結(jié)合慢查詢?nèi)罩荆刂婆_(tái)可下載)進(jìn)行分析優(yōu)化酌摇,若監(jiān)控上沒有慢查詢只有全表掃描膝舅,建議在控制臺(tái)將 long_query_time 調(diào)小至1s - 2s,使用一段時(shí)間后再分析慢查詢窑多。
2 沒有慢查詢堆積仍稀,請(qǐng)查看實(shí)例監(jiān)控上的內(nèi)存占用,若超出實(shí)例規(guī)格很多埂息,并且磁盤讀寫量明顯增大琳轿,表明內(nèi)存遇到瓶頸,建議升級(jí)內(nèi)存耿芹。
3 一般是睡眠連接過多崭篡,嚴(yán)重消耗mysql服務(wù)器資源(主要是cpu, 內(nèi)存),并可能導(dǎo)致mysql崩潰
show PROCESSLIST語句吧秕,先查看看哪條sql占用過多
https://blog.csdn.net/shenshouer/article/details/22745539
4 其它原因參考
https://www.cnblogs.com/zh94/p/12019333.html
5 mysql優(yōu)化以及參數(shù)參考
https://www.cnblogs.com/mylele/articles/3291438.html
https://www.cnblogs.com/saneri/p/6963583.html
6 騰訊云數(shù)據(jù)庫(kù)監(jiān)控?cái)?shù)據(jù)參考
https://cloud.tencent.com/document/product/236/8455#.E7.9B.91.E6.8E.A7.E6.8C.87.E6.A0.87
參考:https://www.cnblogs.com/zeq912/p/10595169.html
https://www.zabbix.com/integrations/mysql