大家来分享下监控、异常报警、备份的方法吧~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hustlzp
V2EX    DevOps

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

  •  6
     
  •   hustlzp 2014-07-15 14:51:57 +08:00 8097 次点击
    这是一个创建于 4181 天前的主题,其中的信息可能已经有所发展或是发生改变。
    断断续续手头上的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插件实现?目前还没有去探索。

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

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

    大家来分享下你采用的监控、异常报警、备份方法吧?集思广益一下~
    第 1 条附言    2014-07-16 01:36:29 +08:00
    更新:
    mysqldump -uuser -ppwd dbname | gzip > /path/to/backup/dir`date +%w`.sql
    第 2 条附言    2014-07-16 01:38:17 +08:00
    更新:
    mysqldump -uuser -ppwd dbname | gzip > /path/to/backup/dir/`date +%w`.sql
    第 3 条附言    2014-07-16 01:39:10 +08:00
    更新:
    mysqldump -uuser -ppwd dbname | gzip > /path/to/backup/dir/`date +%w`.sql.gzip
    第 4 条附言    2014-07-16 09:12:19 +08:00
    # 服务器和网站uptime监控

    https://uptimerobot.com

    免费的,已经用这个替代监控宝了。

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

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

    不知道有没有好的 backupset rotate 的开源解决方案
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3062 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 12:07 PVG 20:07 LAX 04:07 JFK 07:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86