Aquest és el segon i últim pas de la configuració de MON.

Els valors per defecte dels Serveis obligatoris es mostren . Mira el tema d'ajuda corresponent per a més informació sobre les Definicions de Serveis.

Per a "mail.alert", assegura't que sendmail està configurat i el dimoni "sendmail" està en execució a la màquina hoste.

### Definicions de Servei

service nom
  La definició d'un servei comença amb la paraula clau service seguida d'una paraula que és l'etiqueta d'aquest servei.

  Els components d'un servei són un interval, monitor i un o més períodes de temps, tal i com es defineix més avall.

  Si es defineix un nom de servei "default" dins d'un grup d'observació anomenat "default" (vegeu més amunt), llavors la definició default/default es farà servir per a manipular trampes desconegudes de mon.

interval temps
  La paraula clau interval seguida d'un valor de temps especifica la freqüència amb què es dispara un script de monitorització. Els valors de temps es defineixen com a "30s", "5m", "1h", o "1d", que vol dir 30 segons, 1 hora o 1 dia. La part numèrica pot ser una fracció, com ara "1.5h" o bé una hora i mitja. Aquest format d'una especificació de temps serà referida com a temps.

traptimeout temps
  Aquesta paraula clau pren el mateix argument d'especificació de temps que interval, i fa que el servei esperi una desviació d'una font exterior al menys amb aquest freqüència, altrament s'enregistrarà una fallada. Això es fa servir per a serveis de l'estil de hearbeat.

trapduration temps
  Si es rep una desviació, l'estat del servei al qual s'ha lliurat la desviació, romandrà normalment constant. Si s'especifica trapduration, l'estat del servei romandrà en estat de fallada durant el temps especificat per temps, i llavors es restaurarà a "operatiu".

randskew temps
  Ajusta de forma aleatòria l'interval especificat pel paràmetre interval amb més/menys randskew, més que no pas fer que el script de monitorització s'executi al principi de cada interval. El valor de trasllat s'especifica igual que el paràmetre interval: "30s", "5m", etc... Per exemple, si interval és 1m i randskew és "5s", llavors mon programarà el script de monitorització a un temps d'entre 55 segons i 65 segons. La intenció és ajudar a distibuir la càrrega del servidor quan hi ha molts serveis programats als mateixos intervals.

monitor nom [arg...]
  La paraula clau monitor seguida d'un nom de script i uns arguments especifica el monitor que s'ha d'executar quan expira el cronòmetre. Quan s'especifiquen els arguments a enviar al script de monitorització, se segueixen les convencions tipus shell per a les cometes. El script s'invoca des del directori donat amb l'argument -s, i totes les paraules següents es passen com a argument al programa de monitorització, seguides de la llista de hosts del grup referit pel grup d'observació actual. Si la línia del monitor acaba amb ";;" com una paraula separada, llavors no s'afegeixen els grups de hosts a la llista d'arguments quan s'invoca el programa.

allow_empty_group
  L'opció allow_empty_group permetrà que s'invoqui un monitor fins i tot quan el grup de hosts d'aquest observació estigui buit a causa dels hosts desactivats. La conducta per defecte és no invocar el monitor quan tots els hosts d'un grup han estat desactivats.

description descripció
  El text que segueix a description és analitzat pels programes client i passat a avisos i monitors a través d'una variable d'entorn. Hauria de contenir una descripció breu del servei, apropiada per a incloure en un correu electrònic o una pàgina web.

exclude_hosts host [host...]
  Tots els hosts llistats després de exclude_hosts seran exclosos de la comprovació del servei.

exclude_period període
  No executar un monitor programat durant el temps identificat per període.

