每次修改过你的配置文件,你应该运行一次检测程序来验证配置的正确性。在运行你的Nagios程序之前这是很重要的,否则的话会导致Nagios服务因配置的错误而关闭。
为验证你配置,运行Nagios带命令行参数 -v,象这样:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如 果你确实忘记了一些重要的数据或是错误地配置了,Nagios将会给出一个报警或是一个错误信息,其中会给出错误的位置。错误信息通常会打印出错误配置的 文件中的那一行。在错误时,Nagios通常是在预检查出有问题打印出问题的源配置文件行后退回到命令行状态。这使得Nagios不会因一个错误而落入需 要验证一个因错误而嵌套的配置循环错误之中。报警信息可通常是被忽略的,因为一般那些只是建议性的并非必须的。
一旦你已经验证了你配置文件并修改过你的错误,就可以继续下去,启动或重启Nagios服务了。
有多于一种方式来启动、停止和重启动Nagios,这里在有更通常做的方式...
在你启动或重启动你的Nagios程序之前,你总是要确保你验证你的配置文件已经通过。
初始化脚本:最简单的启动Nagios守护进程的方式是使用初始化脚本,象这样:
/etc/rc.d/init.d/nagios start
手工方式:你可以手动地启动Nagios守护进程,用命令参数-d,象这样:
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
当你修改了配置文件并想使之生效的话,重启动或重载入动作是必须的。
初始化脚本:最简单地重启动Nagios守护进程的方式是使用初始化脚本,象这样:
/etc/rc.d/init.d/nagios reload
Web接口方式:你可以利用WEB接口,通过点击“进程信息”的超链接页面里的“重启动Nagios进程”来重启动Nagios,见图
手工方式:你可以手动地发一个SIGHUP信号,象这样:
kill -HUP <nagios_pid>
初始化脚本:最简单地停止Nagios守护进程的方式是通过初始化脚本,象这样:
/etc/rc.d/init.d/nagios stop
Web接口方式:你可以利用WEB接口,通过点击“进程信息”的超链接页面里的“关闭Nagios进程”来停止Nagios,见图
手工方式:你可以手动发一个SIGTERM信号,象这样:
kill <nagios_pid>
只有很少几件事可以减少Nagios的启动或重启总时间。加速启动方法包括有移除些负担还包括加快配置文件处理过程。
利用这些技术在如下一种或几种情况时特别有效:
大型安装配置
复杂地配置(过度地利用模板特性)
需要进行频繁重启动的安装模式
每次Nagios启动和重启时,在它着手进行监控工作之前必须要处理配置文件。启动过程中的配置处理包括如下几步:
读入配置文件
解析模板定义
重粘连("Recombobulating")对象(是我想到的应做各种工作)
复制对象定义
继承对象属性
对象定义排序
验证对象关联关系的完整性
验证回路
和其他...
当有很大的或是很复杂的配置文件要处理时有几步非常消耗时间的。有没有加快这些的办法?当然有!
在做让启动速度更快的事情之前,需要看看可能性有多少和是否有必要涉足此事。这个比较容易-只是用-s命令行开关启动Nagios以取得计时和调度信息。
下面是个输出样例(做过精减,只是显示了有关部分),在这个例子中,假定Nagios配置为对25个主机和超过10,000个服务进行监控。
/usr/local/nagios/bin/nagios -s /usr/local/nagios/etc/nagios.cfg Nagios 3.0-prealpha Copyright (c) 1999-2007 Ethan Galstad (http://www.nagios.org) Last Modified: 01-27-2007 License: GPL Timing information on object configuration processing is listed below. You can use this information to see if precaching your object configuration would be useful. Object Config Source: Config files (uncached) OBJECT CONFIG PROCESSING TIMES (* = Potential for precache savings with -u option) ---------------------------------- Read: 0.486780 sec Resolve: 0.004106 sec * Recomb Contactgroups: 0.000077 sec * Recomb Hostgroups: 0.000172 sec * Dup Services: 0.028801 sec * Recomb Servicegroups: 0.010358 sec * Duplicate: 5.666932 sec * Inherit: 0.003770 sec * Recomb Contacts: 0.030085 sec * Sort: 2.648863 sec * Register: 2.654628 sec Free: 0.021347 sec ============ TOTAL: 11.555925 sec * = 8.393170 sec (72.63%) estimated savings Timing information on configuration verification is listed below. CONFIG VERIFICATION TIMES (* = Potential for speedup with -x option) ---------------------------------- Object Relationships: 1.400807 sec Circular Paths: 54.676622 sec * Misc: 0.006924 sec ============ TOTAL: 56.084353 sec * = 54.676622 sec (97.5%) estimated savings
OK,看看发生了什么。先看汇总信息,大概有11.6秒用于处理配置文件有56秒来验证配置。这意味着每次用这个配置启动或重启Nagios时,它大约会有68秒来做启动事项而不会做任何监控的事情!如果是在定制配置Nagios过程中也是不可容忍的。
那么怎么办?看一下输出内容,如果运用了优化选项,Nagios将可以在配置读取过程节省大约8.4秒而在验证过程可节省63秒。
哇!从68秒到只有5秒?!是的!看看下面是怎么做到的。
Nagios可在解析配置文件过程中做些加速,特别是当配置中使用了模板来做继承等的时候。为降低Nagios解析配置文件的处理时间可用Nagios预处理与预缓存配置文件的功能。
当用-p命令参数来运行Nagios时,Nagios将读入配置文件,处理后将配置结果写入预缓存文件(由主配置文件中precached_object_file域指定文件位置)。该预缓存配置文件将包含了预处理后的信息将使Nagios处理配置文件更容易和快捷。必须把-p参数选项与-v或-s命令参数一起使用,如下例。注意要做预缓存配置文件之前配置应是已被验证过的。
/usr/local/nagios/bin/nagios -pv /usr/local/nagios/etc/nagios.cfg
预缓存配置文件有大小明显地比原有配置文件大。这是正常的由设计初衷决定的。
一旦预缓存对象配置文件创建,可以启动Nagios时带上-u命令行选项以让它使用预缓存配置文件而不是配置文件本身。
/usr/local/nagios/bin/nagios -ud /usr/local/nagios/etc/nagios.cfg
如果更改了配置文件,必须在Nagios重启动前要重新验证和重建预缓存配置文件。如果没有重构建预缓存配置文件,Nagios将使用旧配置运行因为是由旧配置生成的预缓存文件,而不是用新的原始配置文件。
第二步(也是最耗时)部分是对配置中的回路进行检测。在上面例子中这一步几乎用去了1分钟来验证配置验证。
什 么时回路检测和为什么要做这么长时间?回路检测逻辑是为了确保在你的主机、主机依赖、服务和服务依赖等对象之间不存在任何的循环路径。如果在配置中有循环 路径,Nagios将会因死锁而停止。用时较长原因是由于没有使用较高效的算法。欢迎提供更高效发现回路的算法。提示:这意味着EMail给我有关 Nagios论文的计算机科学系研究生将有机会得到些回赠代码。:-)
如果你想在Nagios为启动时跳过回路检测,可以在命令行回加上-x参数,象这样:
/usr/local/nagios/bin/nagios -xd /usr/local/nagios/etc/nagios.cfg
当要在启动和重启前跳过回路检测之前,验证配置文件的正确性是非常非常重要的!没有这么做将有可能导致Nagios逻辑上的死锁。你已被我提醒过了啊!
按照下面步骤将会使用预缓存配置文件并且跳过回路检测以充分加速启动。
1、验证配置文件并生成预缓存配置文件,用如下命令:
/usr/local/nagios/bin/nagios -vp /usr/local/nagios/etc/nagios.cfg
2、如果Nagios正在运行,停掉它;
3、启动Nagios,让其使用预缓存配置文件而且跳过回路检测:
/usr/local/nagios/bin/nagios -uxd /usr/local/nagios/etc/nagios.cfg
4、 当更改了原始配置文件时,需要重启动Nagios并修改现有内容,重新回到步骤1去验证配置并重构预缓存配置文件。一旦做好了,就可以通过Web接口来重 启Nagios或是在系统中发个SIGHUP信号,如果没有重构预缓存配置文件,Nagios将用旧配置运行,因为它首先会读入缓存配置文件而不是源配置 文件;
5、就这么多!祝你可以加快启动过程。
本文出自 “月光疾风” 博客,请务必保留此出处http://skykws8023.blog.51cto.com/4514277/1581633
原文地址:http://skykws8023.blog.51cto.com/4514277/1581633