欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

数据库可用率监控工具

程序员文章站 2022-06-09 14:28:04
...

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

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 passwo【本文来自鸿网互联 (http://www.68idc.cn)】rd
--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----