mysql监控项整理

近期要完善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 3306
do
  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.txt
done
  /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 < /usr/local/bin/backup_script/mysql_slow_log_send.txt
  rm -f /tmp/mysql_slow_log.zip
 

2.数据库备份检查 一天抽取一次 发邮件
   备份监控的几项要求:
  1).显示备份大小,防止没备份到
  2).比较前一天的备份,是增长了还是减少了
  3).确认是不是当日备份
  4).当天共备份多少个数据库
#!/bin/sh
CURRENT_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.txt
COUNT=`cat /usr/local/bin/backup_script/mysql_daily_backup_check.txt | wc -l`
echo 共备份$COUNT个数据库 >> /usr/local/bin/backup_script/mysql_daily_backup_check.txt
mutt [email protected] -s "mysql例行备份检查" < /usr/local/bin/backup_script/mysql_daily_backup_check.txt

 

如下为待定项,后续酌情添加:

1.innodb buffer命中率

2.Query Cache

3.Table Cache 状态量

4.Thread Cache

5.锁定状态

6.Tmp table

7.Binlog Cache

8.Innodb_log_waits 量

9.Threads_running

10.IOPS  
11.opened tables

如下是需要定期检查的项:

1.innodb共享表空间(如果有)
2.master和slave的复制点是否一致(曾经出现过slave监测无延迟,但已落后master一大截的情况,原因为网络带宽不足)

你可能感兴趣的:(mysql)