zoukankan      html  css  js  c++  java
  • 数据库可用率监控工具

    Author:Skate
    Time:2014/12/23


    数据库可用率监控工具

    [root@skatedb66 tmp]# ./db_availability --help
    usage: Used to view server availability v0.1 ,(C) Copyright Skate 2014
           [-h] --host HOST --user USER --passwd PASSWD [--port PORT]
           [--dbname DBNAME] --rhost RHOST --ruser RUSER --rpasswd RPASSWD
           [--rport RPORT] [--rdbname RDBNAME] [--type TYPE] [--interval INTERVAL]

    optional arguments:
      -h, --help           show this help message and exit
      --host HOST          = Data configuration center ip address
      --user USER          = Data configuration center database user
      --passwd PASSWD      = Data configuration center database password
      --port PORT          = Data configuration center database port
      --dbname DBNAME      = Data configure center database name
      --rhost RHOST        = Monitored ip address
      --ruser RUSER        = Monitored database user
      --rpasswd RPASSWD    = Monitored database password
      --rport RPORT        = Monitored database port
      --rdbname RDBNAME    = Monitored database name
      --type TYPE          = Monitored type(db or host)
      --interval INTERVAL  = The monitoring time interval, this is very important,
                           please fill out in strict accordance with the call
                           interval
    [root@skatedb66 tmp]# ./db_availability --host=10.20.0.55 --user=root --passwd=root --port=3306 --dbname=test6 --rhost=10.20.0.56 --ruser=root --rpasswd=root --rport=3306 --rdbname=mysql --type=db --interval 60

    ipaddr 10.20.0.56:
    database:3306 vailability is :
                                month       100.0000%
                                3month      100.0000%
                                year        100.0000%
                                total       100.0000%
                                uptime(s)   1116020
                                downtime(s) 0
    [root@skatedb66 tmp]#


    [root@skatedb66 tmp]# ./db_availability --host=10.20.0.55 --user=root --passwd=root --port=3306 --dbname=test6 --rhost=10.20.0.65 --ruser=root --rpasswd=root --rport=3306 --rdbname=mysql --type=db --interval 60

    ipaddr 10.20.0.65:
    database:3306 vailability is :
                                month       97.6200%
                                3month      99.2200%
                                year        99.8000%
                                total       99.9800%
                                uptime(s)   0
                                downtime(s) 61620
    [root@skatedb66 tmp]#

    简述:
    这个工具能够通过监控得到database和host的近期一个月,3个月,一年和全部时间的内的可用率(默认在未监控时,database和host是可用的。没实用uptime/uptime+downtime的方式计算),并且还能够看到database和host在被监控到的时期的在线和离线时间。

    这样能够了解database和host各个时期的使用情况。

    使用环境:
         能够监控mysql服务和server的可用率和离线时间
        
    用法:
    本工具是通过把配置监控信息写入的监控配置中心。然后实时分析採集的数据。能够把这个工具部署到服务端,通过并发批量检查大量的database和host

    安装方法:
     本工具是用python开发并已经打包,能够直接下载使用。没有环境依赖
     

    特别说明:
    1. interval參数特别重要,为了提高可用率的准确率。这个间隔时间的选取必须和本工具被调用时间间隔一样。


        
     
    配置中心的数据库脚本:

    CREATE TABLE `db_availability` (
     `id` INT(11) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
     `createtime` DATETIME NULL DEFAULT NULL COMMENT '创建时间',
     `updatetime` DATETIME NULL DEFAULT NULL COMMENT '更新时间',
     `downtime` INT(11) NULL DEFAULT '0' COMMENT '宕机时间,计量单位秒',
     `uptime` INT(11) NULL DEFAULT '0' COMMENT '在线时间,计量单位秒',
     `weekavailability` DECIMAL(10,4) NULL DEFAULT '1.0000' COMMENT '周在线率',
     `monthavailability` DECIMAL(10,4) NULL DEFAULT '1.0000' COMMENT '月在线率',
     `month3availability` DECIMAL(10,4) NULL DEFAULT '1.0000' COMMENT '3个月在线率',
     `yearavailability` DECIMAL(10,4) NULL DEFAULT '1.0000' COMMENT '年在线率',
     `allavailability` DECIMAL(10,4) NULL DEFAULT '1.0000' COMMENT '总在线率',
     `type` VARCHAR(50) NULL DEFAULT NULL COMMENT '两种类型:host和db',
     `interval` INT(11) NULL DEFAULT NULL COMMENT '时间间隔,计量单位秒',
     `ipaddr` VARCHAR(50) NULL DEFAULT NULL COMMENT 'IP地址',
     `port` VARCHAR(50) NULL DEFAULT NULL,
     `hostname` VARCHAR(50) NULL DEFAULT NULL COMMENT '主机名称',
     `idc` VARCHAR(50) NULL DEFAULT NULL COMMENT '所属IDC',
     PRIMARY KEY (`id`),
     UNIQUE INDEX `ipaddr_port_type` (`ipaddr`, `port`, `type`)
    )
    COLLATE='utf8_general_ci'
    ENGINE=InnoDB;

    CREATE TABLE `db_downtime_detail` (
     `id` INT(11) NOT NULL AUTO_INCREMENT,
     `ipaddr` VARCHAR(50) NULL DEFAULT NULL COMMENT 'IP地址',
     `port` VARCHAR(50) NULL DEFAULT NULL,
     `hostname` VARCHAR(50) NULL DEFAULT NULL COMMENT '主机名称',
     `createtime` DATETIME NULL DEFAULT NULL COMMENT '创建时间',
     `interval` INT(11) NULL DEFAULT NULL COMMENT '时间间隔,计量单位秒',
     `type` VARCHAR(50) NULL DEFAULT NULL COMMENT '宕机类型:host和db',
     `idc` VARCHAR(50) NULL DEFAULT NULL COMMENT '所属IDC',
     PRIMARY KEY (`id`),
     INDEX `createtime` (`createtime`)
    )
    COMMENT='宕机具体时间记录表'
    COLLATE='utf8_general_ci'
    ENGINE=InnoDB;

    ----end----

  • 相关阅读:
    浅谈SQL Server 对于内存的管理
    【JSON解析】JSON解析
    SQLSERVER吞噬内存解决记录
    数据schemaAvro简介
    Windows命令查看文件MD5
    均分纸牌(贪心)
    an easy problem(贪心)
    导弹拦截问题(贪心)
    活动选择(贪心)
    整数区间(贪心)
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5217101.html
Copyright © 2011-2022 走看看