藉助zabbix和mysql performance monitor模板實現mysql數據庫的監控

   更多博文請關注:沒有傘的孩子必須努力奔跑 (www.xuchanggang.cn)mysql


1.安裝mpm須要的相關依賴包:[保險起見,agent端也安裝下面的依賴包]linux

[root@client141 ~]# yum -y install perl-File-Which perl-libwww-perl perl-Digest-SHA1 perl-DBD-MySQL perl-Time-HiRes perl-Crypt-SSLeay
# 上面perl-File-Which沒有自帶,須要自行下載安裝(若是還提示perl包,根據須要安裝相應perl版本)
[root@client141 ~]#  rpm -ivh perl-File-Which-1.09-5.1.noarch.rpm
2.下載mpm並解壓:[解壓後會產生兩個壓縮包]
[root@client141 ~]# tar -zxvf mysql_performance_monitor-latest.tar.gz
mysql_performance_monitor_agent-0.9.1.tar.gz
mysql_performance_monitor_templates-0.9.1.tar.gz
3.在zabbixe服務端或者是web端解壓模板文件:
[root@client141 ~]# tar -zxvf mysql_performance_monitor_templates-0.9.1.tar.gz
mysql_performance_monitor_templates-0.9.1/
mysql_performance_monitor_templates-0.9.1/CHANGELOG
mysql_performance_monitor_templates-0.9.1/xml/
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.ndb.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.security.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.innodb.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.mpm.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.myisam.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.mysql.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.aria.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.galera.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.slave.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.server.xml
mysql_performance_monitor_templates-0.9.1/xml/clone_screen.txt
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.master.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.drbd.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.pbxt.xml
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.process.xml
4.在zabbix server端或web導入相應模板文件:[加粗部分爲須要導入的模板]
[root@client141 ~]# cd mysql_performance_monitor_templates-0.9.1/xml/
在Zabbix Web UI導入監控所需的模板(「Configuration」->」Templates」->」Import」):
具體模板文件用途以下:
Template_FromDual.MySQL.ndb.xml              # 監控mysql cluster
Template_FromDual.MySQL.security.xml
Template_FromDual.MySQL.innodb.xml      # 監控innodb存儲引擎狀態變量
Template_FromDual.MySQL.mpm.xml         # 監控mpm agent自己,這個必須導入
Template_FromDual.MySQL.myisam.xml    # 監控myisam存儲引擎狀態變量
Template_FromDual.MySQL.mysql.xml       # 監控mysql 經常使用狀態變量
Template_FromDual.MySQL.aria.xml             # 監控aria存儲引擎的狀態變量
Template_FromDual.MySQL.galera.xml          # 監控 mysql galera cluster
Template_FromDual.MySQL.slave.xml        # 監控mysql主從複製中的slave的狀態
Template_FromDual.MySQL.server.xml      # 監控linux系統跟數據庫使用相關的附加項
Template_FromDual.MySQL.master.xml     # 監控mysql主從複製的master的狀態
Template_FromDual.MySQL.drbd.xml            # 監控drbd 設備的狀態信息
Template_FromDual.MySQL.pbxt.xml             # 監控pbxt存儲引擎狀態變量
Template_FromDual.MySQL.process.xml        # 監控各類linux進程(好比:mysqld,ndbd)
5.在客戶端[mysql 數據庫服務器端] 安裝mysql_performance_monitor_agent
[root@client100 ~]# tar -zxvf mysql_performance_monitor_agent-0.9.1.tar.gz
[root@client100 ~]# mv mysql_performance_monitor_agent-0.9.1 /usr/local/mysql_performance_monitor_agent
[root@client100 ~]# cd /usr/local/mysql_performance_monitor_agent/
# 修改 FromDualMySQLagent.pl 文件,指定zabbix_sender的位置
[root@client100 mysql_performance_monitor_agent]# sed -i 's|/usr/local/bin|/usr/bin|g' FromDualMySQLagent.pl
# 編輯配置文件
[root@client100 mysql_performance_monitor_agent]# cd etc/
[root@client100 etc]# cp FromDualMySQLagent.conf.template /etc/FromDualMySQLagent.conf
[root@client100 etc]# vim /etc/FromDualMySQLagent.conf
[default]
Type = mysqld
Debug = 2
#執行日誌文件路徑,須要zabbix用戶可寫權限
LogFile       = /var/log/zabbix/FromDualMySQLagent.log
CacheFileBase = /var/log/zabbix/cache/FromDualAgentCache
#須要在Mysql中進行受權
Username = mpm
Password = kongzhong
MysqlHost = 127.0.0.1
MysqlPort = 3306
ZabbixServer = 192.168.1.141
Disabled = false
Modules = process mysql myisam innodb
#ClusterLog   = /var/lib/mysql-cluster/ndb_1_cluster.log
# Mysql的PID文件,須要zabbix用戶可讀權限
PidFile      = /var/run/mysqld/mysqld.pid
#[db_server]
#Type         = mysqld
#Modules      = mpm server
#下面的主機名須要跟Zabbix Server裏面定義的主機名一致
[client100]
Type = mysqld
#這些模塊必須在mysql數據庫上已經實現了功能,如主從,若是沒有配置主從,而添加了master模板,在執行過程當中就會報錯
Modules = mpm server process mysql myisam innodb master
PidFile      = /var/run/mysqld/mysqld.pid
6.修改zabbix agent 配置文件:
# 這個參數配置文件,是本身新建的
[root@client100 ~]# vim /etc/zabbix/zabbix_agentd.d/FromDual_MySQL_monitoring.conf
# 添加以下參數:
UserParameter=FromDual.MySQL.check,/usr/local/mysql_performance_monitor_agent/FromDualMySQLagent.pl /etc/FromDualMySQLagent.conf
7.登錄數據庫,受權相應的mpm用戶,權限
mysql> grant process,replication client on *.* to 'mpm'@'127.0.0.1' identified by 'kongzhong';
mysql> flush privileges;
8.修改 FromDualMySQLagent.conf 配置文件相關目錄的權限:
# 建立相關日誌存放目錄:
[root@client100 ~]# mkdir -p /var/log/zabbix/cache
# 手動建立日誌文件:
[root@client100 ~]#touch /var/log/zabbix/FromDualMySQLagent.log
# 修改目錄權限:
[root@client100 ~]#chown zabbix:zabbix /var/log/zabbix/ -R
# 修改權限
[root@client100 log]# chmod o+r /var/run/mysqld/mysqld.pid
# zabbix-agent 重啓
[root@client100 etc]# /etc/init.d/zabbix-agent restart
9.上面配置完成後,就須要在zabbix web建立組和主機,關聯相關模板,這裏不演示了
10.簡單測試:
(1).檢查MPM插件的工做狀況:
[root@client100 ~]# /usr/local/mysql_performance_monitor_agent/FromDualMySQLagent.pl  /etc/FromDualMySQLagent.conf
1
# 返回值爲1:表示MPM插件正常,重啓zabbix_agent,加載mpm插件
(2).在實際中,若是懷疑是zabbix_agentd問題,使用以下測試方式:
[root@client100 ~]#  zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t FromDual.MySQL.check
FromDual.MySQL.check                          [t|1]
[root@client100 ~]# zabbix_agentd  -c /etc/zabbix/zabbix_agentd.conf -t system.uptime
system.uptime                                 [u|6518]
# 以上能正常返回值,說明zabbix_agent是正常的
(3). 若是有錯誤的話,請查看/var/log/zabbix下的相關日誌,不少是權限問題,注意查看修改
# 提示pid文件不可讀:採用:usermod -G mysql zabbix
(4). 報以下故障時:
([root@client100 ~]# tail -f /var/log/zabbix/FromDualMySQLagent.log ),其餘zabbix服務端、客戶端日誌都正常,無報錯
5279:2014-03-17 15:26:39.853 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.
5279:2014-03-17 15:26:39.867 - WARN:       192.168.1.141, 10051, db_server
5279:2014-03-17 15:26:39.867 - WARN:       Connection to zabbix server failed (rc=1305)!
5279:2014-03-17 15:26:40.878 - WARN:       192.168.1.141, 10051, db_server
5279:2014-03-17 15:26:40.878 - WARN:       Connection to zabbix server failed (rc=1305)!
5279:2014-03-17 15:26:40.882 - WARN:       192.168.1.141, 10051, 192.168.1.100
5279:2014-03-17 15:26:40.882 - WARN:       Connection to zabbix server failed (rc=1305)!
5279:2014-03-17 15:26:41.890 - WARN:       192.168.1.141, 10051, 192.168.1.100
可採起措施以下步驟:
  第一步:修改 FromDualMySQLagent.conf 配置文件,註釋掉以下部分:[這些註釋的部分,由於在zabbix web沒有配置此主機]
# [db_server]
# Type         = mysqld
# Modules      = mpm server

  [client100]web

 Type = mysqldsql

  Mysqlport=3306數據庫

  Modules = mpm server process mysql myisam innodb mastervim

  PidFile      = /var/run/mysqld/mysqld.pid服務器

  第二步: 註釋掉模塊裏檢查zabbix server 的語句:
  [root@client100 ~]# vim /usr/local/mysql_performance_monitor_agent/lib/sendData.pm
# 註釋掉的語句以下:
 #   $rc = &FromDualMySQLagent::checkConnectionToZabbixServer($main::gParameter{'ZabbixServer'}, $main::gParameter{'ZabbixServerPort'}, $main::gParameter{'Hostname'});

(5). 要注意 /var/log/zabbix/cache/ 目錄下相關文件的權限,保證zabbix用戶下
[root@client100 ~]# cd /var/log/zabbix/cache/
[root@client100 cache]# ll
-rw-rw-r-- 1 zabbix zabbix 0 Mar 22 07:25 FromDualAgentCache.192.168.1.100.cache
# 特別須要注意的是:此文件沒有寫入是正常的,由於程序自動清空了此文件,但若是說文件不停的變大,那就說明配置有問題,數據沒有發出去
(6). 報以下錯誤,處理方式爲:
12933:2014-03-22 06:52:06.005 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.
12933:2014-03-22 06:52:06.019 - ERR :       Load of cache file failed. rc=1301
12933:2014-03-22 06:52:07.029 - ERR :       Load of cache file failed. rc=1301

# 報此錯了,上面的文件,也在不斷變大,通常是上面文件有錯,建議刪掉文件,從新啓動程序,讓程序本身再從新建立個新文件(而不是清空文件)
(7).在zabbix web 端配置主機組時,主機組爲 mysql database (能夠設置爲其餘組,已經測試成功)
相關文章
相關標籤/搜索