zabbix监控mysql数据库性能实现
Zabbix對于主機監(jiān)控通常有多種方式: 例如 Trapper、Agent、SNMP、ICMP等.
Trapper工作原理:
被監(jiān)控主機根據(jù)用戶設定的時間間隔定期將數(shù)據(jù)push到Zabbix Server.這里主要介紹Agent.
Agent工作原理:
Agent 安裝在被監(jiān)控主機上,定期主動的監(jiān)控本機的資源和應用,然后將數(shù)據(jù)進行處理發(fā)送給Zabbix?
Server. Agent工作方式又分為 Passive Check 和 Active Check。
Passive Check: Zabbix Server 發(fā)起數(shù)據(jù)索取請求,Agent響應對應的數(shù)據(jù).
Active Check: Agent首先從Zabbix Server 檢索監(jiān)控項列表,然后定期將對應的數(shù)據(jù)主動的發(fā)送到
? ? ? ? ? ? ?.Zabbix Server
Zabbix Agent 本身預定義了一些監(jiān)控類型,而對于沒有預定義的需要管理員自行定義.因此,Zabbix提
供了"UserParameter"參數(shù),以方便用戶根據(jù)自己的需求自定義想要獲取的數(shù)據(jù).
"UserParameter" 語法:
| 1 | UserParameter=<key>,<command> |
<key> 用戶自定義一個key; <command>為命令,該命令用來獲取用戶想要監(jiān)控的數(shù)據(jù),也就是key的值;
定好UserParameter參數(shù)后,在為主機或者模板配置監(jiān)控項的時候,在"key"中輸入上面自定義的key的
名字就可以了.
假如我要獲取Mysql Server的版本,我可以這樣定義"UserParameter":
打開 Zabbix Agent安裝路徑下的 etc/zabbix_agentd.conf 配置文件,翻頁到最后頁面,鍵入如下
行:
UserParameter=mysql.version,mysql -V
這里我們自定義的key名就是"mysql.version",命令"mysql -V"用來獲取Mysql 版本號,其實就是key對
應的值.
UserParameter參數(shù)實現(xiàn)的原理通俗來講,就是我們先要熟悉Mysql命令,通過Mysql的命令獲取想要的
數(shù)據(jù),然后賦值給自定義的key,最后通過Zabbix Server獲取這個值通過圖像等方式展示出來.
下面利用Agent來實現(xiàn)對mysql性能的監(jiān)控。
利用UserParameter參數(shù)自定義Agent Key。
mysql通常監(jiān)控的內容如下:(修改zabbix_agentd.conf文件)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | UserParameter=mysql.ping,mysqladmin -uroot ping|grep alive|wc -l UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T" UserParameter=mysql.threads,mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q" UserParameter=mysql.questions,mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S" UserParameter=mysql.slowqueries,mysqladmin -uroot status|cut -f5 -d":"|cut -f1 -d"O" UserParameter=mysql.qps,mysqladmin -uroot status|cut -f9 -d":" UserParameter=mysql.version,mysql -V UserParameter=mysql.Com_update,mysqladmin -uroot extended-status |grep -w?"Com_update"|cut -d"|"?-f3 UserParameter=mysql.Com_select,mysqladmin -uroot extended-status |grep -w?"Com_select"|cut -d"|"?-f3 UserParameter=mysql.Com_insert,mysqladmin -uroot extended-status |grep -w?"Com_insert"|cut -d"|"?-f3 UserParameter=mysql.Com_commit,mysqladmin -uroot extended-status |grep -w?"Com_commit"|cut -d"|"?-f3 UserParameter=mysql.Com_rollback,mysqladmin -uroot extended-status |grep -w?"Com_rollback"|cut -d"|"?-f3 UserParameter=mysql.Com_begin,mysqladmin -uroot extended-status |grep -w?"Com_begin"|cut -d"|"?-f3 UserParameter=mysql.Bytes_sent,mysqladmin -uroot extended-status |grep -w?"Bytes_sent"?|cut -d"|"?-f3 UserParameter=mysql.Bytes_received,mysqladmin -uroot extended-status |grep -w?"Bytes_received"?|cut -d"|"?-f3 |
然后我們在ZABBIX WEB管理控制臺,新建一個MYSQL模板,然后創(chuàng)建監(jiān)控項,并設置對應的key就可
以了,如下圖是我創(chuàng)建的模板:
打開其中一項后,如下圖:
對應的UserParameter參數(shù)為 ?
UserParameter=mysql.questions,mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
然后將運行Mysql服務的主機鏈接到該模板,等待固定時間后,就可以看到數(shù)據(jù)了,如圖示:
這樣就實現(xiàn)了對mysql性能的監(jiān)控,可以根據(jù)數(shù)據(jù)查看數(shù)據(jù)庫運行狀態(tài),性能瓶頸等進行調優(yōu)了。
當然也可以利用trapper方式推送數(shù)據(jù)到Server.這里不過多介紹.
? ? ?本文轉自marbury 51CTO博客,原文鏈接:http://blog.51cto.com/magic3/1324494,如需轉載請自行聯(lián)系原作者
總結
以上是生活随笔為你收集整理的zabbix监控mysql数据库性能实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新CCIE笔记之'口口相传'路由协议
- 下一篇: 如何找回被create or repla