大家来分享下监控、异常报警、备份的方法吧~

2014-07-15 14:51:57 +08:00
 hustlzp
断断续续手头上的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插件实现?目前还没有去探索。

-------------------------------------

像这样折腾一翻后,感觉心里踏实了些。

大家来分享下你采用的监控、异常报警、备份方法吧?集思广益一下~
7487 次点击
所在节点    DevOps
19 条回复
hging
2014-07-15 15:22:09 +08:00
备份脚本最后写上发邮件,如果中间异常报错,就不会发邮件,证明有错。我的思路是这样。
hustlzp
2014-07-15 15:26:56 +08:00
@hging 赞!我怎么没想到!
Livid
2014-07-15 15:29:15 +08:00
数据库备份完之后最好再加一个压缩吧,然后复制到 BTSync 的目录里,就可以自动同步了。
hustlzp
2014-07-15 15:34:18 +08:00
@Livid 原来有BitTorrent Sync这个好东西,谢谢推荐!
caizixian
2014-07-15 20:19:01 +08:00
你的做法已经不错了 我的做法还要加上保存至Amazon Glacier或者Dropbox
jprovim
2014-07-15 21:50:32 +08:00
@caizixian 我也是Dropbox同步, 另加google drive.
hustlzp
2014-07-15 22:03:11 +08:00
@caizixian
@jprovim 我也去试一试 ^_^
ballpen
2014-07-15 22:38:26 +08:00
我直接备份到GD的免费空间
zyx89513
2014-07-16 03:48:33 +08:00
uptimerobot, 监控网站有没有down掉
moname
2014-07-16 06:46:05 +08:00
@zyx89513 赞,想到一块儿了,省心。
dndx
2014-07-16 06:52:48 +08:00
监控、报警:Nagios
备份:Dropbox,每天覆盖旧文件,history 够用了。
lookhi
2014-07-16 07:32:26 +08:00
以前用邮件太麻烦了,现在是邮件+用prosody自建IM提醒.
紧急消息 直接的IM才是正道
hustlzp
2014-07-16 09:18:36 +08:00
@lookhi 确实啊,邮件太延迟了。请问你用的什么client来接收IM消息?
mengzhuo
2014-07-16 09:22:48 +08:00
备份我直接用阿里云的OSS了(数据用GPG加密过了)……外网如果不访问,竟然就不收钱……
lookhi
2014-07-16 09:54:12 +08:00
@hustlzp pidgin就可以了prosody是个简易的XMPP服务
20150517
2014-07-17 01:00:06 +08:00
我公司用的nagios,可以监控各种,比如今天备份文件没增加之类的,还能自己写插件
hustlzp
2014-07-17 10:30:57 +08:00
发现了一个Dropbox备份脚本:
https://github.com/andreafabrizi/Dropbox-Uploader
dennyzhang
2016-09-14 09:08:31 +08:00
@hging 还是判断$?更合适吧。备份失败的话,就发报警邮件。

如果条件允许的话,能开一个 Jenkins 的话,更建议定义一个 Jenkins job 。
然后在 job 加一个 post-action ,发 slack 或 BearyChat 的 IM 通知消息。
dennyzhang
2016-09-14 09:10:22 +08:00
@dndx 还是软删除,而不是 overwrite 吧。

不知道有没有好的 backupset rotate 的开源解决方案

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/122730

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX