本帖最后由monicazhang于2015-10-3021:23编辑
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] | | | Singleline,minimaloutput.Summary单行,最小输出,简要 | | Singleline,additionalinformation(eglistprocessesthatfail)单行,附加信息(比如失败的过程处理) | | Multiline,configurationdebugoutput(egpscommandused)多行,配置高度输出(如进程命令使用) | | 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] | | | | | Thepluginwasabletochecktheserviceanditappearedtobefunctioningproperly插件可以检查服务并且可以正确呈现功能 | | | Thepluginwasabletochecktheservice,butitappearedtobeabovesome"warning"thresholdordidnotappeartobeworkingproperly插件可以检查服务,但是它呈现出一些临界警告信息,或者不能正确工作 | | | Theplugindetectedthateithertheservicewasnotrunningoritwasabovesome"critical"threshold插件检测到服务可能没有运行或者它达到某些临界值监控软件 | | | 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
|