MON服务定义帮助

这是MON配置的第二个也是最后一个阶段。

显示强制性服务的默认值 。请参阅下面的相应帮助主题,以获取有关服务定义的更多帮助。

对于“ mail.alert” ,请确保已配置sendmail并在主机上启动了“ sendmail”守护进程。

服务定义

服务 SERVICENAME
服务定义以关键字service开头,后跟单词即该服务的标签。

服务的组成部分包括时间间隔,监视器以及一个或多个时间段定义,如下所示。

如果在名为“ dafault”的监视组中定义了“默认”服务名称(请参见上文),则默认/默认定义将用于处理未知的mon陷阱。

间隔 的timeval
关键字间隔后跟一个时间值,指定触发监视脚本的频率。时间值定义为“ 30s”,“ 5m”,“ 1h”或“ 1d”,表示30秒,5分钟,1小时或1天。数字部分可以是分数,例如“ 1.5h”或一个半小时。时间规范的这种格式将称为timeval

traptimeout 的timeval
此关键字采用与interval相同的时间指定参数并使服务至少经常期望来自外部源的陷阱,否则将记录失败。这用于心跳式服务。

trapduration 的timeval
如果收到陷阱,则陷阱被传递到的服务的状态通常将保持不变。如果指定了trapduration ,则服务的状态将在timeval指定的持续时间内保持失败状态,然后将其重置为“成功”。

randskew timeval
而不是安排监视脚本在每个间隔开始时运行,而是通过正负randskew随机调整interval参数指定的间隔 偏斜值指定为interval参数:“ 30s”,“ 5m”等。例如,如果interval为1m, randskew为“ 5s”,则mon将在每55秒和65秒目的是在以相同的时间间隔计划许多服务时,帮助在服务器上分配负载。

monitor monitor-name [arg ...]
关键字Monitor后跟脚本名称和参数指定了计时器到期时要运行的监视器。指定要发送到监视脚本的参数时,遵循类似Shell的引用约定。该脚本是从-s参数给定的目录中调用的,随后的所有单词均作为该监视程序的参数提供,随后是当前监视组所引用的组中的主机列表。如果监视行以“ ;;”结尾作为一个单独的词,在调用程序时,主机组不会附加到参数列表中。

allow_empty_group
即使由于监视的主机而导致该监视的主机组为空, allow_empty_group选项也将允许调用监视器。禁用主机组中的所有主机后,默认行为是不调用监视器。

描述 descriptiontext
客户端程序查询以下描述的文本,并通过环境变量将其传递给警报和监视器。它应包含该服务的简短说明,适合包含在电子邮件或网页中。

exclude_hosts 主机[主机...]
exclude_hosts之后列出的所有主机将从服务检查中排除。

exclude_period periodspec
不要在periodspec标识的时间内运行计划的监视器。

依赖 dependexpression
Depend关键字用于指定依赖项表达式,在布尔意义上,该表达式的值为true或false。依赖关系是Perl的实际表达式,必须遵守所有语法规则。表达式在其自己的程序包空间中求值,以免意外地产生一些不需要的副作用。如果在评估表达式时发现语法错误,则会通过syslog记录该错误。

在求值之前,对表达式进行以下替换:看起来像“ group:service”的短语将替换为该指定服务的当前操作状态的值。这些opstatus替换是递归计算的,因此,如果服务A依赖于服务B,并且服务B依赖于服务C,则服务A依赖于服务C。成功的操作状态(评估为“ 1”)为“ STAT_OK”,“ STAT_COLDSTART” ”,“ STAT_WARMSTART”和“ STAT_UNKNOWN”。单词“ SELF”(大写)可用于该组(例如“ SELF:service”),是当前监视组的缩写。

此功能可用于控制依赖于其他服务的服务的警报,例如,依赖于可ping通的计算机的SMTP测试。

dep_behavior {a | m}
依赖图的评估可以控制警报或监视调用的抑制。

警报抑制 。如果将此选项设置为“ a”,则在退出服务的监视器或接收到陷阱之后,将对依赖项表达式求值。仅在评估成功时才发送警报,这意味着依赖关系图中的任何节点均未指示失败。

