一文教你學會用Zabbix監(jiān)控MySQL數(shù)據(jù)庫
前面講到如何監(jiān)控PG和MS SQL,今天帶來另外一個數(shù)據(jù)庫(MySQL)的教程。MySQL相比于PG和MS SQL監(jiān)控難度最小,因為比較成熟,而且使用廣泛,自然監(jiān)控手段就沒那么復雜,當然因為是基礎篇,所以才說難度較低,監(jiān)控的指標依照官方模板,對于初學者來說足夠使用了。如果有深入的監(jiān)控需求,那就需要和業(yè)務方溝通,根據(jù)監(jiān)控的范圍來制作自定義指標了。
正文
環(huán)境
- Zabbix版本:5.2.2
- MySQL版本:10.3.17
- 系統(tǒng)版本:CentOS 8.2
監(jiān)控范圍
Zabbix自身數(shù)據(jù)庫
模板獲取方式
- 通過網上資源
- 通過官方git倉庫(如下圖)

為了方便各位直接能粘貼,貼出相對應的語句
- vi /etc/zabbix/zabbix_agentd.d/template_db_mysql.conf
- <--------------------------------------------------------------------------------------------------------------------------------------------------------------------->
- UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
- UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
- UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
- UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
- UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
- UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
- UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
效果圖
自定義監(jiān)控腳本啟用
編輯agent配置文件,填寫如下圖紅框中的內容(默認有)
- vim /etc/zabbix/zabbix_agentd.conf
創(chuàng)建數(shù)據(jù)庫監(jiān)控用戶
下面的命令基于我自身的環(huán)境,自身環(huán)境請根據(jù)自身的環(huán)境調整。
- mysql -uroot -pxiaoyu123
- CREATE USER 'kasar'@'%' IDENTIFIED BY 'xiaoyu123';
- GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'kasar'@'%';
創(chuàng)建登錄用戶名密碼文件
默認在zabbix agent家目錄(/var/lib/zabbix)下,如果沒有,請創(chuàng)建。該文件主要是用于zabbix登錄mysql數(shù)據(jù)庫使用的。
- mkdir /var/lib/zabbix
- vi /var/lib/zabbix/.my.cnf
- [client]
- user='kasar'
- password='xiaoyu123'
前端調用MySQL模板
4.0以上默認是有該模板的,無需要下載,如果沒有也可以按照我上面講的方法去獲取,也可以私信找我要。

重啟zabbix agent
- service zabbix-agent restart
數(shù)據(jù)顯示正常

出圖正常
寫在最后
整個過程不太難,當然要理解其中模板的調用關系還是稍微有點復雜,只有了解了Zabbix自定義監(jiān)控腳本才能更深層次監(jiān)控MySQL數(shù)據(jù)庫,當然這個是后話了,先要從0到1,才能更好的進步,畢竟千里之行,始于足下嘛。