- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 12 章 nagios开发相关
第 12 章 开发相关 Page 1 of 5
第 12 章 开发相关
上一页 下一页
第 12 章 开发相关
12.1. 使用内嵌Perl解释器
12.1.1. 介绍
Nagios编译时可以选择支持内嵌Perl解释器。这使得Nagios可以用更高效率来执行Perl所写插件,因而如果严重依赖于Perl写的插件的
话可能是个好消息。没有内嵌Perl解释器,Nagios将通过象外部命令一样用派生和执行的方法利用Perl所写的插件。当编译中选择了支持内
嵌Perl解释器时,Nagios可以象调用库一样来执行Perl插件。
提示
嵌入式Perl解释器可以让Nagios执行各种Perl脚本-不仅仅是插件。本文档只讨论涉及到Perl解释里执行对主机
与服务检测的插件,但它同样也支持相似的Perl脚本以用于其他类型命令(例如通知脚本、事件处理脚本等) 。
Stephen Davies在几年前发布了最初的嵌入式Perl解释器,Stanley Hopcroft是主要的帮助嵌入式Perl解释器改进提升的人并且应用它的
对优劣性做了批注。他同时给出了有关如何更好地实现用嵌入式Perl来实现Perl插件的方法。必须注意本文档里用的ePN,它指示Nagios
用Perl ,或是指示了Nagios要用嵌入式Perl解释器来编译执行它。
12.1.2. 优点
使用ePN(Nagios编译有嵌入式Perl解释器) 的好处有:
Nagios在运行Perl插件时将付出更少时间因为它不需要派生进程来执行插件(每次执行要调入Perl解释器) 。嵌入式Perl解
释器可以象调用库函数一样来执行插件;
它会大大降低运行Perl插件的系统开销并且(或者同时)可以同时运行更多的Perl插件检测。也就是说,可能使用其他语
言并没有这些好处,语言象C/C++、Expect/TCL ,用这些语言开发插件公认地比使用Perl语言开发插件要慢一个数量级
(虽然在最终运行时间上会更快,TCL语言是个例外) ;
如果不是C程序员,仍旧可以用Perl来做背负那些繁重的工作而不至于拖慢Nagios 的运行。但是要注意,ePN并不能加
速插件本身(还要除去内嵌Perl解释器的加载时间) 。如果要加速插件本身的执行,可以考虑使用Perl XSUB包(XS)或是
C,这么做的前提是你已经确信插件Perl程序足够优化并且保存了合理的算法(用那个Benchmark.pm包来比较Perl程序模
块的性能的方法是没有意义的) ;
用ePN是一个学习Perl语言最好的机会。
12.1.3. 缺点
使用ePN(Nagios嵌入式Perl解释器) 比之纯粹Nagios程序的缺点相近的,是在运行Apache带有mod_perl(Apache也是使用嵌入式解释器)
和运行纯粹Apache程序的两种情形对比,情况也是这样:
一个Perl程序可能在使用纯粹Nagios程序时运转良好但可能在使用ePN时却可能不正常,要修改Perl插件程序以使之运
转;
在使用ePN时调试Perl插件要比使用纯粹Nagios调试插件要困难一些;
使用ePN的插件比纯粹Nagios情况下要更大一些( 内存占用) ;
想用的一些Perl结构体可能不能用或是用起来很困难;
不得不要关注有多个进程在使用和选择一种方式看起来更少交换或更少明显交互(注意用解释器执行是并发的--译
者注) ;
要有更多的Perl功底(但不需要过多Perl技巧或素材-除非是使用XSUBS 的插件) 。
12.1.4. 使用嵌入式Perl解释器
/nagios-cn/develope.html 2011-12-22
第 12 章 开发相关 Page 2 of 5
如果要使用嵌入式Perl解释器来运行Perl插件和Perl脚本,下面这些是需要做的:
带有嵌入式Perl
文档评论(0)