监视抑制 。如果将其设置为“ m”,则将在将要运行该服务的监视器之前撤消依赖项表达式。如果评估成功,则将运行监视器。否则,监视器将不会运行,并且服务状态将保持不变。

 

期间定义

使用句点来定义应该允许发送警报的条件。

期间 [标签:] periodspec
句点将一个或多个警报和变量分组,这些变量和变量控制发生故障时警报发生的频率。 period关键字有两种形式。第一个参数是Patrick Ryan的Time :: Period Perl 5模块中的周期规范。有关更多信息,请参见“ perldoc Time :: Period”。

第二种形式需要一个标签,后跟一个周期说明,如上所述。该标签是由字母字符或下划线后跟零个或多个字母数字或下划线并以冒号结尾的标签。此格式允许具有相同期间定义的多个期间。一种用途是具有一个期间定义,该定义在特定时间段内不具有AlertafterAlertevery参数,另一种用途是在相同时间段内具有确实包含那些参数的一组不同的警报。

alertevery的 的timeval
alertevery关键字(在周期定义内)采用与interval变量相同的参数类型,并限制服务继续失败时发送警报的次数。例如,如果间隔为“ 1h”,则仅时段部分中的警报仅每小时触发一次。如果在期间条目中省略alertevery关键字,则每次检测到故障时都会发出警报。默认情况下,如果两个连续故障的输出发生变化,则警报间隔将被覆盖。如果单词“ summary”是最后一个参数,则在比较连续失败的输出时,仅考虑摘要输出行。

num之后的 警报

num timeval之后 发出警报
alertafter关键字(在句点部分)具有两种形式:仅带有“ num”参数,或者带有“ num timeval”参数。在第一种形式中,仅在“ num”个连续失败之后才调用警报。

在第二种形式中,自变量是一个正整数,后跟一个间隔,如上面的interval变量所述。如果指定了这些参数,则仅在该时间间隔内发生许多故障之后才调用该时间段的警报。例如,如果将alertafter的参数设置为“ 3 30m”,则如果在30分钟内发生3次故障,则将调用警报。

numalerts num

此变量告诉服务器在故障期间最多调用num个警报。警报计数器会定期保存,并在每次成功后重置。

comp_alerts

如果指定了此选项,则仅在调用了相应的“关闭”警报时才调用upalerts。

警报 警报[arg ...]
一个期间可能包含多个警报,这些警报在服务失败时触发。用alert关键字指定一个警报,后跟一个可选的退出参数,以及与监视器定义解释相同的参数,但不带“ ;;”。例外。 exit参数采用exit = xexit = xy的形式,其作用是仅在监视脚本的退出状态落在exit参数范围内时才调用警报。例如,如果警报行是alert exit = 10-20 mail.alert mis,则仅当监视程序的退出值在10到20之间时,才使用mis作为参数来调用mail-alert。此功能允许您触发不同严重性级别的警报(例如可用磁盘空间从8%变为3%时)。

请参阅上面的ALERT PROGRAMS(警报程序)部分,以获取将自动传递到警报程序的pramaeters列表。

upalert 警报[arg ...]
警报是对警报的称赞。当服务使状态从失败转变为成功时,将调用upalert。 upalert脚本被称为提供与警报脚本相同的参数,并附加了-u参数,该参数仅用于使警报脚本知道它被称为upalert。可以为每个期间定义指定多个upalerts。请注意,默认行为是,无论之前是否发送过任何“关闭”警报,都将发送upalert,因为upalert在状态转换时触发。设置每个周期的comp_alerts选项,以将upalerts与“ down”警报配对。

startupalert 警报[arg ...]
仅在mon服务器开始执行时才调用startupalert

upalertafter 的timeval
upalertafter参数被指定为遵循interval参数的语法的字符串(“ 30s”,“ 1m”等),并控制upalert的触发。如果服务在关闭时间大于或等于此选项的值后重新启动,则将调用upalert 。使用此选项可以防止由于“故障”(简短中断)而导致向上警报被调用。