大多網站的性能瓶頸都會出在數據庫上,所以想把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比較時尚。
MYSQL PERFORMANCE MONITORING USING STATSD AND GRAPHITE