depend expressió
  La paraula clau depend es fa servir per especificar una expressió de dependència que s'avalua a veritat o fals, en el sentit booleà. Les dependències són, de fet, expressions Perl, i n'han d'obeir totes les regles sintàctiques. Les expressions s'avaluen en l'espai del seu propi paquet, per evitar efectes secundaris no desitjats. Si es troba un error de sintaxi en avaluar l'expressió, s'enregistra a través de syslog.

  Abans de l'avaluació, s'efectuen les següents substitucions a l'expressió: les frases del tipus "group:service" se substitueixen amb el valor de l'estat actual d'operació del servei especificat. Aquestes substitucions de l'estat d'operació es calculen de forma recursiva, de manera que si el servei a depèn del servei B, i el servei B depèn del servei C, llavors el servei A depèn del servei C. Els estats d'operació correctes (que s'avaluen a "1") són "STAT_OK", "STAT_COLDSTART", "STAT_WARMSTART", i "STAT_UNKNOWN". Es pot fer servir la paraula "SELF" (tot en majúscules) per al grup (p. ex., "SELF:service"), i és un abreujament del grup d'observació actual.

  Aquesta característica es pot fer servir per controlar els avisos dels serveis que depenen d'altres serveis. p. ex., una prova SMTP que depèn de la màquina a la qual es fa ping.

dep_behavior {a|m}
  L'avaluació dels grafs de dependència pot controlar la supressió d'avisos o bé d'invocacions del monitor.

  Supressió d'avís. Si s'estableix aquesta opció a "a", llavors l'expressió de dependència s'avaluarà després que s'executi el monitor d'aquest servei o després de rebre una desviació. Només s'enviarà un avís si l'avaluació reïx, volent dir que cap dels nodes del graf de dependència indica fallada.

  Supressió de monitor. Si s'estableix a "m", llavors l'expressió de dependència s'avaluarà abans que s'executi el monitor d'aquest servei. Si l'avaluació reïx, llavors el monitor s'executarà. Altrament, el monitor no s'executarà i l'estat del servei romandrà igual.

### Definicions de Període

Els períodes es fan servir per definir les condicions que han de permetre el lliurament dels avisos.

period [etiqueta:] període
  Un període agrupa un o més avisos i variables que controlen amb quina freqüència se succeeix un avís quan hi ha una fallada. La paraula clau period té dues formes. La primera pren un argument que és una especificació de període del mòdul Perl Time::Period de Patrick Ryan. Vegeu "perldoc Time::Period" per a més informació.

  La segona forma necessita una etiqueta seguida d'una especificació de període, tal i com es defineix abans. L'etiqueta és un caràcter alfabètic o subguió (_) seguit de zero o més caràcters alfanumèrics o subguions i acabada amb dos punts (:). Aquesta forma permet períodes múltiples amb la mateixa definició de període. Un ús és tenir una definició de període que no té cap paràmetre alertafter ni alertevery per a un període de temps particular, i un altre per al mateix període de temps amb un conjunt d'avisos diferents que sí contenen aquests paràmetres.

alertevery temps
  La paraula clau alertevery (en una definició period) pren el mateix tipus d'arguments que la variable interval, i limita el nombre de vegades que s'envia un avís quan el servei segueix fallant. Per exemple, si l'interval és "1h", llavors només els avisos de la secció del període s'enviaran cada hora. Si en una entrada de període s'omet la paraula clau alertevery, s'enviarà un avís cada cop que es detecti una fallada. Per defecte, si canvia la sortida de dues fallades successives, llavors s'ignora l'interval alertevery. Si el darrer argument és la paraula "summary", llavors només es tindran en compte les línies de sortida del resum en comparar la sortida de les successives fallades.

alertafter núm

alertafter núm temps
  La paraula clau alertafter (en una secció period) té dues formes: només amb l'argument "núm", o amb els arguments "núm temps". Amb la primera forma, només s'invocarà un avís després de "núm" fallades consecutives.

  Amb la segona forma, els arguments són un enter positiu seguit d'un interval, tal i com es descriu a la variable interval més amunt. Si s'especifiquen aquests paràmetres, llavors els avisos d'aquest període només es cridaran després que s'esdevingui aquest nombre de fallades en aquest interval. Per exemple, si es donen a alertafter els arguments "3 30m", llavors l'avís es cridarà si se succeeixen 3 fallades en 30 minuts.

numalerts núm

  Aquesta variable diu al servidor que no cridi més de núm avisos durant una fallada. El comptador d'avisos es manté en base al període, i es reinicia després de cada pas a operatiu.

comp_alerts

  Si s'especifica aquesta opció, llavors només es cridaran els avisos upalert si s'ha cridat l'avís "down" corresponent.

alert avís [arg...]
  Un període pot contenir múltiples avisos, que es disparen en cas de fallada del servei. Un avís s'especifica amb la paraula clau alert, seguida d'un paràmetre exit opcional, i els arguments que s'interpreten igual que la definició monitor, però sense l'excepció ";;". El paràmetre exit pren la forma exit=x o exit=x-y i per efecte que l'avís només es cridi si l'estat de sortida del script de monitorització és dins del rang del paràmetre exit. Si, per exemple, la línia d'avís és alert exit=10-20 mail.alert mis, llavors mail-alert només s'invocarà amb mis com a arguments si el valor de retorn del programa monitor està entre 10 i 20. Aquesta característica permet disparar avisos diferents en diferents nivells de severitat (com ara quan l'espai lliure del disc passa del 8% al 3%).

  Vegeu la secció PROGRAMES D'AVÍS més amunt per a una llista de paràmetres que mon passarà automàticament als programes d'avís.

upalert avís [arg...]
  upalert és el complement de alert. Es crida quan un servei fa la transició d'estat de fallada a operatiu. El script upalert es crida subministrant els mateixos paràmetres que el script alert, amb l'addició del paràmetre -u, que es fa servir simplement per deixar que un script d'avís sàpiga que està essent cridat com a upalert. Es poden especificar avisos múltiples per a cada definició de període. Tingues en compte que la conducta per defecte és que s'enviï un avís upalert independentment de si s'han enviat abans avisos "down", ja que "down" es dispara durant una transició d'estat. Estableix l'opció d'avisos per període comp_alerts per aparellar els avisos upalert amb els avisos "down".

startupalert avís [arg...]
  startupalert només es crida quan el servidior mon inicia la seva execució.

upalertafter temps
  El paràmetre upalertafter s'especifica com una cadena que segueix la sintaxi del paràmetre interval ("30s", "1m", etc.), i controla l'execució de upalert. Si un servei torna a estar operatiu després de fallar durant un temps més gran o igual que el valor d'aquesta opció, llavors es cridarà un upalert. Fes servir aquesta opció per evitar que es cridi un upalert a causa de "blips" (petits talls).