运维联盟论坛整理文档软件的著作权者所有,本书仅对中文化后内容保留著作权。需要提醒的是:无论你将采用何种方式来引用本书,全部或部分章节,请一定要给出本书的来源站点是,并且一定引用sourceforge站点的相关出版物的版权提示与声明。修订历史修订0.0.330/01/2008enochcytian将翻译完成的部分初步生成在线帮助文档。修订0.0.220/12/2007enochcytian建立DocBook工程,从源html文件反向生成xml章节文件。修订0.0.112/12/2007enochcytian建立初稿,开始编写初始文件。摘要Nagios是一款非常优秀的网络主机管理软件,它在开源社区的影响力是非同寻常的。但很可惜的是,它的界面及操作使用过程中采用了英语的语言提示与源程序紧密结合使得这款软件的汉化界面迟迟不能推出,影响了它在中文区的使用。为推进Nagios的使用,笔者建立了nagios-cn工程,该工程的主要目标是翻译源程序中运行提示、界面生成和文档说明,通过一些努力,nagios-cn终于可以正常运转了,本书编写的主要目的是为在中文使用区域推广和使用Nagios软件,让这款优秀的软件为国人服务。题词1.致谢运维联盟论坛整理文档首先要感谢我的家人,是他们在身后的支持使得我得以着手做我所喜欢的事情,我的家人是我引以自豪的根本,相信他们也会为我所做的而自豪。其次要感谢Nagios的作者,是EthanGalstad给我们带来了这么好的一款软件,也是他给我的回信,让我知道了Nagios软件将向何处努力与发展。最后要感谢开源社区,特别是sourceforge和google.code站点,是在这两个组织的支持下使得nagios-cn得以生存下去,并使得越来越多的人感受到开源社区的对人类的贡献。1.序2.关于Nagios2.1.什么是Nagios?2.2.系统需求2.3.版权2.4.致谢2.5.下载最新版本3.Nagios3.0新特性3.1.更新日志3.2.变更与新特征4.入门4.1.给新手的建议4.2.旧Nagios升级到当前版本4.3.快速安装指南4.4.基于Fedora平台的快速指南4.5.基于openSUSE平台的快速指南4.6.基于Ubuntu平台的快速指南4.7.监控Windows主机4.8.监控Linux/Unix主机4.9.监控路由器和交换机4.10.监控网络打印机4.11.监控Netware服务器4.12.监控公众服务平台5.准备配置Nagios5.1.配置概览5.2.主配置文件选项5.3.对象配置概览5.4.CGI配置文件选项6.Nagios监控与配置的基本概念6.1.对象定义运维联盟论坛整理文档集群主机和集群服务的监控9.8.适应性监控9.9.强制式主机状态迁移10.Nagios自身的安全性与性能调优10.1.自身安全相关事项10.2.Nagios的性能调优10.3.使用Nagios状态工具10.4.使用MRTG绘制性能数据10.5.对CGIs程序模块的授权与认证10.6.用户定制CGI页面头和尾11.软件集成相关的内容11.1.软件集成概览11.2.SNMP陷井集成11.3.TCPWrapper集成11.4.Nagios外部构件12.开发相关12.1.使用内嵌Perl解释器12.2.开发使用内嵌式Perl解释器的Nagios插件12.3.Nagios插件API13.写在最后的话13.1.一些关于本手册的操作建议13.2.本书编辑出版打算13.3.有关nagios-cn项目推进打算13.4.项目捐助运维联盟论坛整理文档章序相信玩计算机网络的人都或多或少地知道网络管理这一类型软件,但真正在实际中使用并以此为工作基础的人相信并不多,毕竟它不象游戏或字处理类软件那么常见。要不是某些事情所迫,我也不会尽心来了解并使用网管软件,在2004年年底,因为某些任务实在安排不下,“尚有剩余时间”的我接下研究一款网络管理软件的事情。没有最终目标,没有时间截止期限,也不会有太多的人员资金投入,但要把一些很实际的问题解决掉,这就是这些工作的起点。好在软件并不难以安装和试用,我只花了一天就下载、编译和安装好了,试着把配置文件改了一下,也可以操作着试着用了,但操作界面丑陋、配置更新繁琐、初建系统工作量大等一系列问题使我不得不怀疑是否还需要它?毕竟有一款商业化的软件就放在手边,虽然定制得不太合乎要求,但至少没有这么繁杂的责任背身上,毕竟,我可以不为这些事情负责任的。考虑在三,放弃并不是我想要做的,既然时间没有限制,那就两条腿走路吧,先稳妥地配置好那个商业化软件,让它可以操作与运转,但对后序的改动,只好开启一个记录库,不断地将问题记录下来,而对于Nagios,再清理一下思路,先看看到底我要它做些什么事情,在使用中会有多少问题需要解决,解决到什么程度,再把现有条件对比一下,看看能否走通。不断地尝试与调整是一个漫长的过程,尤其是到着手编写检测插件的阶段,并不是象想像中的那么顺利,好在时间是挤出来的,写来写去竟然也有了些心得,顺手把Perl和BASH给练习了(只是这些插件与工作内容相关,可惜不能公开),也把几个Nagios安装和运行中常有问题给改掉了,还写了个专门给实施和运行用的BASH脚本方便后来者研究和利用它。再往下,因为工作情况有变,把掌握的东西交付出来,让它真正有所实用。而后面再搞东西就完全是自己的兴趣了,我先后对nagios-cn项目加入了SVG格式支持、把RRD和Grapher功能整合、写SPEC以定制RPM、增加DocBook转换工程等等,每每做完这些总能让人感到有一种新鲜愉快的感受。直到最后阶段,我才想到要宣传和推广它,也是因为脱离工作内容的关系,使我做的这些事情不再带有工作内容才有条件在网上公开,这就是后面几个网站或博客上给出的日益增多的项目信息,这本书也是其中的一部分。运维联盟论坛整理文档?Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。Nagios最初被设计为在Linux系统之上运行,然而它同样可以在类Unix的系统之上运行。Nagios更进一步的特征包括:1.监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);2.监控主机资源(处理器负荷、磁盘利用率等);3.简单地插件设计使得用户可以方便地扩展自己服务的检测方法;4.并行服务检查机制;5.具备定义网络分层结构的能力,用parent主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;6.当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);7.具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;8.自动的日志回滚;9.可以支持并实现对主机的冗余监控;10.可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;2.2.系统需求Nagios所需要的运行条件是机器必须可以运行Linux(或是Unix变种)并且有C语言编译器。你必须正确地配置TCP/IP协议栈以使大多数的服务检测可以通过网络得以进行。你需要但并非必须正确地配置Nagios里的CGIs程序,而一旦你要使用CGI程序时,你必须要安装以下这些软件...1.一个WEB服务(最好是Apache)2.ThomasBoutell制作的gd库版本应是1.6.3或更高(在CGIs程序模块statusmap和trends这两个模块里需要这个库)2.3.版权运维联盟论坛整理文档版权协议第二版。有关GNU协议请查阅自由软件基金会网站。该版权协议允许你在某些条件下可以复制、分发并且或者是修改它。可以在Nagios软件发行包里阅读版权文件LICENSE或是在网站上阅读在线版权文件以获取更多信息。NagiosisprovidedASISwithNOWARRANTYOFANYKIND,INCLUDINGTHEWARRANTYOFDESIGN,MERCHANTABILITY,ANDFITNESSFORAPARTICULARPURPOSE.2.4.致谢一些人对Nagios的发布尽力,不管是报告错误、提供建议、编写插件等等,可以在网站上找到这些人的名字列表。2.5.下载最新版本可以在Nagios站点获取最新版本。注意Nagios及Nagios商业标识由EthanGalstad所拥有。其他的商业标识、服务标识、注册商标及注册服务属于各自的所有者。运维联盟论坛整理文档://更新日志Nagios的更新日志可以在这里的在线文件或是在源程序的发行包的根目录里找到。3.2.变更与新特征•文档:1.更新了文档-很抱歉我对文档的更新工作进展迟缓。这会花些时间来做,因为有很多文档而且写这些文档并不是我喜欢的事情(我更不喜欢整天翻译,这也不是我喜欢的事情)。期待一些文档与其他的有所不同,而这些不同会对于那些新人或有经验的Nagios使用者起些作用。•内嵌宏:1.新加宏-加入了一些新宏,包括:$TEMPPATH$、$LONGHOSTOUTPUT$、$LONGSERVICEOUTPUT$、$HOSTNOTIFICATIONID$、$SERVICENOTIFICATIONID$、$HOSTEVENTID$、$SERVICEEVENTID$、$SERVICEISVOLATILE$、$LASTHOSTEVENTID$、$LASTSERVICEEVENTID$、$HOSTDISPLAYNAME$、$SERVICEDISPLAYNAME$、$MAXHOSTATTEMPTS$、$MAXSERVICEATTEMPTS$、$TOTALHOSTSERVICES$、$TOTALHOSTSERVICESOK$、$