zabbix日常監控項mysql(七)


 

參考文檔:

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 "
換成:
CACHEFILE="/tmp/$HOST-mysql_zabbix_stats.txt"
 
TIMEFLM=`stat -c %Y  /tmp/ $HOST-mysql_cacti_stats.txt`
換成:
TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_zabbix_stats.txt`
 
#注釋掉下一行,添加echo一行
#rm -f $CACHEFILE

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”則有問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM