參考文檔:
percona官方文檔:https://www.percona.com/doc/percona-monitoring-plugins/LATEST/zabbix/index.html
zabbix2.4的安裝方法:https://www.cnblogs.com/irockcode/p/6752316.html
其他博主文檔:http://blog.51cto.com/xiaozhagn/2059713
先簡單搭建mysql服務,用於后續zabbix監控來用
centos7.4客戶端安裝agent
http://blog.csdn.net/jas0n_liu/article/details/77099626
#關閉SElinux(臨時關閉) [root@db01 ~]# getenforce Enforcing [root@db01 ~]# setenforce 0 [root@db01 ~]# getenforce Permissive #永久關閉 sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config setenforce 0 #防火牆設置,允許zabbix-agent的10050端口通過 firewall-cmd --permanent --add-port=10050/tcp firewall-cmd --reload #或關閉防火牆 systemctl stop firewalld systemctl disable firewalld #開始安裝zabbix-agetn rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm yum install zabbix-sender zabbix-agent zabbix-get #更改配置文件vim /etc/zabbix/zabbix_agentd.conf Server=<zbx-server的ip> ServerActive=<zbx-server的ip> Hostname=<本機的名字> #設置開啟啟動項 systemctl start zabbix-agent.service systemctl enable zabbix-agent.service #永久修改主機名: hostnamectl set-hostname xxx
安裝mysql數據庫(模擬測試使用)
http://www.cnblogs.com/bigbrotherer/p/7241845.html #centos7.4 安裝數據庫
在CentOS中默認安裝有MariaDB,這個是MySQL的分支,但為了需要,還是要在系統中安裝MySQL,而且安裝完成之后可以直接覆蓋掉MariaDB
1、下載並安裝MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm
2、安裝mysql yum -y install mysql-community-server
這步可能會花些時間,安裝完成后就會覆蓋掉之前的mariadb。

