Zabbix配合fpmmm(mpm)實現對Mysql的全面監控

               

                            Zabbix使用fpmmm(mpm)模塊實現對Mysql的全面監控

                                       (Performance Monitor for MySQL)

 

fpmmm is the FromDualPerformance Monitor for MySQL and MariaDB and the counterpart to the MySQL EnterpriseMonitor from Oracle.With fpmmm you can monitor your MySQL/MariaDB databases andalso your database hosts (machines).fpmmm works on Linux and should also workon Mac OSX (and possibly some other *BSD derivatives). Windows support is plannedfor the next major release.fpmmm is the successor of mpm. mpm was renamed tofpmmm because of the naming conflict with the Apache Multi-Processing Modules(MPM).fpmmm needs a Zabbix Server for storing its performance data. There youcan see the graphs, and alerts are sent to you from there.

上話摘自官網,簡單來說mpm改名爲fpmmm,可配合zabbix監控數據庫。用了一段時間後感覺挺好使的。使用fpmmm可以很全面的監控mysql數據庫。

官網:http://www.fromdual.com


被監控主機操作: 

1.安裝依賴的程序包:

[root@test-master-mysql-42 bin]# yum install php-cli php-process php-mysqli


2.下載fpmmm

http://down.51cto.com/data/2239742

https://support.fromdual.com/admin/public/download.php?product_id=0

 

[root@test-app-server-130 install]#

wget https://support.fromdual.com/admin/download/fpmmm-0.10.6.tar.gz

wKiom1fPluTDbRS3AAA0C5hQISY152.png


3.解壓:

[root@test-app-server-130 install]# tar -xvf fpmmm-0.10.6.tar.gz

wKioL1fPlu6yKOzrAAAXCMTju0E376.png

 

4.移動到部署位置:

[root@test-app-server-130 install]# mv fpmmm-0.10.6 /data/server/zabbix_agent/fpmmm/

wKiom1fPlvux9AiEAAAMiiT5wpg140.png

[root@test-app-server-130 install]# cd /data/server/zabbix_agent/fpmmm/

[root@test-app-server-130 fpmmm]# ls

bin CHANGELOG  INSTALL  lib tpl

 

5.mysql創建監控帳號:

mysql> grant PROCESS,REPLICATION CLIENT,REPLICATION SLAVE on *.* to zabbix_fpmmm@'127.0.0.1' identified by '密碼';

mysql> grant select on mysql.user to zabbix_fpmmm@'127.0.0.1';

 

6.創建並修改配置文件:

(注意:事例裏配置的目錄上一級已存在,自己在搭建時注意目錄是否存在,若嫌麻煩和權限問題可以都放在tmp目錄)

[root@test-app-server-130 fpmmm]# cp -pr  tpl/fpmmm.conf.templatetpl/fpmmm.conf

[root@test-app-server-130 fpmmm]# vim tpl/fpmmm.conf

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

1 [default]

5 Type          = mysqld

 

#####修改日誌等級,建議在部署時調高些,便於排查問題######

13 LogLevel      = 2

 

#####日誌位置,部署時多察看日誌,便於排錯#####

14 LogFile       = /data/logs/zabbix/fpmmm.log

15 # Directory where the cache files shouldbe written to:

 

#####CacheFileBase會以fpmmm+”.”+”hostname”+”.”cache命名,注意權限,zabbix對這個文件要有讀寫權限#####

16 CacheFileBase =/data/server/zabbix_agent/fpmmm/fpmmm

17 AgentLockFile =/data/server/zabbix_agent/fpmmm/fpmmm.lock

 

#####本地被監控mysql的帳號密碼等信息,注意創建相應監控帳號#####

25 Username     = zabbix_fpmmm

26 Password      = 密碼

27 MysqlHost     = 127.0.0.1

28 MysqlPort     = 3306

29

 

30 # Zabbix Server IP address

#####zabbix服務端的地址#####

31 ZabbixServer  = zabbix服務端ip

 

32

33 # If section is disabled

34 Disabled      = false

46 Modules      = innodb master myisam mysql processsecurity

47

48 # Special parameter which is used formodule process (MySQL PID file!)

 

#####mysqlpid,可以從my.cnf裏查找,未指定 pid文件時,pid 文件默認名爲 主機名.pid,存放的路徑在默認MySQLdate數據目錄######

49 PidFile       = /data/server/mysql/data/mysqld.pid

 

#####只是監控mysqldb_hos註釋掉#####

62 #[db_host]          # This MUST match Hostname in Zabbix!

63

64 #Type          = mysqld

65 #Modules       = fpmmm server

 

#####配置監控主機信息,下面的hostname可以自己隨意取名字,但要和zabbix網頁上添加主機時的配置主機hostname一致#####

72 [hostname]          # This MUST match Hostname in Zabbix!

73

74 Type          = mysqld

75

76 MysqlPort     = 3306

 

#####pid跟上面相同#####

77 Modules       = process mysql myisam innodb masterslave security

78 PidFile       = /data/server/mysql/data/mysqld.pid

 

#####只監控mysqlmemcached註釋掉#####

81 #[memcached]          # This MUST match Hostname in Zabbix!

82

83 #Type          = memcached

84 #Modules       = memcached

85

86 #MemcachedHost = 127.0.0.1

87 #MemcachedPort = 11211

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

wKioL1fPlwvDFZPjAABm5Wq4XR8541.png

wKiom1fPlxfju3jhAABuj8it41o239.png

 

 

7.第一次嘗試運行:

