系统运维秘诀:变化,监控,扩展(技术篇)(2) |
发布时间: 2012/5/28 10:18:54 |
监控正确的东西 ◆监控你能监控的所有东西,而且要用正确的方法来进行监控。如果你的NFS服务器挂掉了,不要让你的监控工具发送1000条警报。如果对你的系统来说,超时的警报没有什么实际意义,那就别让它发。要针对各种具体的情况进行成功性测试:是的,这个服务可以进行一个新的TCP连接,它甚至可以响应,但是它还记得它要做什么工作吗? ◆如果你有500个Web服务器,其中一个挂掉了,你可能不必马上知道这个情况。但是,如果负载均衡器没有把这台机子踢出去,导致错误报告出现在了用户的屏幕上,那么你必须知道这个情况! 有关数据图形化,历史数据 ◆图形的作用是让趋势可视化。历史数据的作用是让你对数据进行精确的分析。不要把这两者混为一谈!对图形进行目测,很容易获得错误的数值。许多站点都使用rrd类型的系统或其他的数据聚合系统,此类系统按照时间对数据进行平均化处理,然后保存在存储空间中。这不仅仅是难以阅读的问题:这根本是错误的! ◆如果你要浏览数百张图才能精确地对一个问题进行定位,那真是糟透了。想要找出极值?请使用脚本提取数据。 ◆如果你必须使用图形来解决问题,尽量把各种高级的概念整合到一个单一的页面中,然后让这个页面链接到拥有具体信息的子页面中。如果你在数据库负载中可以看到一个峰值,你可以点击这个页面对那些数据库进行概览,然后找到那一两台可疑的机器。基本的理念是尽快地缩小范围,尽可能的减少猜测。 日志记录,使用多个数据流 ◆无论是独立工作还是与开发部门合作,都要把尽可能多的有用的信息记录到日志中。无论是分析之后再保存,还是直接扔进数据库中生成报告,这些都无所谓。信息终归是有用的。 ◆有用的例子:页面呈现时间(哪个页面?哪个设备?),面向用户的错误,数据库和内部服务错误,带宽使用率等。 ◆建立图表,报告,并对产生的历史数据进行比较。 ◆报告是十分重要的。每周或每天对你的基础设施变更进行汇总。 数据存储方式,数据库 ◆诚然,数据库运维是一套完整而独立的知识体系。但是有时,你不能把一切都丢给你的DBA。 ◆拥有多个冗余的数据库会给你带来很多好处。对于一个庞大的Oracle实例来说,从前,很多运维工作需要好几个小时的关机维护时间;而现在,完全可以在服务运行的同时进行。MySQL和数据库复制功能是一件奇妙的事情。 ◆和DBA们一起努力,尽量为可能会发生问题的数据库争取到最好的硬件。RAID 10,大量的RAM,高速硬盘,乃至于强悍的RAM磁盘和SSD。运维人员对提供商要货比三家,这样可以减轻DBA对硬件的恐惧。从长远来看,找出哪个品牌的硬件更加优秀会节省大量的资金。 ◆数据库配置一直在改变。现在出现了HiveDB,MySQL Proxy,DPM这些软件。我们绝对应该对巨大的数据集进行分割。我们也可以考虑一下像starling和Gearman这样具有一定创新性的软件。了解一下这些软件的用途,同时,了解一下并不是一切东西都要保存在一个数据库中的。 ◆善用你的过滤器!如果这些数据很重要,应该对它们进行备份!单片的NFS服务器的快照很奇妙,它并不是一个备份! ◆可以虑一下替代的解决方案。MogileFS现在变得越来越好了(参考阅读:分布式文件系统试用比较)。实际上,还有其他类似的项目可以免费(或廉价)地维护大量的存储文件。类似的系统基本上都是是为youtube.com、archive.org等站点而开发的。我们最终会让廉价的NFS过滤器成为标准!
本文出自:亿恩科技【www.enkj.com】 |