一、对数据库服务可用性进行监控
1、数据库进程或者端口存在并不意味着数据库就是可用的
2、通过网络连接到数据库并且确定数据库是可以对外提供服务的
3、使用mysqladmin -umonitor_user -p -h ping
4、telnet ip db_port
5、使用程序通过网络建立数据库连接(最好的方式)
6、确认数据库是否可读:
检查数据库的read_only参数是否为off
定期对主从服务器中的主数据库的这个参数进行检查
建立监控表并对表中数据进行更行
执行简单的查询select @@version
7、监控数据库连接数
可以连接到MySQL的线程是有限制的
有很多因素都会造成数据库的连接突然的增长
出现阻塞,像memcahe这样的缓存失效
show variables like ‘max_connections’;
show global status like ‘Threads_connected’
二、对数据库性能进行监控
1、QPS和TPS
QPS:每秒中的查询数量(包括了数据库所有的请求)
TPS:每秒中处理事务的数量(包括insert,update,delelte)
2、并发数线程数量
数据库系统的性能会随着并发处理请求数量的增加而下载
show global status like ‘Threads_running’
并发处理的数量通常会远小于同一时间连接到数据库的线程的数量
3、如何对Innodb阻塞和死锁进行监控
4、记录性能监控过程中所采集到的数据库的状态
三、对主从复制进行监控
1、主从复制链路状态的监控
2、主从复制延迟的监控:
2.1、参与复制的主从服务器之间一定会存在着一些延迟
2.2、show slave status
2.3、show master status \G(主上的二进制日志文件名和偏移量)
3、定期的确认主从复制的数据是否一致
pt-table-checksum
四、对服务器资源的监控
1、磁盘空间:服务器磁盘空间大并不意味着MySQL数据库服务能使用的空间就足够大
2、cup的使用情况,内存的使用情况,swap分区的使用情况以及网络IO的情况等