[root@test-master-mysql-42 bin]#/data/server/zabbix_agent/fpmmm/bin/fpmmm --config=/data/server/zabbix_agent/fpmmm/tpl/fpmmm.conf

PHP Notice: Undefined index: PATH in /data/server/zabbix_agent/fpmmm/bin/fpmmm.phpon line 29

PHP Notice: Undefined index: PATH in /data/server/zabbix_agent/fpmmm/bin/fpmmm.phpon line 29

PHP Warning:  gettimeofday(): It is not safe to rely on thesystem's timezone settings. You are *required* to use the date.timezone settingor the date_default_timezone_set() function. In case you used any of those methodsand you are still getting this warning, you most likely misspelled the timezoneidentifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in/data/server/zabbix_agent/fpmmm/lib/log.inc on line 103

 

這裏有兩個問題:

 1).php時區錯誤。

解決方法:

修改php.ini,在php.ini中找到;date.timezone=  去掉它前面的;號,然後設置data.timezone= "Asia/Shanghai";

[root@test-master-mysql-42~]# vim /etc/php.ini

wKioL1fPlyrDmjPkAAAaCxDTdyQ594.png

 

 2).未找到zabbix_sender。

可以再次執行命令的同時監控日誌(tail -f /data/logs/zabbix/fpmmm.log)看到報錯信息:7887:2016-09-0621:35:11.983 - ERR :       which: nozabbix_sender in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/data/server/mysql/bin:/root/bi)


解決方法:在/usr/local/bin/添加zabbix_sender軟鏈接

[root@test-master-mysql-42 ~]# ln -s /data/server/zabbix_agent/bin/zabbix_sender /usr/local/bin/

同時註釋掉/data/server/zabbix_agent/fpmmm/bin/fpmmm.php的第29行。

wKiom1fPlzah5e1CAAAJSgFm-wM610.png

wKiom1fPlz6Soj2eAAALMSAmrLw327.png

 

8. 第二次運行:

[root@test-master-mysql-42 bin]#/data/server/zabbix_agent/fpmmm/bin/fpmmm --config=/data/server/zabbix_agent/fpmmm/tpl/fpmmm.conf

1

沒有報錯,日誌也正常(tail -f /data/logs/zabbix/fpmmm.log)。

 

9. 但是,在測試運行後需要修改幾個文件的權限和所屬者,不然在以後的運行中會報錯:

1). 修改新產生的cache文件權限:

[root@test-master-mysql-42 zabbix_agent]# chown zabbix.zabbix /data/server/zabbix_agent/fpmmm/ -R

wKioL1fPl0WwUvxWAABcMKdn1q0602.png

2). 修改日誌權限:

[root@test-master-mysql-42 logs]# chown zabbix.zabbix /data/logs/zabbix/ -R

wKioL1fPl1CwsYsQAAAZezOiLo8901.png

3).修改mysqlpid權限讓zabbix可讀(但下次mysql重啓後pid權限會改變),或直接把zabbix用戶加到mysql組:

[root@test-master-mysql-42 ~]# chmod 664 /data/server/mysql/data/mysql.pid

[root@test-master-mysql-42 ~]# usermod -a -G mysql zabbix


注意:在刪除日誌後需要重新給權限,有問題一定要看日誌,根據日誌報錯來排查。


 

10.修改zabbixagent配置文件,在最末尾添加鍵值:

[root@test-master-mysql-42  fpmmm]# vim 

/data/server/zabbix_agent/etc/zabbix_agentd.conf

UserParameter=FromDual.MySQL.check,/data/server/zabbix_agent/fpmmm/bin/fpmmm--config=/data/server/zabbix_agent/fpmmm/tpl/fpmmm.conf

wKiom1fPl2LjOT62AAB2EsRzrG0483.png

重啓zabbix-aget服務。

 

 

11.導入模版

模版就在下載的安裝包的tpl目錄

wKioL1fPl2-B3_9nAABPnrSBejQ021.png

下載後解壓出模板導入

wKioL1fPl3mzijQuAAAww18FEJ0835.png

 

只需要導入需要的就行,可以導入:

Template_FromDual.MySQL.server.xml  Template_FromDual.MySQL.innodb.xml Template_FromDual.MySQL.master.xmlTemplate_FromDual.MySQL.mysql.xml  Template_FromDual.MySQL.process.xml  Template_FromDual.MySQL.server.xml  Template_FromDual.MySQL.slave.xml

 

 

12.添加主機:

wKiom1fPl4HA4BT9AABBCFuXGyI911.png

wKioL1fPl5XS0_AXAAApZJUT9Sk553.png

添加完畢後,可以去最新數據裏看是否收到數據

wKiom1fPl5_Qj17XAAAq4YbyPIM716.png

 


 

13.添加到計劃任務:

遇到沒有數據的情況,將fpmmm加到crontab計劃任務發送數據到zabbix_server(需要添加SHELL和PATH),如下:

執行set命令獲取PATH:

wKiom1mWuC7ifYtMAABMWbVS0n8716.jpg-wh_50


[root@test-master-mysql-42  fpmmm]# crontab -e

*/2 * * * * SHELL=/bin/bash;PATH=/data/server/java/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/curl/bin:/root/bin;/bin/bash /data/server/zabbix_agent/fpmmm/bin/fpmmm  --config=/data/server/zabbix_agent/fpmmm/tpl/fpmmm.conf >/dev/null




參考: http://www.fromdual.com/fpmmm-installation-guide

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