断断续续手头上的VPS多了,得统一一下监控、报警等措施,不然乱的很。
于是买了一台新VPS,这台VPS不跑业务,专门用于管理和监控其他VPS(简称Admin VPS),基本的结构就是master-slave。
# 异常报警
用Sentry监控各VPS中运行的website app。Sentry支持很多语言环境,Python、ROR、Node.js等等,异常一出现就会发邮件报警。
# 系统监控
每台服务器都添加New Relic支持,然后在iTunes下一个New Relic App,用手机可以随时看到CPU、内存使用情况,蛮方便的。超过了限制也会发邮件报警。
后来又尝试了下Munin,搭建起来也很方便,能看到的参数更多了。不过我的站点一般没啥流量,只需要知道挂了没挂,所以不需要太细的监控,目前来看用New Relic就够了...
# 备份
对于一个website app来说,需要备份的一般分2类:数据库、文件。所以Admin VPS的备份结构是:
* backup/$project/db/
* backup/$project/files/
我采用的也是比较常见的rsync同步方法:在需要备份的VPS上开启rsync后台进程,然后开cronjob每天在某个时间段进行数据库dump。Admin VPS开cronjob定时从其他VPS同步文件。
数据库备份是以当天的星期数(0-6)命名的:
mysqldump -uroot -ppwd dbname > /path/to/backup/-`date +%w`.sql
这样的话就可以循环备份7天的数据库历史数据,之前的数据就会被rewrite。
不过有一个问题就是,如何去监控这种备份行为?比如说发现某天的备份文件没有同步过来,就发邮件报警什么的?或许需要去编写Monin插件实现?目前还没有去探索。
-------------------------------------
像这样折腾一翻后,感觉心里踏实了些。
大家来分享下你采用的监控、异常报警、备份方法吧?集思广益一下~
于是买了一台新VPS,这台VPS不跑业务,专门用于管理和监控其他VPS(简称Admin VPS),基本的结构就是master-slave。
# 异常报警
用Sentry监控各VPS中运行的website app。Sentry支持很多语言环境,Python、ROR、Node.js等等,异常一出现就会发邮件报警。
# 系统监控
每台服务器都添加New Relic支持,然后在iTunes下一个New Relic App,用手机可以随时看到CPU、内存使用情况,蛮方便的。超过了限制也会发邮件报警。
后来又尝试了下Munin,搭建起来也很方便,能看到的参数更多了。不过我的站点一般没啥流量,只需要知道挂了没挂,所以不需要太细的监控,目前来看用New Relic就够了...
# 备份
对于一个website app来说,需要备份的一般分2类:数据库、文件。所以Admin VPS的备份结构是:
* backup/$project/db/
* backup/$project/files/
我采用的也是比较常见的rsync同步方法:在需要备份的VPS上开启rsync后台进程,然后开cronjob每天在某个时间段进行数据库dump。Admin VPS开cronjob定时从其他VPS同步文件。
数据库备份是以当天的星期数(0-6)命名的:
mysqldump -uroot -ppwd dbname > /path/to/backup/-`date +%w`.sql
这样的话就可以循环备份7天的数据库历史数据,之前的数据就会被rewrite。
不过有一个问题就是,如何去监控这种备份行为?比如说发现某天的备份文件没有同步过来,就发邮件报警什么的?或许需要去编写Monin插件实现?目前还没有去探索。
-------------------------------------
像这样折腾一翻后,感觉心里踏实了些。
大家来分享下你采用的监控、异常报警、备份方法吧?集思广益一下~