DBA减赋 甩掉盯着屏幕监控MySQL的时代(3)

来源:it168 作者:王文龙
  

  3、bj_cnc1_20091017 文件说明

  这个是日志文件,表示 2009 年 10 月 17 日北京网通1区 monitor.sh 主监控程序产生的日志。

  4、monitor.sh 文件说明

  主监控程序,每 1 分钟运行一次,它接受一个输入参数,用于指定监控哪个服务器组(如 monitor.sh -s bj_cnc1,表示监控“北京网通1区”下的 2 个数据库“第100号MySQL”和“第101号MySQL”),并将日志写入 log 目录下,并且 log 命名为“bj_cnc1_20091017”,表示是“北京网通1区”服务器组在 2009 年 10 月 17 日产生的日志。

  程序框架,如下: 

#!/bin/bash
# 此处是一些初始化的工作
function echo_usage(){
    # 打印程序的用法
}
function send_msg(){
    # 发送短消息
}
function check_mysql_instance_status(){
    # 检查点
1, 用于检查此数据库监听器是否启动,同时写日志
    # 如果失败则调用“send_msg()”给 DBA 发短信提醒
}
# 可以自定义多个检查点
function check_***(){
    # 检查点 n,同时写日志
    # 如果失败则调用“send_msg()”给 DBA 发短信提醒
}
function main(){
    # 主函数
    check_mysql_instance_status
    # 可以调用多个检查点
    check_
***
}
# 此处检查输入的参数是否合理,如果不合理则调用“echo_usage”,并退出程序
# 主函数调用
main

   5、monitor_helper.sh 文件说明

  由于主监控程序每 1 分钟运行一个,那么如果主监控程序在 2009 年 10 月 17 日是运行的,那么它将在 log 目录下会产生一个 bj_cnc1_20091017,正是这个文件可以代表主监控程序是运行良好的。

  助手程序循环读取“server_group_cfg”文件夹下面的文件名(如“bj_cnc1”),然后在文件名后加上当前日期(如 “bj_cnc1_20091017”),再到 log 目录下去找该文件,如果找到则说明正常,如果找不到就说明有主监控程序没有正常运行。

  程序框架如下:

  清单 9. monitor_helper.sh 文件

#!/bin/bash
# 此处是一些初始化的工作
function send_msg(){
    # 发送短消息
}
function check_monitor(){
    # 检查主监控程序是否运行,如果失败则调用“send_msg()”给 DBA 发短信提醒
}
function del_expired_log(){
    # 删除主监控程序产生的过期日志
}
function main(){
    # 主函数
}
# 主函数调用
main

   6、Cron 定时器配置文件说明

  我们将主程序和助手程序放到定时器里,他们的运行频率分别是:主监控程序, 每 1 分钟运行一次;助手程序,每天 10 点运行一次;具体代码如下:

  清单 10. Cron 定时器配置文件

*/1 * * * * /home/mysql1/MySQL_Monitor/monitor.sh -s bj_cnc1
*/1 * * * * /home/mysql1/MySQL_Monitor/monitor.sh -s sh_ct1
0 10 * * * /home/mysql1/MySQL_Monitor/monitor_helper.sh

   7、程序运行演示

  如果“北京网通1区”的“第100号MySQL”所属实例意外停止了,那么 DBA 会马上收到这样一条短信,如下:

  结论

  本文对传统的 MySQL 监控工作方式进行了优化和升级,使其搭上了移动互联的快车,让 DBA 可以更高效的工作。我们需要做的还很多,伴随互联网和移动互联的兴起,将会有更多的技术可以让 MySQL 更加智能,更加方便为用户服务。


时间:2009-11-05 14:23 来源:it168 作者:王文龙 原文链接

好文,顶一下
(11)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量