`
chinacode
  • 浏览: 28413 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

zabbix mysql全面监控

阅读更多

背景:多台服务器管理,出现问题时只能跑到指定机器上查看日志信息。

而cpu,mem使用情况在日志里面只能凭个人经验来判断是cpu,还是mem或者io出现问题,导致机器出现故障。而zabbix可以保存这些时间段,机器各项的信息从而能快速定位问题。

zabbix:包含了系统常用的监控,同时还可以自定义选项来监控(exp:访问量、在线)。扩展起来非常方便,所以就选择了zabbix。

linux来说基本很大一部分机器都装有mysql。同时官网也提供了php的监控方法(采用的时候zabbix_sender进行推送),但是这样每个机器就得装php才能监控,可是想想不用php也完全能完成(shell)。于是就自己写了监控脚本和大家大奖分享下。

具体思路:

  1. 采集mysql自身的运行信息
    show global status
  2. 讲打印出来的mysql运行信息保存至临时文件(exp:/tmp/zabbix_mysql_%M.log).
    这里很多人会问为什么要保存至文件呢,而不是直接返回呢?
    <1>.为了保证mysql取值时,不会频繁的进行数据库连接查询,而zabbix获取数据有事周期性的(本人使用的是60s/次)。所以本人使用分钟来生成文件,分钟内都取同一个文件。
    <2>.为了保证各项数据取到没有时间差。保证生成的线条一致性。

好了废话不多说,下面是she脚本。

  1. View Code SHELL
    #!/bin/sh
    dateM=`date "+%M"`;
    fileName='/tmp/zabbix_mysql_status_'$dateM".log";
    if [ ! -f $fileName ]; then
    	rm -f /tmp/zabbix_mysql_status*;
    	mysql -uroot -p$1 -e 'show global status;' &gt; $fileName;
    fi;
    if [  -f $fileName ]; then
    	cat $fileName | grep -w "$2" | awk 'BEGIN {FS=" "} {print $2}'
    fi;

usage:

  1. 复制以上内容保存到/usr/bin/zabbix_mysql.sh(或者直接下载).
  2. 赋予执行去权限(chmod +x /usr/bin/zabbix_mysql.sh)
  3. 里面有两个参数 $1:表示root密码,$2:监控项。
    exp:zabbix_mysql.sh rootpass Com_select(启动mysql的总查询次数)

mysql status 介绍:
http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html

效果图:

zabbix mysql

zabbix mysql

附件:

zabbix mysql shell

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics