zabbix監控mysql數據庫性能實現

本文修改自 “史振寧的技術博客” 博客;

如需要訪問原文請點擊http://magic3.blog.51cto.com/1146917/1324494

######################################################################################################

修改地方爲:1、數據庫賬戶密碼存放在單一配置文件;

           2、更新配置文件內容;

######################################################################################################



Zabbix對於主機監控通常有多種方式: 例如 Trapper、Agent、SNMP、ICMP等.


Trapper工作原理:

被監控主機根據用戶設定的時間間隔定期將數據push到Zabbix Server.這裏主要介紹Agent.


Agent工作原理:

Agent 安裝在被監控主機上,定期主動的監控本機的資源和應用,然後將數據進行處理髮送給Zabbix

Server. Agent工作方式又分爲 Passive Check 和 Active Check。

Passive Check: Zabbix Server 發起數據索取請求,Agent響應對應的數據.

Active Check: Agent首先從Zabbix Server 檢索監控項列表,然後定期將對應的數據主動的發送到

            .Zabbix Server



Zabbix Agent 本身預定義了一些監控類型,而對於沒有預定義的需要管理員自行定義.因此,Zabbix提

供了"UserParameter"參數,以方便用戶根據自己的需求自定義想要獲取的數據.


"UserParameter" 語法:


1
UserParameter=<key>,<command>


<key> 用戶自定義一個key; <command>爲命令,該命令用來獲取用戶想要監控的數據,也就是key的值;

定好UserParameter參數後,在爲主機或者模板配置監控項的時候,在"key"中輸入上面自定義的key的

名字就可以了.


假如我要獲取Mysql Server的版本,我可以這樣定義"UserParameter":

打開 Zabbix Agent安裝路徑下的 ../etc/zabbix_agentd.conf 配置文件,翻頁到最後頁面,鍵入如下

行:

UserParameter=mysql.version,mysql -V


這裏我們自定義的key名就是"mysql.version",命令"mysql -V"用來獲取Mysql 版本號,其實就是key對

應的值.

UserParameter參數實現的原理通俗來講,就是我們先要熟悉Mysql命令,通過Mysql的命令獲取想要的

數據,然後賦值給自定義的key,最後通過Zabbix Server獲取這個值通過圖像等方式展示出來.


下面利用Agent來實現對mysql性能的監控。


1.利用UserParameter參數自定義Agent Key。


mysql通常監控的內容如下:(修改zabbix_agentd.conf文件或自定義一個userparams.conf文件)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
UserParameter=mysql.ping,HOME=/usr/local/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.uptime,HOME=/usr/local/zabbix mysqladmin status|cut -f2 -d":"|cut -f1 -d"T"
UserParameter=mysql.threads,HOME=/usr/local/zabbix mysqladmin status|cut -f3 -d":"|cut -f1 -d"Q"
UserParameter=mysql.questions,HOME=/usr/local/zabbix mysqladmin status|cut -f4 -d":"|cut -f1 -d"S"
UserParameter=mysql.slowqueries,HOME=/usr/local/zabbix mysqladmin status|cut -f5 -d":"|cut -f1 -d"O"
UserParameter=mysql.qps,HOME=/usr/local/zabbix mysqladmin status|cut -f9 -d":"
UserParameter=mysql.version,HOME=/usr/local/zabbix mysql -V
UserParameter=mysql.Com_update,HOME=/usr/local/zabbix mysqladmin extended-status |grep -w "Com_update"|cut -d"|" -f3
UserParameter=mysql.Com_select,HOME=/usr/local/zabbix mysqladmin extended-status |grep -w "Com_select"|cut -d"|" -f3
UserParameter=mysql.Com_insert,HOME=/usr/local/zabbix mysqladmin extended-status |grep -w "Com_insert"|cut -d"|" -f3
UserParameter=mysql.Com_commit,HOME=/usr/local/zabbix mysqladmin extended-status |grep -w "Com_commit"|cut -d"|" -f3
UserParameter=mysql.Com_rollback,HOME=/usr/local/zabbix mysqladmin extended-status |grep -w "Com_rollback"|cut -d"|" -f3
UserParameter=mysql.Com_begin,HOME=/usr/local/zabbix mysqladmin extended-status |grep -w "Com_begin"|cut -d"|" -f3
UserParameter=mysql.Com_delete,HOME=/usr/local/zabbix mysqladmin extended-status |grep -w "Com_delete" |cut -d"|" -f3
UserParameter=mysql.Bytes_sent,HOME=/usr/local/zabbix mysqladmin extended-status |grep -w "Bytes_sent" |cut -d"|" -f3
UserParameter=mysql.Bytes_received,HOME=/usr/local/zabbix mysqladmin extended-status |grep -w "Bytes_received" |cut -d"|" -f3

2.在zabbix安裝根目錄下新建一個.my.cnf的隱藏文件

vim /usr/local/zabbix/.my.cnf

    編輯內容並保存;  

   [client]

   user=MySQL用戶

   host=localhost

   password=用戶密碼

3.然後我們在ZABBIX WEB管理控制檯,新建一個MYSQL模板,然後創建監控項,並設置對應的key就可

以了,如下圖是我創建的模板:

wKiom1Lh3hfwUItrAAVrI_UUTWI483.jpg


打開其中一項後,如下圖:

對應的UserParameter參數爲  

UserParameter=mysql.questions,mysqladmin status|cut -f4 -d":"|cut -f1 -d"S"

wKioL1Lh3jnDdDfJAAKU7am8LOg921.jpg


然後將運行Mysql服務的主機鏈接到該模板,等待固定時間後,就可以看到數據了,如圖示:

wKioL1Lh38ryyFnDAAUwkMnbvig187.jpg


這樣就實現了對mysql性能的監控,可以根據數據查看數據庫運行狀態,性能瓶頸等進行調優了。


當然也可以利用trapper方式推送數據到Server.這裏不過多介紹.




PS:注意將zabbix_agentd.conf裏面的

#Include=/usr/local/etc/zabbix_agentd.userparams.conf

修改爲

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/(此處爲我個人設置,具體各位看官自己定義)

重新指定自定義的userparams.conf文件的位置


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章