zabbix3.0.4使用percona-monitoring-plugins插件來監控mysql5.6的詳細實現過程

zabbix3.0.4使用percona-monitoring-plugins插件來監控mysql5.6的詳細實現過程php


由於Zabbix自帶的MySQL監控沒有提供能夠直接使用的Key,因此通常不採用,業界的同窗們都使用Percona Monitoring Plugins 監控 MySQL的方式node

Percona 爲 MySQL 數據庫服務器進行了改進,在功能和性能上較 MySQL 有着很顯著的提高。該版本提高了在高負載狀況下的 InnoDB 的性能、爲 DBA 提供一些很是有用的性能診斷工具;另外有更多的參數和命令來控制服務器行爲。mysql

對線上的MySQL服務器實現監控,percona監控插件是php開發,所以要在agent安裝php環境web

1、zabbix-agent端操做(即被監控的Mysql服務器)
1.安裝php環境和插件sql

①安裝php環境
percona監控插件是php開發,所以要在agent安裝php環境shell

# yum install zabbix-agent php php-mysql
[root@centossz008 ~]# rpm -qa zabbix-agent php php-mysql
php-5.3.3-49.el6.x86_64
zabbix-agent-1.8.22-1.el6.x86_64
php-mysql-5.3.3-49.el6.x86_64

 

②安裝percona插件數據庫

[root@centossz008 ~]# rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.7/binary/redhat/6/x86_64/percona-zabbix-templates-1.1.7-2.noarch.rpm

 

③配置參數vim

# mkdir -p /etc/zabbix/zabbix_agentd.d
# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf

 

將模板include到配置文件中
# vim /etc/zabbix/zabbix_agentd.conf
添加以下:centos

Include=/etc/zabbix/zabbix_agentd.d/

 

重啓生效安全

service zabbix-agent restart

 

2.修改監控相關的腳本:

①編輯監控的php配置文件(經過該配置文件獲取Mysql的帳號密碼)

單獨添加一個較低權限的用戶zabbix專門用於對數據庫進行監控

mysql> GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO zabbix@'localhost' IDENTIFIED BY 'zabbixpassword'; 
mysql> flush privileges;

 

# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf

<?php
$mysql_user = 'zabbix'; 
$mysql_pass = 'zabbixpassword';

 

②編輯ss_get_mysql_stats.php文件,修改具體的用戶名、密碼、socket、Mysql端口等參數

# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_user = 'zabbix';
$mysql_pass = 'zabbixpassword';
$mysql_port = 3306;
$mysql_socket = "/tmp/mysql.sock";

 

③在zabbix-agent客戶端進行測試(必定要能獲取數據,不然服務端會沒法獲取監控數據)

# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh nj
276671

# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gw
1

 

2、zabbix-server web端操做
1.導入監控模板


報錯:
nvalid tag "/zabbix_export/date": "YYYY-MM-DDThh:mm:ssZ" is expected.

將zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml導入zabbix2.4中再導出。以後將新的導出xml導入到3.0中問題解決。

2.修改日誌權限

chown -R zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt

 

3.添加客戶端模板

4.經過服務端驗證是否生效,並查看圖像

客戶端/var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf 文件能夠看到支持的監控項

[root@node2 scripts]# zabbix_get -s 192.168.3.12 -k MySQL.file-reads
171
[root@node2 scripts]# zabbix_get -s 192.168.3.12 -k MySQL.os-waits
2

 

3、監控mysql主從
須要在slave的節點上配置

修改slave上的監控腳本,添加帳號、密碼、socket等參數

# vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
RES=`HOME=~zabbix mysql -h192.168.3.13 -uzabbix -pzabbixpassword -S /tmp/mysql.sock -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`

 

監控主從同步

  監控主從同步的主要項目:
  # Slave_IO_Running和Slave_SQL_Running是否爲yes即這兩個線程是否在工做
  UserParameter=MySQL.running-slave,/usr/local/zabbix_agents_3.2.0/scripts/get_mysql_stats_wrapper.sh running-slave
  # 主從延遲多少秒Seconds_Behind_Master
  UserParameter=MySQL.slave-lag,/usr/local/zabbix_agents_3.2.0/scripts/get_mysql_stats_wrapper.sh jj


要注意php的路徑
CMD="/usr/local/php/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items gg"
默認是這樣 RES
=`HOME=~/usr/local/mysql/bin/mysql -S /tmp/mysql.sock -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','` 監控slave的時候,客戶端在shell中是能夠獲取支持參數的RES= yes,yes的 執行的時候發出警告 [root@Europe_DB1:~]# /usr/local/zabbix_agents_3.2.0/scripts/get_mysql_stats_wrapper.sh running-slave mysql: [Warning] Using a password on the command line interface can be insecure. 1 zabbix_server服務端在監控的時候就獲取警告了 [root@aliyun-american-guigu-zabbix:~]# zabbix_get -s 1.1.1.1 -p 10050 -k 'MySQL.running-slave' mysql: [Warning] Using a password on the command line interface can be insecure. 1 會報錯: 不支持的key 解決辦法: RES=`HOME=/usr/local/zabbix_agents_3.2.0/scripts /usr/local/mysql/bin/mysql -S /tmp/mysql.sock -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','` 語句中接入HOME目錄,而且在該目錄下建立.my.cnf文件,將帳戶密碼寫入這個文件,mysql在鏈接數據庫的時候就會去讀取這個文件,就繞過了不安全的提示 # cat /usr/local/zabbix_agents_3.2.0/scripts/.my.cnf [client] user=zabbix password=zabbix

 

 

測試報警是否生效
mysql> stop slave;
Query OK, 0 rows affected (0.13 sec)

相關文章
相關標籤/搜索