技巧_给明智的系统管理员的 10 条提示

  • 格式:pdf
  • 大小:289.84 KB
  • 文档页数:7

给明智的系统管理员的 10 条提示 维护 UNIX 系统 级别: 中级 Martin Streicher, 软件开发人员, Pixels, Bytes, and Commas 2009 年 5 月 18 日

本杰明·富兰克林是科学家、学者、政治家和……系统管理员?没错,早在 UNIX® 系统出现之前 200 年,富兰克林已经对保持系统正常工作提出了建议。下面是富兰克林最著名的 10 条提示。

如果向任何人问起本杰明·富兰克林的成就,您很可能会听到关于他的电学实验、参与建立美国联邦以及发明双焦距眼镜的故事(见 图 1)。但是,富兰克林还有许多不太为人熟知但同样令人影响深刻的成就,他参与了纸币的发行,在纸币上采用新颖的防伪技术,建立美国邮政服务,于 1736 年在费城组建了殖民地的第一个火灾保险公司(Union Fire Company)。实际上,早在 Smokey the Bear 出现之前几个世纪,富兰克林就提出了著名的防火口号,“预防胜于治疗”。他的建议时至今日仍然是非常有意义的,对于 UNIX 系统管理尤其如此。

图 1. 本杰明·富兰克林:政治家、发明家和 UNIX 系统管理员(看看他的长头发吧),由画家 Jean-Baptiste Greuze 于 1777 年创作

根据富兰克林的名言(他也说过这样的妙语,“客人就像鱼,三天就发臭”),作者为系统管理员总结出 10 条保持 UNIX 系统正常工作的提示。

富兰克林关于安全性的提示

“不轻信和谨慎是安全之母。” 保障系统安全是很困难的。仅仅购买并安装某种产品,是不可能完全抵御所有威胁的。相反,要想保护系统,必须时刻保持警惕,不断创建、寻找、应用、测试和调整许多安全措施。有点儿妄想症是有益的。鉴于安全性的本质,富兰克林悲观地说,“三个人无法保住一个秘密,除非是其中两个人死了。”

可以通过以下措施更好地保护系统: l订阅和阅读安全公告,了解您的操作系统和应用程序软件面临的威胁,判断这些问题是否会危害您的配置。(例如,最近发现 Apache HTTP Server 的 mod_proxy_ftp 模块有漏洞,所以许多站点禁用了这个模块)。在需要采取行动时,制定一个防御威胁的计划,比如对源代码应用补丁并重新编译,或通过厂商的包存储库更新软件。

Page 1 of 7给明智的系统管理员的 10 条提示2010-1-2http://www.ibm.com/developerworks/cn/aix/library/au-sensiblesysadmi/index.htmlPDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cnl只向每个用户和应用程序授予最低限度的访问权。只提供完成任务所需的权限,绝不要超过这个范围,绝不要允许直接访问 root 登录。如果应用程序必须作为根用户运行,应该考虑替代解决方案。

l绝不要为了图方便而降低安全性。

l部署 Monit 以检测入侵。Monit 和相似的工具能够监视文件和目录的模式、时间戳、散列值和其他属性,并在有人(有意或无意地)修改这些属性时发出警告。Monit 还监视 Apache 等进程,可以在发生故障时重新启动守护进程。图 2 显示 Monit 的运行效果。

图 2. Monit 监视文件、目录、进程、网络等

富兰克林关于一致性的提示 “防止坏习惯产生比克服坏习惯更容易。” “一次性的” 东西是最让系统管理员头疼的 — 独特的甚至只有细微差异的机器配置或实现某种目的所需的 “微小” 调整。一次性的东西很容易被遗忘,可能会造成损害,最好一开始就避免它们。

当然,排除所有例外是不现实的。正如另一位智者所说的,“某些事情总会发生!”。在一般情

Page 2 of 7给明智的系统管理员的 10 条提示2010-1-2http://www.ibm.com/developerworks/cn/aix/library/au-sensiblesysadmi/index.htmlPDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn况下,保持一致性是最好的策略。但是,如果无法避免一次性的东西,那么一定要仔细记录这些特殊情况。

下面是一些建议: l绝不要对正在运行的生产系统应用未经检验的修改。应该在一个专用的系统中准备和测试每个修改,然后再应用于生产环境。

l维护自己的软件存储库,使用它作为组建系统的权威源。如果您的系统使用 Red Hat Package Manager (RPM) 包格式,那么可以使用 Yum(见 参考资料)管理和分发本地软件包。

l如果要多次重复执行一个手工任务,那么应该在脚本中实现操作。shell 脚本可以简化操作、避免错误和节省时间。顺便说一句,如果要编写实现修改的脚本,那么也要同时编写相反的脚本 — “撤消” 脚本。要测试这两个脚本以确保健壮性。

l使用源代码控制系统维护系统配置文件。源代码控制系统允许用户 “回滚” 到以前的文件版本,从而恢复以前的状态或从错误中恢复。另外,可以使用数据库或者 Trac 和 Lighthouse 等系统(见 参考资料 中的链接)在配置的整个生命周期内(从请求实现直至取消)跟踪对配置的修改。

l为每个一次性的配置设置过期时间,在到期时撤消修改(可能有例外情况)。

