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

#:测试通过后,开始创建模板,创建监控项,创建触发器,创建图形

 

posted @ 2019-09-25 16:39  Linus小跟班  阅读(373)  评论(0编辑  收藏  举报