近期要完善mysql监控,故整理出此文档以备查阅。以下监控内容均为mysql部分,linux操作系统部分未整理如下为需要部署至zabbix的监控项:需发短信报警的项:1.复制状态需发邮件报警的项:1.error日志2.死锁不需报警,仅绘图的项:1.mysql连接数(Threads_connected)2.复制延迟3.QPS/TPS注:以上3项需绘制screen,即多张图在一个屏幕上同时显示如下为脚本部署的项:1.慢sql日志 一周抽取一次 发邮件 #!/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin #有的机器在crontab中执行mysqlsla时不出结果,加上PATH就好了,或者使用绝对路径 export PATH CURRENT_DATE=`/bin/date +%y%m%d` WEEK_AGO=`/bin/date -d "1 week ago" +%y%m%d` for PORT in 3306do sed -n '/^# Time: '"$WEEK_AGO"'/,/^# Time: '"$CURRENT_DATE"'/'p /mysqldata/$PORT/slow_statement.log > /tmp/slow_tmp_$PORT.txt mysqlsla /tmp/slow_tmp_$PORT.txt > /bak/slow_log/slow_log_113_$PORT.txtdone /usr/bin/rsync -az /dbdata/bak/slow_log/ 10.0.0.x::mysqlslowlog #!/bin/sh zip -jq /tmp/mysql_slow_log.zip /bak/mysql_db_bak/slow_log/*.txt mutt [email protected] -s "mysql周例行慢sql日志分析" -a /tmp/mysql_slow_log.zip rm -f /tmp/mysql_slow_log.zip2.数据库备份检查 一天抽取一次 发邮件 备份监控的几项要求: 1).显示备份大小,防止没备份到 2).比较前一天的备份,是增长了还是减少了 3).确认是不是当日备份 4).当天共备份多少个数据库#!/bin/shCURRENT_DATE=`/bin/date +%Y%m%d`LAST_DATE=`date -d last-day +%Y%m%d`ls -lh /dbserver_mysql_auto_bk |grep -E "$CURRENT_DATE|$LAST_DATE" | awk '{print $5,$9}' | xargs -n4 |awk '{print $1"-->"$3" "$4'} > /usr/local/bin/backup_script/mysql_daily_backup_check.txtCOUNT=`cat /usr/local/bin/backup_script/mysql_daily_backup_check.txt | wc -l`echo 共备份$COUNT个数据库 >> /usr/local/bin/backup_script/mysql_daily_backup_check.txtmutt [email protected] -s "mysql例行备份检查"如下为待定项,后续酌情添加:1.innodb buffer命中率2.Query Cache3.Table Cache 状态量4.Thread Cache5.锁定状态6.Tmp table7.Binlog Cache8.Innodb_log_waits 量9.Threads_running10.IOPS 11.opened tables如下是需要定期检查的项:1.innodb共享表空间(如果有)2.master和slave的复制点是否一致(曾经出现过slave监测无延迟,但已落后master一大截的情况,原因为网络带宽不足) 09-10 00:46