富兰克林关于准备的提示 “不做准备,就意味着失败。” 危机肯定会发生。UNIX 系统及其设备往往可以长时间连续运行。但是,网络通信可能中断,硬件可能出现故障,人会 犯错误。墨菲定律(“有可能出错的东西,就一定会出错”)是信息技术 (IT) 的首要法则。

但是,好在危机发生的频率越来越低了,这使我们有足够的时间准备和避免危机。管理员的日常工作必须包括备份、日志轮转、性能度量(稍后详细讨论)、应用补丁和保护所有系统。

下面是一些比较容易被忽视的日常维护任务: l检验备份。当危机发生时,如果发现备份是不完整的或无法使用,那就真的有大麻烦了。应该常常进行恢复演习。另外,应该制定一个恢复计划,以便在发生不可抗的灾难时恢复业务运营。

l要注意即将到期的期限,要及时续约 — 尤其是系统所依赖的 Secure Sockets Layer (SSL) 证书和其他服务或产品,这方面的失误可能会干扰甚至中断访问或业务运营。应该至少每个月续约一次常规 SSL 证书,新的 Extended Validation (EV) 证书的续约周期可以长一些。当续约期限快要到了时,应该顺便查询或商谈更合适的服务条款。

l对于升级失败 一定要有心理准备,要制定恢复计划。可能墨菲定律没有发生,您的 Oracle 升级会顺利地完成……但是不应该指望永远这么走运。业务连续性是非常重要的,您不能心存侥幸。

富兰克林关于节俭的提示 “注意小开支。一个小洞也会弄沉大船。” 现实情况是,IT 预算不断缩减,而同时对服务的广度和深度的要求却不断增加。必须节省每一块钱。富兰克林对财政的感想也适用于当今的 IT 环境。

下面是几点建议: l虽然富兰克林没有首创 “简单点儿,傻瓜!” 这句话,但是他不会介意这么粗鲁,反而会欣赏这种实用主义精神。尽可能每次只做一处修改,不要试图一蹴而就。例如,如果要升级

Page 3 of 7给明智的系统管理员的 10 条提示2010-1-2http://www.ibm.com/developerworks/cn/aix/library/au-sensiblesysadmi/index.htmlPDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn内核,就不要同时修改 Domain Name System (DNS) 条目。 l禁用(甚至删除)不使用的服务和软件。例如,对于面向公众的 Web 服务器,可能不需要运行用于发送邮件的 Simple Mail Transfer Protocol (SMTP) 或用于打印机管理的 Common UNIX Printing System (CUPS)。每个组件都可能增加管理员的工作量,可能出现问题,会占用处理器周期、磁盘空间和时间;应该尽可能去除不必要的东西。

l优化,优化,再优化。按照 Bruce Schneier 的说法,“优化是一个过程,而不是产品”。与安全性一样,没有 “治疗” 糟糕性能的万灵药。安装更多的内存或处理器肯定会有帮助,但是它们仅仅是暂时掩盖了效率低下的问题,当这些新资源也被消耗掉之后,性能问题会再次出现。

富兰克林关于信息的提示 “你相信谁?我还是你自己的眼睛?” 实际上,这句话不是富兰克林说的,而是马克斯兄弟中的 Chico Marx(是经典作品 Duck Soup 中 Groucho Marx 的台词)。

当然,人们总是希望根据可靠的数据做出决定,而不是根据传言或猜测。因此,一定要收集系统指标,据此制定计划和评估操作。应该连续监视系统的使用量和容量,以此了解什么是 “正常情况”。这样的话,可以很容易地发现异常。基线对于制定计划也非常有价值,可以根据基线和预计或观察到的使用量决定增加多少资源。

下面是一些建议: l有许多自动化系统监视工具可供选用,其中大多数是开放源码的。例如 ZABBIX、Nagios 和 Cacti(见 参考资料 中的链接)。应该把这种系统与电子邮件和传呼机连接起来,在发生紧急问题时及时通知相关人员。

l如果系统支持的话,应该启用 IBM® SMART HDD 警报等硬件监视机制。许多硬件厂商也提供用来监视硬件的软件代理;应该安装并运行这些守护进程。同样,应该把警报传播给相关人员,以便他们及时做出反应。

l应该观察前 24 小时、前一周和前一个月的使用量模式。要特别注意平均负载、磁盘空间消耗量和内存使用量;然后,总结出变化趋势。根据这些分析,提前添加所需的硬件。

l检查系统日志中的重要消息,比如失败的登录尝试和出现问题的守护进程。

富兰克林关于教育的提示 “花钱求知识,无人能夺去。” 很少有哪个行业的变化速度能有计算机行业这么快,IT 业的变化甚至更快。任何系统管理员的最佳投资方向都是培训。

参加培训课程和获取认证对于管理员的职业前途和应对大型项目非常重要。还应该通过阅读杂志增长见闻,逐渐形成自己的观点和倾向。应该经常与同行交流实践经验。

最重要的是 “RTFM”。也就是,阅读手册、手册页、发布说明、README 和软件附带的其他文档。

富兰克林关于开放源码的提示

Page 4 of 7给明智的系统管理员的 10 条提示2010-1-2http://www.ibm.com/developerworks/cn/aix/library/au-sensiblesysadmi/index.htmlPDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn