第二次部署Zabbix 3.0使用percona模板監控MySQL,遇到的問題和解決過程

官方地址:https://www.percona.com/software/mysql-database/percona-serverphp

294b069ca0766ce2a2e1afb629a58fba.png

  在官網找到下載頁面:html

9ae609c8affcde0d35cbeb709d2e31f1.png

  percona模板須要php環境,所以,須要安裝:mysql

[root@DB2 ~]#yum -y install php php-mysql

  下載安裝perconaios

[root@DB2 ~]# rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.7/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.7-2.noarch.rpm
Retrievinghttps://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.7/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.7-2.noarch.rpm
warning:/var/tmp/rpm-tmp.0ad5dL: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing...                         ################################# [100%]
Updating /installing...
   1:percona-zabbix-templates-1.1.7-2################################# [100%]
 
Scripts areinstalled to /var/lib/zabbix/percona/scripts
Templates areinstalled to /var/lib/zabbix/percona/templates

  查看percona安裝後的細節:sql

[root@DB2 ~]#rpm -ql percona-zabbix-templates
/var/lib/zabbix/percona
/var/lib/zabbix/percona/scripts
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
/var/lib/zabbix/percona/templates
/var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf
/var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.7.xml

  複製percona配置文件到zabbix agent目錄:docker

