【巡检】MySQL巡检到底巡检什么
** MySQL巡检**
马上迎来十一小长假,想想是不是有点小激动。但激动的同时也要了解一下MySQL服务器的状态,以免在外旅游的时候,和妹子啪啪的时候,突然来个报警,内心的奔溃的。。。。
一 。操作系统巡检
如果有zabbix或者其他监控类型的工具,就方便了很多。首先看 CPU
内存 硬盘io的消耗程度。其中重点是硬盘使用率,要为十一小长假做好准备啊,避免十一期间业务写入增长,磁盘占满。每家业务不一样,所以参考标准不一样。
如果没有zabbix 建议使用 sar
这个小工具,能够收集历史的信息。它的历史数据在/var/log/sa
下面,通过 -f 来指定文件。举例
1.1 cpu资源监控
[root@mongodb01 data]# sar -u 10 3
Linux 2.6.32-642.el6.x86_64 (mongodb01) 09/22/2017 _x86_64_ (8 CPU)
10:26:44 AM CPU %user %nice %system %iowait %steal %idle
10:26:54 AM all 0.55 0.00 0.41 5.61 0.03 93.40
1.2 内存和交换空间监控
[root@mongodb01 data]# sar -r 10 3
Linux 2.6.32-642.el6.x86_64 (mongodb01) 09/22/2017 _x86_64_ (8 CPU)
10:28:36 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
10:28:46 AM 223084 32658252 99.32 143468 16549080 18774068 37.81
1.3I/O和传送速率监控
[root@mongodb01 data]# sar -b 10 3
Linux 2.6.32-642.el6.x86_64 (mongodb01) 09/22/2017 _x86_64_ (8 CPU)
10:30:25 AM tps rtps wtps bread/s bwrtn/s
10:30:35 AM 67.17 61.63 5.54 16169.99 86.20```
1.4系统交换活动信息监控
[root@mongodb01 data]# sar -w 10 3
Linux 2.6.32-642.el6.x86_64 (mongodb01) 09/22/2017 x86_64
10:31:56 AM proc/s cswch/s
10:32:06 AM 0.00 2234.44```
当然还有其他的监控项目,就不一一赘述了,还需要查看当前的磁盘和内存使用情况df -h
,free -m
,是否使用numa
和swap
是否频繁交互 等信息。除此以外,还可以需要关注日志类信息
例如
[root@mongodb01 data]# ll /var/log/messages
[root@mongodb01 data]# ll /var/log/dmesg
MySQL error log
MySQL 慢查询日志 等信息
二。MySQL本身巡检
2.1重点参数
"innodb_buffer_pool_size"
"sync_binlog"
'binlog_format'
'innodb_flush_log_at_trx_commit':
'read_only':
'log_slave_updates'
'innodb_io_capacity'
'query_cache_type'
'query_cache_size'
'max_connections'
'max_connect_errors'
'server_id'
2.2MySQL的状态
2.3MySQL 是否有锁
如果有监控的话可以获取监控信息,或者其他工具,如果没有请定期收集MySQL锁信息
INFORMATION_SCHEMA.INNODB_LOCKS;
INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
参考一下《老司机带你体验SYS库多种新玩法》这篇文章
2.4MySQ 自增id的使用情况
'SELECT table_schema,table_name,engine,Auto_increment FROM information_schema.tables whereINFORMATION_SCHEMA. TABLE_SCHEMA not in ("information_schema" ,"performance_schema","mysql")'
参考一下《老司机带你体验SYS库多种新玩法》这篇文章
2.5 存储引擎是否为innodb
INFORMATION_SCHEMA.TABLES engine=innodb
三 高可用巡检
3.1.MHA && keepalived
观察日志看是否有频繁主从切换,如果有分析一下是什么原因进行频繁切换
3.2中间件的巡检
mycat && pproxysql 这些中间价的巡检,首先参考系统巡检,在过看一下中间价本身的日志类,和状态类信息,网络延迟或丢包的检查,也是必须要做工作
总结
关于巡检来说,每个环境是不一样的,所以xunj的侧重点也是不一样的,但基本的巡检是避免不了的,如果有其他的巡检姿势也欢迎一起讨论。顺便 前几天花1天的功夫写了一个MySQL的巡检,只能巡检MySQL的状态和参数配置,(因为客户的环境不能直连linux但可以直连MySQL)
https://github.com/enmotplinux/On-Site-Inspection
我的邮箱是tplinux@163.com 欢迎交流和拍砖
最后更新:2017-09-22 11:33:06