建站咨询:

建站业务咨询 预约上门 400-666-5826

公司动态| 关于魔狐狸| 魔狐狸建站学堂

魔狐狸科技有限公司
营销型网站建设专家
我们不仅仅做网站,更懂得网络营销
  • 10年网站建设经验
    10年网站建设经验
  • 服务客户超2000家
    服务客户超2000家
  • 超20人后台服务团队
    超20人后台服务团队
  • 超强网络营销策划能力
    超强网络营销策划能力
您所在位置:首页 > 建站知识 > 常见问题

服务器运维:怎样优雅地切割log

来源:魔狐狸官网 发布时间:2015-12-06 15:43:42

   好吧,我必须要承认,我是一个标题党来的。本文英文名称意思比较准确。什么?你没看到英文名称在哪?不是写给你看的,你当然看不到。

   在Web开发过程中,你总是因为各种理由,需要跟服务器打交道,因为各种理由需要承担一点点运维工作,哪怕你需要运维自己的blog,比如用Linode这种东西。那么服务器运行,就少不了log,log不少,就不得不翻滚,就是rotate,不知道中文是啥……

   为什么要rotate呢,理由是比较简单的,比如在32位系统里,默认文件写到2G大小的时候,就会导致进程core掉,引发很多神奇的问题和bug,你也可以用一些补丁和编程技巧突破2G这个限制,但是你真的需要一个超过2G的log么?回溯总归不方便吧,按日期检索总归不方便吧,反正理由很多了,就是一定要rotate的。

   怎么rotate呢,这个方法可就多了。最傻逼的一种,每次想起来了,ssh到服务器,将所有log都mv一遍,啥?mv后进程挂了,重启不就行了。太多了?mv ./* 嘛,啥?机器挂了,谁让你选这么煞笔的方式啊……

   然后稍微优雅点的,会写个shell脚本。以前我所在的团队,就有人这么干,写个shell脚本,然后放个cron,就比较省心了。那么shell脚本怎么rotate呢,还不是mv么……mv有问题的,因为有些log文件的句柄开着的,突然mv掉了,就好像行驶中的汽车轮子突然掉了,你说啥感觉呢……比较温柔的是 echo ” > xxxx.log,我管这个叫写空,先cp,然后写空,会比较温柔。

   然后说到比较干货的地方了。就是有个东西叫logrotate,以前我根本不知道,我以为用shell脚本就高大上了,草。原来有专门的程序,好的系统,就是从中能学到很多井井有条可以喝咖啡的技巧,比如debian就是这样的系统。那些脏呼呼的服务器程序,脏兮兮的配置文件,放在随便哪个脏兮兮的目录都是可以的,垃圾的文章会告诉你怎么配置就行了。然后你打开debian的时候,你会发现这些配置文件都这么整齐,都这么自动,可以分头安装,还能安全卸载,后装的竟然能跟先装好的完美契合,简直绝了。

   跑题了。这个logrotate,就是专门切割log的,通过一个配置文件来控制切割频率,切割大小,是否压缩,多少天删除等等,什么都想好了,写什么shell脚本啊,简直浪费时间。

   按照一般的教程,如果你配置好logrotate,那也就太平了,一天切一次,30天循环。草,这也会出问题的,比如你的服务器访问量很恐怖,每天产生10G的access_log的话,你就知道了,切割的时候,切完了压缩的时候,你会发现(没有报警系统的话,你还发现不了)CPU被占满了,这意味访问受阻么?也不一定,只是一两个核被占满了而已。当然,每个核其实是不一样的,改天说。所以某几个核占满了,也是不行的。

   写到这里我就写不动了,累啊,直接干货吧。

   准备log方案的时候:

   1. log存在哪个磁盘上?如果分区了的话,要选最大的那个区

   2. log每天产生多少?有个估算没有,没有的话,就观察出来

   3. 在服务器本地磁盘能暂存多少天?压缩后能暂存多少天?

   4. 压缩很耗费CPU时间的,想好log是否压缩?

   5. log是否很重要?那就需要一个大存储专门存放log的,不然rotate没几天,前面的就丢了;

   6. 如果单日切割太大了,可以按照文件大小切割的,或者按照小时切割;

   7. 怕耗CPU可以先不压缩的;

   8. 想压缩的话,可以用taskset和nice指令的,让CPU不要被gzip跑满;


提示:手机触屏可一键拨号,电话:400-666-5826

 

 

联系方式
工作时间:8:00-19:00
咨询电话:400-666-5826
客服邮箱:service@mohuli.com
 
魔狐狸-微信
服务项目
网站建设 网络营销 域名注册 主机租用
企业邮箱 商标注册 网站托管 400电话
建站学堂 建站知识 模板中心 案例展示

© 2008-2016    魔狐狸备案豫公网安备 41010302000002号   豫ICP备15024447号   

魔狐狸-网站报价 网站报价


400-666-5826

魔狐狸二维码

微信扫码,了解更多