[root@DB2 ~]# cd /var/lib/zabbix/percona/scripts/
[root@DB2scripts]# ll
total 64
-rwxr-xr-x 1root root  1251 Dec 10  2016 get_mysql_stats_wrapper.sh
-rwxr-xr-x 1root root 59976 Dec 10  2016ss_get_mysql_stats.php
[root@DB2scripts]# cd ..
[root@DB2percona]# ll
total 8
drwxr-xr-x 2root root 4096 Nov 13 14:33 scripts
drwxr-xr-x 2root root 4096 Nov 13 14:33 templates
[root@DB2percona]# cd templates/
[root@DB2templates]# ll
total 284
-rw-r--r-- 1root root  18866 Dec 10  2016 userparameter_percona_mysql.conf
-rw-r--r-- 1root root 269258 Dec 10  2016zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.7.xml
[root@DB2templates]# pwd
/var/lib/zabbix/percona/templates
[root@DB2templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

  備份配置文件:數據庫

[root@DB2scripts]# cp get_mysql_stats_wrapper.sh get_mysql_stats_wrapper.sh.ori.20171114

  修改配置文件get_mysql_stats_wrapper.sh後,再執行出現下面的報錯。這是好的起色,修改bash腳本前,執行此命令沒有任何輸出。tomcat

  在zabbix agentpercona配置文件,找到獲取監控值的參數腳本:bash

[root@DB2scripts]# more /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf|grep MySQL.Threads-connected
UserParameter=MySQL.Threads-connected,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh iu
[root@DB2scripts]# ./get_mysql_stats_wrapper.sh gg
ERROR: run thecommand manually to investigate the problem: /usr/bin/php -q./ss_get_mysql_stats.php --host 10.253.40.67 --items gg
[root@DB2scripts]# sh /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh kt
ERROR: run thecommand manually to investigate the problem: /usr/bin/php -q/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --itemsgg

  根據網上的辦法執行命令:執行配置文件裏面的腳本,發現報錯信息和上面的同樣。app

  參考文檔:http://blog.csdn.net/mchdba/article/details/51447560——zabbix3.0.2使用perconamysql插件的遇到的詭異問題解決記錄

  登陸數據庫,查看當前的用戶:

mysql> select user,host from mysql.user;
+------------------+--------------+
| user             | host         |
+------------------+--------------+
| amq              | 10.253.%     |
| anzhengtong_user | 10.253.%     |
| crm              | 10.253.%     |
| dzqz_user        | 10.253.%     |
| rep              | 10.253.40.%  |
| yqd_pro_user     | 10.253.40.%  |
| jump_machine     | 10.253.40.64 |
| jump_machine     | 10.253.41.91 |
| yqd_onlys        | 10.253.41.91 |
| yqd_pro_user     | 10.253.43.%  |
| root             | localhost    |
+------------------+--------------+
11 rows in set (0.02 sec)

  建立用於zabbix的數據庫用戶並受權:

mysql> grant process,super,select on *.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rowsaffected (0.02 sec)
 
mysql> flushprivileges;
Query OK, 0 rowsaffected (0.07 sec)
 
mysql> exit
Bye

  把配置文件裏的數據庫用戶替換成剛建立的,以前使用的是數據庫root用戶:

[root@DB2 ~]#cat /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf 
<?php
$mysql_user = 'zabbix';
$mysql_pass = 'zabbix';
$mysql_port = 3306;

  重啓zabbix agent

[root@DB2scripts]# ps -ef|grep zabbix
zabbix   16822    1  0 16:05 ?        00:00:00 zabbix_agentd -c/etc/zabbix/zabbix_agentd.conf
zabbix   16823 16822 0 16:05 ?        00:00:00zabbix_agentd: collector [idle 1 sec]
zabbix   16824 16822 0 16:05 ?        00:00:00zabbix_agentd: listener #1 [waiting for connection]
zabbix   16825 16822 0 16:05 ?        00:00:00zabbix_agentd: listener #2 [waiting for connection]
zabbix   16826 16822 0 16:05 ?        00:00:00zabbix_agentd: listener #3 [waiting for connection]
zabbix   16827 16822 0 16:05 ?        00:00:00zabbix_agentd: active checks #1 [idle 1 sec]
root     17925 20105  0 16:17 pts/0    00:00:00 grep --color=auto zabbix
[root@DB2scripts]# pkill -f /etc/zabbix/zabbix_agentd.conf
[root@DB2scripts]# ps -ef|grep zabbix
root     17932 20105  0 16:17 pts/0    00:00:00 grep --color=auto zabbix
[root@DB2scripts]# zabbix_agentd -c/etc/zabbix/zabbix_agentd.conf
[root@DB2scripts]# ps -ef|grep zabbix
zabbix   17936    1  0 16:17 ?        00:00:00 zabbix_agentd -c/etc/zabbix/zabbix_agentd.conf
zabbix   17937 17936 0 16:17 ?        00:00:00zabbix_agentd: collector [idle 1 sec]
zabbix   17938 17936 0 16:17 ?        00:00:00zabbix_agentd: listener #1 [waiting for connection]
zabbix   17939 17936 0 16:17 ?        00:00:00zabbix_agentd: listener #2 [waiting for connection]
zabbix   17940 17936 0 16:17 ?        00:00:00zabbix_agentd: listener #3 [waiting for connection]
zabbix   17941 17936 0 16:17 ?        00:00:00zabbix_agentd: active checks #1 [idle 1 sec]
root     17943 20105  0 16:18 pts/0    00:00:00 grep --color=auto zabbix

  出現的報錯發生變化:

[root@DB2scripts]# ./get_mysql_stats_wrapper.sh gg
ERROR: run thecommand manually to investigate the problem: /usr/bin/php -q./ss_get_mysql_stats.php --host localhost --items gg

  執行報錯信息提供的命令:

[root@DB2scripts]# /usr/bin/php -q ./ss_get_mysql_stats.php --host localhost --items gg
ERROR: Can't connect tolocal MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

  找到/mysql.sock的文件路徑:

[root@DB2scripts]# ps -ef|grep mysql
mysql     1107 23209 25 Nov01 ?        3-07:55:38 /usr/local/mysql/bin/mysqld--basedir=/usr/local/mysql --datadir=/mysql/data/--plugin-dir=/usr/local/mysql/lib/mysql/plugin --user=mysql--log-error=/mysql/data/mysql-error.log --open-files-limit=65535--pid-file=/mysql/data/mysql.pid --socket=/mysql/data/mysql.sock
root     17989 20105  0 16:21 pts/0    00:00:00 grep --color=auto mysql
root     23209    1  0  2016 ?       00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/mysql/data/--pid-file=/mysql/data/mysql.pid

  建立軟連接:

[root@DB2scripts]# mkdir -p /var/lib/mysql
[root@DB2scripts]# ln -s /mysql/data/mysql.sock /var/lib/mysql/mysql.sock

  這樣執行是成功的:

[root@DB2scripts]# /usr/bin/php -q./ss_get_mysql_stats.php --host localhost --items gg
gg:955693623

  參考文檔:https://www.cnblogs.com/ivictor/p/5803415.html——如何在Zabbix上安裝MySQL監控插件PMP

  可是,這樣仍是報錯:

[root@DB2scripts]# ./get_mysql_stats_wrapper.sh gg
ERROR: run thecommand manually to investigate the problem: /usr/bin/php -q./ss_get_mysql_stats.php --host localhost --items gg

  確認mysql命令的路徑:

[root@DB2scripts]# which mysql
/usr/local/mysql/bin/mysql

  手動建立文件並受權:

[root@DB2scripts]# touch /tmp/localhost-mysql_zabbix_stats.txt
[root@DB2scripts]# chown  -R zabbix:zabbix /tmp/localhost-mysql_zabbix_stats.txt

  過了一段時間,執行成功:

[root@DB2scripts]# ./get_mysql_stats_wrapper.sh gg
958675246
[root@DB2scripts]# ./get_mysql_stats_wrapper.sh gw
3186887
[root@DB2 scripts]#pwd
/var/lib/zabbix/percona/scripts

  最後修改的腳本:不使用msyql的全路徑好像也能使用

[root@DB2 ~]#cat /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh 
#!/bin/sh
# The wrapperfor Cacti PHP script.
# It runs thescript every 5 min. and parses the cache file on each following run.
# Version: 1.1.7
#
# This programis part of Percona Monitoring Plugins
# License: GPLLicense (see COPYING)
# Copyright:2016 Percona
# Authors: RomanVynar
 
ITEM=$1
HOST=localhost
DIR=`dirname $0`
CMD="/usr/bin/php-q $DIR/ss_get_mysql_stats.php --host $HOST --items gg"
CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt"
 
if ["$ITEM" = "running-slave" ]; then
    # Check for running slave
    RES=`/usr/local/mysql/bin/mysql -e 'SHOW SLAVESTATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print$2}' | tr '\n' ','`
    if [ "$RES" = " Yes,Yes," ]; then
        echo 1
    else
        echo 0
    fi
    exit
elif [ -e$CACHEFILE ]; then
    # Check and run the script
    TIMEFLM=`stat -c %Y/tmp/$HOST-mysql_cacti_stats.txt`
    TIMENOW=`date +%s`
    if [ `expr $TIMENOW - $TIMEFLM` -gt 300 ];then
        rm -f $CACHEFILE
        $CMD 2>&1 > /dev/null
    fi
else
    $CMD 2>&1 > /dev/null
fi
 
# Parse cachefile
if [ -e$CACHEFILE ]; then
    cat$CACHEFILE | sed 's/ /\n/g; s/-1/0/g'| grep $ITEM | awk -F: '{print $2}'
else
    echo "ERROR: run the command manuallyto investigate the problem: $CMD"
fi

  參考文檔:http://blog.csdn.net/mchdba/article/details/51447750——zabbix3.0.2使用percona mysql插件來監控mysql5.7的詳細實現過程

  在zabbix服務端執行成功:

[root@iZ23ejm6lkdZ~]# zabbix_get -s 10.253.40.67 -k 'MySQL.pages-written'
3191043
[root@iZ23ejm6lkdZ~]# zabbix_get -s 10.253.40.67 -k 'MySQL.max-connections'
10000

  zabbix服務端出現報錯:

[root@iZ23ejm6lkdZ~]# zabbix_get -s 10.253.40.67 -k 'MySQL.pages-written'
rm: cannotremove ‘/tmp/localhost-mysql_cacti_stats.txt’: Operation not permitted
3191043

  /tmp目錄沒法自動建立文件,手動建立並受權:

[root@iZ23ejm6lkdZ~]# ll /tmp/
total 348560
drwxr-xr-x 2root          root               4096 Nov  1 09:56 hsperfdata_root
drwxr-xr-x 2tomcat        tomcat             4096 Sep 12 15:58hsperfdata_tomcat
-rw-r--r-- 1root          root          537998919 Nov 14 17:39 iostat_output
-rw-rw-r-- 1root          root               1488 Nov 14 17:37localhost-mysql_cacti_stats.txt
-rw-r--r-- 1zabbix        zabbix               58 Nov 14 17:39 netstat.tmp
drwxrwxrwx 2root          root               4096 Oct 26 17:53 rmagent
-rw-rw-r-- 1root          root             409670 Nov 14 17:39zabbix_agentd.log
-rw-rw-r-- 1root          root            1048674 Nov 14 09:54zabbix_agentd.log.old
-rw-rw-r-- 1root          root                  5 Nov 14 17:39 zabbix_agentd.pid
[root@iZ23ejm6lkdZ~]# touch /tmp/localhost-mysql_cacti_stats.txt
[root@iZ23ejm6lkdZ~]# chown  -R zabbix:zabbix /tmp/localhost-mysql_cacti_stats.txt
[root@iZ23ejm6lkdZ~]# zabbix_get -s 10.253.40.67 -k 'MySQL.pages-written'
3194382

  下面的命令,能夠找到執行「./get_mysql_stats_wrapper.sh gg」命令時,最後參數所對應的zabbixkey值:

[root@DB2scripts]# cat /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf|grep gw
UserParameter=MySQL.pages-written,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.shgw

WEB界面導入模板:

  這部份內容此次忽略,下次再補充。

  下圖是模板導入成功後的畫面:

9e30ce1bf76d203f514b4fc903afa24c.png


  彙總參考文檔:

http://blog.csdn.net/mchdba/article/details/51447560——zabbix3.0.2使用perconamysql插件的遇到的詭異問題解決記錄

https://www.cnblogs.com/ivictor/p/5803415.html——如何在Zabbix上安裝MySQL監控插件PMP

http://blog.csdn.net/mchdba/article/details/51447750——zabbix3.0.2使用percona mysql插件來監控mysql5.7的詳細實現過程

https://www.abcdocker.com/abcdocker/1498——Zabbix 3.0 監控MySQL []

相關文章
相關標籤/搜索