percona zabbix 功能原理
percona zabbix 是percona 下的一個用于zabbix監(jiān)控mysql的一個工具惰蜜,主要是通過zabbix 執(zhí)行shell腳本 get_mysql_stats_wrapper.sh,這個腳本中調(diào)用了ss_get_mysql_stats.php荧关,把采集到數(shù)據(jù)存入臨時文件(/tmp/localhost-mysql_cacti_stats.txt),通過命令行傳入的參數(shù)在臨時文件中過濾出需要的數(shù)據(jù)咏尝,給到zabbix压语,進行展示和監(jiān)控。
準備工作
用到了php,所以這里需要安裝php编检,而且需要安裝php 的mysqli,這里我zabbix已經(jīng)在用胎食,所有沒有zabbix安裝介紹。
(實際這個腳本從percona cacti 改過來的)
wget https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/6/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm
yum -y install php php-pdo percona-zabbix-templates-1.1.8-1.noarch.rpm
配置
安裝好的默認目錄結(jié)構(gòu) /var/lib/zabbix允懂,zabbix目錄在 /usr/local/zabbix
.
└── percona
├── scripts
│ ├── get_mysql_stats_wrapper.sh
│ ├── ss_get_mysql_stats.php
└── templates
├── userparameter_percona_mysql.conf
└── zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
復(fù)制zabbix agent需要的配置文件,以及修改對應(yīng)配置
cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'zabbix';
$mysql_pass = 'zabbix';
vim get_mysql_stats_wrapper.sh ##編輯此文件19行厕怜,默認是mysql無密碼,給配置上mysql用戶和密碼
RES=`HOME=~zabbix /usr/local/bin/mysql -h localhost -uzabbix -pzabbix -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`
通過手動調(diào)用進行測試是否OK
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
注意我這邊遇到一個報錯找不到mysql sock文件蕾总,所以我修改了ss_get_mysql_stats.php 33行
ERROR: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_socket = '/tmp/mysql.sock';
最后記得刪除/tmp/ 下一個存放數(shù)據(jù)的臨時文件粥航,因為我們手動調(diào)用過,所以生百,文件擁有者和組都是root,zabbix agent調(diào)用寫入時會沒有權(quán)限递雀。
rm -f localhost-mysql_cacti_stats.txt
最后導(dǎo)入模板 zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
注意次模板我是在zabbix 2.4.7版本使用。默認還不支持zabbix 3.0蚀浆,看網(wǎng)上解決方案是在zabbix2.x導(dǎo)入缀程,然后在導(dǎo)出搜吧,在導(dǎo)入到zabbix3.x