Zabbix3.0 Server之後就自帶了MySQL插件來監控mysql數據庫的模板,只須要配置好agent客戶端,而後在web端給主機增長模板就好了。
如下是公司線上的zabbix3.0環境下添加mysql監控操做記錄:前端
Zabbix_agent客戶端操做
1)首先在客戶端的mysql裏添加權限,即本機使用zabbix帳號鏈接本地的mysql
mysql> grant all on *.* to zabbix@'localhost' identified by "123456」;
mysql> flush privileges;
2)在zabbix_agent服務目錄下建立.my.cnf 鏈接文件
線上的zabbix安裝目錄是/usr/local/zabbix
[root@ff_db_master1 ~]# cd /usr/local/zabbix/etc/
[root@ff_db_master1 etc]# cat .my.cnf
[client]
user=zabbix
password=123456mysql
--------------------------------------------------------------------------------------------------------------
注意:
若是在數據庫grant受權時,針對的是localhost,這個.my.cnf裏面就不用加host參數了【如上配置】
但若是grant受權時針對的是本機的ip(如192.168.1.25),那麼在.my.cnf文件裏就要加上host參數進行指定了
即在.my.cnf文件就要加上:web
[client]
host=192.168.1.25
socket=/Data/app/mysql5.6.25/var/mysql.sock 【這一行能夠不用加上,默認會找到的】
user=zabbix
password=123456
--------------------------------------------------------------------------------------------------------------sql
3)配置MySQL的key文件
這個能夠從zabbix3.0安裝時的解壓包裏拷貝過來
(線上的是從zabbix_server服務端安裝時解壓目錄/usr/local/src/zabbix3.0.3/conf/zabbix_agentd/userparameter_mysql.conf 拷貝到zabbix_agent客戶端上的/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 目錄下的)
[root@ff_db_master1 zabbix_agentd.conf.d]# pwd
/usr/local/zabbix/etc/zabbix_agentd.conf.d
[root@ff_db_master1 zabbix_agentd.conf.d]# ls userparameter_mysql.conf
userparameter_mysql.conf
而後查看 userparameter_mysql.conf 文件,看到相似 HOME=/var/lib/zabbix 的路徑設置,把路徑全都替換爲 /usr/local/zabbix/etc/,也就是上面的.my.cnf文件所在的目錄路徑。
另外,注意userparameter_mysql.conf 文件裏的mysql命令路徑(提早作好mysql的系統環境變量,以防mysql命令不被系統識別)數據庫
以下:bash
[root@ff_db_master1 zabbix_agentd.conf.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.app
# 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=/usr/local/zabbix/etc/ mysql -N | awk '{print $$2}'frontend
# 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=/usr/local/zabbix/etc/ mysql -N'socket
UserParameter=mysql.ping,HOME=/usr/local/zabbix/etc/ mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -Vide
4)按照上面修改完以後檢查一下,而後重啓zabbix_agent
[root@ff_db_master1 ~]# pkill -9 zabbix_agent
[root@ff_db_master1 ~]# /usr/local/zabbix/sbin/zabbix_agentd
接着在zabbix_server服務端進行命令行測試[下面的192.168.1.25是客戶端的ip]
[root@Zabbix-server ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.1.25 -p 10050 -k "mysql.status[Uptime]"
12085434
[root@Zabbix-server ~]#
若是出現相似這一串key的數字,就說明配置ok,服務端能監控到客戶端的mysql數據了!
成功啦,以後在監控界面增長主機對應的MySQL模板就ok了。 (上面命令中的-k後面添加的是鍵值,這個在zabbix界面裏對應模塊裏能夠找到。好比在某主機的"主動發現"規則裏就能看到鍵值)
5)登陸zabbix監控界面,在「配置」-「模板」裏能夠看到自帶的mysql監控模板
在相應主機監控配置裏添加mysql的監控模版(zabbix自帶的)便可。
下面是mysql監控項的效果圖:
【1】監控mysql的帶寬:在zabbix前端能夠實時查看mysql發送接收的字節數。其中bytes received表示從全部客戶端接收到的字節數,bytes sent表示發送給全部客戶端的字節數。
【2】監控mysql的操做狀態:在zabbix前端能夠實時查看各類SQL語句每秒鐘的操做次數。