×

微信扫一扫,快捷登录!

Nagios plug-in development guidelines(2)

标签: 暂无标签
本帖最后由monicazhang于2015-10-3021:23编辑

20151030淡然
续上




2.PluginOutputforNagios
YoushouldalwaysprintsomethingtoSTDOUTthattellsiftheserviceisworkingorwhyitisfailing.Trytokeeptheoutputshort-probablylessthat80characters.Rememberthatyouideallywouldliketheentireoutputtoappearinapagermessage,whichwillgetchoppedoffafteracertainlength.你总是应该输出一些东西到STDOUT来说明服务正在工作或者它为什么会失败了。试着保持输出的简短—最好少于80个字符。记住最理想的是在一个页面中输出全部的消息,否则它们达到一定的长度会被裁掉。nagios安装
AsNagiosdoesnotcapturestderroutput,youshouldonlyoutputtoSTDOUTandnotprinttoSTDERR.Nagios不捕获STDERR输出,你应该只输出到STDOUT而不要打印到STDERR中。


2.1.Printonlyonelineoftext输出一行文本
NagioswillonlygrabthefirstlineoftextfromSTDOUTwhenitnotifiescontactsaboutpotentialproblems.Ifyouprintmultiplelines,you'reoutofluck(thoughthiswillbeafeatureofNagios3).Remember,keepyouroutputshortandtothepoint.Nagios从STDOUT中只抓取第一行文本,当它通知联系人可能的问题时。如果你输出多行,你就不走运了(尽管这可能会是Nagios3的一个特征)。记住,保持你的输出简短和切题。
Outputshouldbeintheformat:输出的格式如下:
SERVICESTATUS:Informationtext
However,notethatthisisnotarequirementoftheAPI,soyoucannotdependonthisbeinganaccuratereflectionofthestatusoftheservice-thestatusshouldalwaysbedeterminedbythereturncode.注意这不是API的要求,所以你不必依赖于它,来精确地反映服务的状态—状态总是由返回的代码决定的。


2.2.Verboseoutput详细输出
Usethe-vflagforverboseoutput.Youshouldallowmultiple-voptionsforadditionalverbosity,uptoamaximumof3.Thestandardtypeofoutputshouldbe:使用–v标记详细输出。你应该为更详细的内容允许多个-v选项。最多可以达到3个。标准的输出类型可以是:
Table1.Verboseoutputlevels
[td]
Verbositylevel
Typeofoutput
0
Singleline,minimaloutput.Summary单行,最小输出,简要
1
Singleline,additionalinformation(eglistprocessesthatfail)单行,附加信息(比如失败的过程处理)
2
Multiline,configurationdebugoutput(egpscommandused)多行,配置高度输出(如进程命令使用)
3
Lotsofdetailforpluginproblemdiagnosis很多的插件详细问题诊断等开源监控软件


2.3.ScreenOutput屏幕输出
Theplug-inshouldprintthediagnosticandjusttheusagepartofthehelpmessage.Awellwrittenpluginwouldthenhave--helpasawaytogettheverbosehelp.插件应该打印诊断信息,它只是有用的帮助信息的一部分。一个编写良好的插件应该有一个--help作为一个获得详细帮助的一种。
Codeandoutputshouldtrytorespectthe80x25sizeofacrt(rememberwhenfixingstuffintheserverroom!)代码和输出应该试着遵守80x25尺寸的显示器


2.4.PluginReturnCodes插件返回代码
ThereturncodesbelowarebasedonthePOSIXspecofreturningapositivevalue.Netsaintpriortov0.0.7supportednon-POSIXcompliantreturncodeof"-1"forunknown.NagiossupportsPOSIXreturncodesbydefault.下面的返回代码是基于POSIX细则返回一个正值。之前的v0.0.7版本支持non-POSIX兼容,返回-1代码来表示一个UNKNOWN状态。Nagios默认支持POSIX返回代码。
Note:SomepluginswillonoccasionprintonSTDOUTthatanerroroccurredanderrorcodeis138or255orsomesuchnumber.Theseareusuallycausedbypluginsusingsystemcommandsandhavingnotenoughcheckstocatchunexpectedoutput.Developersshouldincludeadefaultcatch-allforsystemcommandoutputthatreturnsanUNKNOWNreturncode.注意:一些插件偶尔在向STDOUT输出,当一个错误发生时,错误代码是138或255或者是一个些其它数字。这些通常是由于使用系统命令并且没有足够的检查来捕获异常输出。开发着应该为系统命令输出包含一个默认的捕获全部来返回一个UNKNOWN代码。nagios配置

Table2.PluginReturnCodes插件返回代码
[td]
NumericValue
ServiceStatus
StatusDescription
0
OK
Thepluginwasabletochecktheserviceanditappearedtobefunctioningproperly插件可以检查服务并且可以正确呈现功能
1
Warning
Thepluginwasabletochecktheservice,butitappearedtobeabovesome"warning"thresholdordidnotappeartobeworkingproperly插件可以检查服务,但是它呈现出一些临界警告信息,或者不能正确工作
2
Critical
Theplugindetectedthateithertheservicewasnotrunningoritwasabovesome"critical"threshold插件检测到服务可能没有运行或者它达到某些临界值监控软件
3
Unknown
Invalidcommandlineargumentsweresuppliedtothepluginorlow-levelfailuresinternaltotheplugin(suchasunabletofork,oropenatcpsocket)thatpreventitfromperformingthespecifiedoperation.Higher-levelerrors(suchasnameresolutionerrors,sockettimeouts,etc)areoutsideofthecontrolofpluginsandshouldgenerallyNOTbereportedasUNKNOWNstates.向插件提供了不详的命令行参数或者插件低级内部失败(如不能创建子进程或打开tcp连接)阻止了它处理指定的操作。高级错误(比如一些误差,socket超时等)是插件控制之外的并且通常不能被报告的即为UNKOWN状态。


2.5.Thresholdandranges临界和区间
Arangeisdefinedasastartandendpoint(inclusive)onanumericscale(possiblynegativeorpositiveinfinity).区间被定义来作为一个开始和结束点(包含)数值范围(可能是负数或下无穷大)nagios实施
Athresholdisarangewithanalertlevel(eitherwarningorcritical).Usetheset_thresholds(thresholds*,char*,char*)functiontosetthethresholds.一个阀值是一个报警级别的区间(warning或critical)。使用函数set_thresholds(thresholds*,char*,char*)来设置阀值。
Thetheoryisthatthepluginwilldosomesortofcheckwhichreturnsbackanumericalvalue,ormetric,whichisthencomparedtothewarningandcriticalthresholds.Usetheget_status(double,thresholds*)functiontocomparethevalueagainstthethresholds.理论上,插件会做一些简短的检查,这些检查会返回一个数据值,或者度量标准,这些值会同warning和critical阀值进行比较。使用函数get_status(double,thresholds*)来与阀值进行比较。
Thisisthegeneralisedformatforranges:下面是区间的通常格式:nagios培训
[@]start:end




待续:http://www.ITILxf.com/thread-53034-1-1.html
本帖关键字:Nagios




上一篇:Nagios plug-in development guidelines(1)
下一篇:Nagios plug-in development guidelines(3)
monicazhang

写了 2297 篇文章,拥有财富 12859,被 21 人关注

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

Powered by IT 运维管理
返回顶部