至此MySQL就安裝完成了,然后是對MySQL的一些設置。
mysql的基礎設置
#啟動mysql systemctl start mysqld.service
systemctl status mysqld.service
此時MySQL已經開始正常運行,不過要想進入MySQL還得先找出此時root用戶的密碼,通過如下命令可以在日志文件中找出密碼:
[root@db01 ~]# grep "password" /var/log/mysqld.log
2018-03-09T08:20:27.838373Z 1 [Note] A temporary password is generated for root@localhost: p(+mL;zI:9+T #密碼就是它啦!
[root@db01 ~]# mysql -uroot -p
Enter password:
#如果需要設置簡易密碼可以先執行下邊兩條,否則略過
mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1;
#設置密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'zabbix123456';
#為了安全,可以使用下邊的授權方式
GRANT USAGE,PROCESS,SUPER,REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'zabbixagentd'@'localhost' IDENTIFIED BY 'SWSHgzp3Pj3vcIdK';
flush privileges;
#但此時還有一個問題,就是因為安裝了Yum Repository,以后每次yum操作都會自動更新,需要把這個卸載掉:
yum -y remove mysql57-community-release-el7-10.noarch
到此安裝mysql完成!!!
以下便是zabbix-percona的安裝過程
zabbix就自帶的MySQL插件來監控mysql數據庫,但是你會發現自帶的mysql監控項是很少的,為了做更詳細的監控,percona提供了這個詳細監控的模版以及腳本,解決了監控不全面的問題。
https://www.percona.com/downloads/percona-monitoring-plugins/LATEST/
1、percona插件安裝
1 #官網下載percona的rpm包,我這里是下載的是1.1.8版本的 2 cd /usr/local/src/ 3 yum -y install https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm 4 5 #安裝percona的rpm包,安裝php插件 6 yum -y install percona-zabbix-templates php php-mysql 7 8 #查看percona-zabbix-templates的安裝信息 9 [root@server zabbix]# rpm -ql percona-zabbix-templates 10 /var/lib/zabbix/percona 11 /var/lib/zabbix/percona/scripts 12 /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh #監控獲取MySQL狀態的 13 /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php #配置連接數據庫用戶名密碼的,用shell來調用PHP。 14 /var/lib/zabbix/percona/templates 15 /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf #要放在agent端/etc/zabbix/zabbix_agentd.d/下面的 16 /var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml #這個是模板,需要導入到zabbix3.4中。 17 #使用sz 把該模板導出到本地,再導入到zabbix2.4中后再導出該模板才能正常導入到zabbix3.4中; 18 19 已倒好的模板地址如下,可直接導入到zabbix3.4中: 20 21 centos7版:https://pan.baidu.com/s/1-dTDwYNCCrvIh01dO4BEHA 22 23 centos6版:鏈接:https://pan.baidu.com/s/1MsXMPwC2xPA78z8bnrO5Eg 密碼:7i7d 24 25 26 27 [root@db01 src]# ps -ef|grep mysql #mysql的安裝路徑 /usr/sbin/mysql 28 mysql 10587 1 0 16:20 ? 00:00:01 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid 29 root 10719 10630 0 16:49 pts/2 00:00:00 grep --color=auto mysql
2、進入templates目錄,把模板文件復制到zabbix_agentd.conf.d目錄下
[root@localhost ~]# cd /var/lib/zabbix/percona/templates/ [root@localhost templates]# ll 總用量 284 -rw-r--r--. 1 root root 18866 1月 10 22:46 userparameter_percona_mysql.conf -rw-r--r--. 1 root root 269258 1月 10 22:46 zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@localhost templates]# mv userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@localhost templates]#chown -R zabbix.zabbix /etc/zabbix/
[root@localhost templates]#chmod -R 755 /etc/zabbix/zabbix_agentd.d
#修改配置文件

#重啟agent服務
systemctl restart zabbix-agent.service
3、修改監控腳本
參考文檔:https://www.cnblogs.com/kevingrace/p/6256395.html
修改
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper
.sh腳本
-----------------------------------注意---------------------------------- 若mysql沒有使用默端口3006,比如mysql使用的是3317。則還需要修改如下腳本文件,記住不要在這里被坑了!改端口號碼文件 #本次為3306 1-> 這里要先建好這個文件,否則會報rm權限錯誤
touch /tmp/localhost--mysql_zabbix_stats.txt:3317
chown -R zabbix.zabbix /tmp/localhost-mysql_zabbix_stats.txt:3317
#如果mysql使用的是默認的3306端口,那么就不用修改端口了(即將上面的:3317去掉)!
2-> 修改腳本
[root@db01 scripts]# vim get_mysql_stats_wrapper.sh
CACHEFILE=
"/tmp/$HOST-mysql_cacti_stats.txt "
換成:
TIMEFLM=`stat -c %Y
/tmp/
$HOST-mysql_cacti_stats.txt`
換成:
echo "" > $CACHEFILE
RES=`HOME=~zabbix mysql -e
'SHOW SLAVE STATUS\G'
|
egrep
'(Slave_IO_Running|Slave_SQL_Running):'
|
awk
-F:
'{print $2}'
|
tr
'\n'
','
`
換成:
RES=`/usr/sbin/mysql -uroot -pzabbix123456 -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`
從庫記得添加下邊這行,要不mysql-salve監控不到;最好主從都加。
4、然后修改/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php腳本,這里主要修改用戶名密碼
$mysql_user = 'root'; $mysql_pass = 'zabbix123456'; $mysql_port = 3306;

5、其他操作
[root@db01 scripts]# chown -R zabbix.zabbix /var/lib/zabbix/ [root@db01 scripts]# chmod -R 755 /var/lib/zabbix/percona/scripts/
替換命令::%s/from/to/g

6、測試、排除故障
參考文檔:http://blog.csdn.net/mchdba/article/details/51447560
zabbix-agent端測試
[root@db01 scripts]# /usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg gg:6
[root@db01 ~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh nj
34673
zabbix-server端測試
[root@zabbix ~]# zabbix_get -s 10.0.0.111 -p 10050 -k "MySQL.Handler-commit" 5 [root@zabbix ~]# zabbix_get -s 10.0.0.111 -p 10050 -k "MySQL.Threads-connected" 1
7、zabbix web頁面添加主機的時候選擇mysql模板即可
#需要參考的博文:
搭建主要參考:https://www.cnblogs.com/kevingrace/p/6256395.html
排錯主要參考:http://blog.csdn.net/mchdba/article/details/51447560
瞄了一眼:https://www.cnblogs.com/caoxiaojian/p/5706992.html
- - - - - - - - - -以下知識待用到后再研究 - - - - - - - - - -
測試腳本能否獲取到數據庫的狀態信息
該腳本需測試兩部分內容
1. MySQL實例本身的狀態變量
2. MySQL是否為Slave
測試MySQL實例本身的狀態變量
# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
測試MySQL是否為Slave
# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave
返回0和1是正常值,返回“Access denied”則有問題。