实时监控MySql状态
大多网站的性能瓶颈都会出在数据库上,所以想把Mysql监控起来,就搜索了下相关资料。
后来和同事讨论了下cacti和nagios有些老套和过时,graphite比较时尚,然后就搜了下相关的资料,最后搞出来了,效果如下
可以实时查看mysql打开的table数,文件数,正在执行,已经创建,已经连接的线程数,锁,查询缓存,表扫描相关的计数器,以及已经完成的select,insert, delete, update的sql数等,总之Mysql的各种状态一览无余。
具体各个指标的意思参考如下链接:
http://lxneng.iteye.com/blog/451985
如果已经部署了graphite,再找一个收集mysql状态的agent就行了,如下。
https://github.com/serialx/mysql-statsd
安装运行很简单
# 下载
git clone https://github.com/serialx/mysql-statsd.git
cd mysql-statsd
# 安装依赖
pip install -rrequirements.txt
pip install twisted
# 配置mysql连接字符串,statsd收集器地址
vi config/example.ini
# 运行
python mysql-statsd.py --config config/example.ini
percona的这篇文章也不错,黑了cacti和nagios,并解释额为啥graphite+statsd比较时尚。