zabbix之监控MySQL
#:先配置MySQL的主从
#:安装Percona Monitoring Plugins (地址:https://www.percona.com/downloads/)#:我安在从库,监控哪个就安哪个上面
root@ubuntu:~# wget https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/debian/artful/x86_64/percona-zabbix-templates_1.1.8-1.artful_all.deb
root@ubuntu:~# dpkg -i percona-zabbix-templates_1.1.8-1.artful_all.deb
#:根据安装教程安装(地址:https://www.percona.com/doc/percona-monitoring-plugins/LATEST/zabbix/index.html#installation-instructions)
#:安装PHP5.6 和php-mysql注意版本:
root@ubuntu:~# sudo apt-get install -y software-properties-common
root@ubuntu:~# sudo add-apt-repository ppa:ondrej/php
root@ubuntu:~# sudo apt-get update
root@ubuntu:~# sudo apt-get install -y php5.6 php5.6-mysql
root@ubuntu:~# apt install zabbix-agent
#:修改agent配置文件,并重启
root@ubuntu:~# systemctl restart zabbix-agent.service
#:重启后再web页面添加上这台主机
#:将perconna生成的userparameter生成的目录拷贝到agent下面 root@ubuntu:/etc/zabbix# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.conf.d/ #:设置用哪个用户监控MySQL root@ubuntu:~# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf <?php $mysql_user = 'root'; $mysql_pass = ''; #:我的没有密码 #:现在本机测试 root@ubuntu:/var/lib/zabbix/percona/scripts# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg 40 #在server端测试,显示为空,应为zabbix权限不够,需要设置一下sudolers root@ubuntu:~# /apps/zabbix_server/bin/zabbix_get -s 192.168.7.112 -p 10050 -k "MySQL.Key-read-requests" (此处值为空) #:设置使用root启动 root@ubuntu:/etc/zabbix/zabbix_agentd.conf.d# vim /etc/zabbix/zabbix_agentd.conf AllowRoot=1 User=root root@ubuntu:/etc/zabbix/zabbix_agentd.conf.d# vim /lib/systemd/system/zabbix-agent.service User=root Group=root #:这样就可以获取到值了 #:导出模板(这个已经有的不支持了,导入课件里面的模板) root@ubuntu:/etc/zabbix/zabbix_agentd.conf.d# cd /var/lib/zabbix/percona/templates/ 将xml结尾的文件导出来
在web端导入模板---因课件模板是被动模式,改成主动模式,间隔时间等
#:配置监控MySQL主从同步是不是yes,和延迟时间的脚本 root@ubuntu:/etc/zabbix/zabbix_agentd.conf.d# vim mysql_monitor.sh #!/bin/bash #Date:2016/11/11 #Author: Zhangshijie Seconds_Behind_Master(){ NUM=`mysql -uroot -hlocalhost -e "show slave status\G;" | grep "Seconds_Behind_Master:" | awk -F: '{print $2}'` echo $NUM } master_slave_check(){ NUM1=`mysql -uroot -hlocalhost -e "show slave status\G;" | grep "Slave_IO_Running" | awk -F: '{print $2}' | sed 's/^[ \t]*//g'` #echo $NUM1 NUM2=`mysql -uroot -hlocalhost -e "show slave status\G;" | grep "Slave_SQL_Running:" | awk -F: '{print $2}' | sed 's/^[ \t]*//g'` #echo $NUM2 if test $NUM1 == "Yes" && test $NUM2 == "Yes";then echo 50 else echo 100 fi } main(){ case $1 in Seconds_Behind_Master) Seconds_Behind_Master; ;; master_slave_check) master_slave_check ;; esac } main $1 #:修改属主属组,权限 root@ubuntu:/etc/zabbix/zabbix_agentd.conf.d# chown zabbix.zabbix mysql_monitor.sh root@ubuntu:/etc/zabbix/zabbix_agentd.conf.d# chmod a+x mysql_monitor.sh #:在写一个主动配置文件,配置userparameter root@ubuntu:/etc/zabbix/zabbix_agentd.conf.d# vim linux37.conf UserParameter=mysql_monitor[*],/etc/zabbix/zabbix_agentd.conf.d/mysql_monitor.sh "$1" #;重启服务 oot@ubuntu:/etc/zabbix/zabbix_agentd.conf.d# systemctl restart zabbix-agent.service #:在server端测试一下 root@ubuntu:~# /apps/zabbix_server/bin/zabbix_get -s 192.168.7.112 -p 10050 -k "mysql_monitor[master_slave_check]" 50 #:测试通过后,开始创建模板,创建监控项,创建触发器,创建图形