监控mysql各种选项

安装mysql之后,需要对mysql服务进行监控。

nagios开源自带的check_mysql 对 mysql 的slave 机监控倒是不错。但是对数据库主机监控就略显不足了。

使用一个监控插件:check_mysql_health

下载和使用方法见:

http://exchange.nagios.org/directory/MySQL/check_mysql_health/details

具体监控:

对于slave 机 ,使用nagios 自带的 check_mysql 监控

command[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql -H localhost -s /tmp/mysql.sock -u root -p xxx -S -w 1 -c 3

其中用户和密码有可能会更改。延迟1秒警告,延迟3秒报警。

check_mysql_health 监控mysql master 服务器

/usr/local/nagios/libexec/custom/check_mysql_health --hostname localhost --socket /tmp/mysql.sock --username root --password xxxxxx --mode xxxxx --warning xxxxx --criticalxxxxx

mode:

connection-time (Time to connect to the server) 

uptime (Time the server is running) 

threads-connected (Number of currently open connections) 

threadcache-hitrate (线程缓存命中率) 

slave-lag (Seconds behind master) 

slave-io-running (Slave io running: Yes) 

slave-sql-running (Slave sql running: Yes) 

qcache-hitrate (查询命中率,如果这个值接近100%,说明服务器select的优化就越好) 

qcache-lowmem-prunes (因为内存小,从内存删除缓存查询的数量,可以增大query_cache_size,减小lowmem,增加命中率的优化) 

keycache-hitrate (MyISAM key 缓存命中率,如果命中率太低,增大key_buffer_size) 

bufferpool-hitrate (InnoDB 缓冲池命中率) 

bufferpool-wait-free (InnoDB 缓冲池等待清理的页面) 

log-waits (InnoDB log 等待写入时间,如果这个等待时间太大,增大log缓冲池大小) 

tablecache-hitrate (Table 缓存命中率) 

table-lock-contention (Table 的lock率) 

index-usage (索引使用率,越大说明索引越好,越小说明索引优化不充分) 

tmp-disk-tables (临时表创建的数量) 

slow-queries (慢查询占所有查询的比率,这个值如果很高说明mysql数据库优化不够) 

long-running-procs (长期运行的进程) 

cluster-ndbd-running (mysql集群监控) 

sql (执行一个返回一个数字的SQL,检查mysql是否可以链接查询)

举例:

nrpe.cfg:

command[check_mysql_health]=/usr/local/nagios/libexec/custom/check_mysql_health --hostname localhost --socket /tmp/mysql.sock --username xxxxx --password xxxxx --mode $ARG1$ --warning $ARG2$ --critical $ARG3$

xxx.cfg:

define service{

        use                     xxxxxx

        host_name               xxxxxx

        service_description     mysql数据库连接数

        check_command           check_nrpe_args!check_mysql_health!threads-connected!80!120

}

define service{

        use                     xxxxx

        host_name               xxxxx

        service_description     mysql数据库innodb缓存命中

        check_command           check_nrpe_args!check_mysql_health!bufferpool-hitrate

}

define service{

        use                     xxxxx

        host_name               xxxxx

        service_description     mysql数据库innodb缓冲池等待清理的页

        check_command           check_nrpe_args!check_mysql_health!bufferpool-wait-free

}

define service{

        use                     xxxxx

        host_name               xxxxx

        service_description     mysql数据库innodblog写入等待时间

        check_command           check_nrpe_args!check_mysql_health!log-waits

}

define service{

        use                     xxxxx

        host_name               xxxxx                                                                                   

        service_description     mysql数据库锁表率

        check_command           check_nrpe_args!check_mysql_health!table-lock-contention

}

define service{

        use                     xxxxx                                                                                  

        host_name               xxxxx

        service_description     mysql数据库打开文件数

        check_command           check_nrpe_args!check_mysql_health!open-files!80!90

}

define service{

        use                     xxxxx                                                                                 

        host_name               xxxxx

        service_description     mysql数据库慢查询率

        check_command           check_nrpe_args!check_mysql_health!slow-queries!5!10

}

搞定。

PS:对 warnging 和 critical 的值 :  10 就是 大于10%报警, 10: 就是小于10%报警, 不填就是默认的数值。

mode 一个语句只能一个,

--mode xxx1  xxx2    : xxx1 生效

--mode xxx1  --mode xxx2  : xxx2 生效

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏散尽浮华

split-brain 脑裂问题(Keepalived)

脑裂(split-brain) 指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资...

1K5
来自专栏大数据文摘

基于Lua+Kafka+Heka的Nginx Log实时监控系统

3015
来自专栏杨建荣的学习笔记

MySQL高可用方案MHA的一些总结和思考

MySQL高可用方案中MHA绝地是一个相当成熟的实现。对于数据的切换,其实MGR也能很好的完成,也就是说,数据层面的角色切换已经刻意很平滑的做好了,但是对于访问...

4087
来自专栏乐沙弥的世界

DRBD原理及特性概述

Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。其核...

511
来自专栏涤生的博客

长连接和心跳的那些事儿

心跳和长连接在一起介绍的原因是,心跳能够给长连接提供保活功能,能够检测长连接是否正常(这里所说的保活不能简单的理解为保证活着,具体来说应该是一旦链路死了,不可用...

903
来自专栏about云

Apache Hadoop 3.0.0-alpha1版发布做了哪些改进

问题导读 1.hadoop3.x必须使用哪个版本的jdk? 2.hadoop3.x是否可以配置5个namenode? 3.hadoop除了可以使用swift,还...

3448
来自专栏机器学习算法与Python学习

大数据HDFS技术干货分享

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 1 HDFS前言 设计思想 分而治之...

4508
来自专栏散尽浮华

zabbix监控-基本原理介绍

一、Linux下开源监控系统简单介绍 1)cacti:存储数据能力强,报警性能差 2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的...

3309
来自专栏杂烩

hadoop、hive、sqoop安装备忘 原

实际项目中,很多地方需要把数据缓存起来,以加快数据访问速度。比如字典表,比如数据机房表等等,缓存的实现有很多方式,如果项目中有用到mybatis,可以使用二级缓...

813
来自专栏章鱼的慢慢技术路

游戏服务器开发所需知识点总结

5,对服务器架构有一定了解,比如知道集群怎么搭建,因为这涉及到多台服务器,例如聊天服、战斗服、登录注册服。

723

扫码关注云+社区