2017-07-07 1 views
0

Ich arbeite an einem Check_mk-Plugin und kann nicht die WATO angegebenen Parameter erhalten die Check-Funktion übergeben, wenn es für eine Prüfung läuft insbesondere ..Check_MK - Benutzerdefinierte Prüfparameter in Wato nicht gegeben, um Funktion zu überprüfen

.
  • die Prüfung param Regel zeigt in WATO
  • Es ist richtig suchen Werte schreibt
  • Sie auf das Kontrollparameter Symbol Analysieren von einem Rechner zum Auffinden von Diensten rules.mk zeigt die Regel als aktiv.
  • Die Check-Parameter, die in der Service Discovery angezeigt werden, zeigen den Titel aus der WATO-Datei an, so dass es so aussieht, als würde er die Dinge richtig zuordnen.

Das Ausführen von cmk -D <hostname> zeigt die Überprüfung als immer mit den Standardwerten obwohl.

Ich habe es für eine Weile anstarren und bin aus Ideen.

check_mk Version: 1.2.8p21 Raw

Bulk Check-Datei:

factory_settings["elasticsearch_status_default"] = { 
    "min": (600, 300) 
} 

def inventory_elasticsearch_status(info): 
    for line in info: 
     yield restore_whitespace(line[0]), {} 

def check_elasticsearch_status(item, params, info): 
    for line in info: 
     name = restore_whitespace(line[0]) 
     message = restore_whitespace(line[2]) 

     if name == item: 
      return get_status_state(params["min"], name, line[1], message, line[3]) 

check_info['elasticsearch_status'] = { 
    "inventory_function"  : inventory_elasticsearch_status, 
    "check_function"   : check_elasticsearch_status, 
    "service_description"  : "ElasticSearch Status %s", 
    "default_levels_variable" : "elasticsearch_status_default", 
    "group"     : "elasticsearch_status", 
    "has_perfdata"   : False 
} 

Wato Datei:

group = "checkparams" 
#subgroup_applications = _("Applications, Processes & Services") 

register_check_parameters(
    subgroup_applications, 
    "elasticsearch_status", 
    _("Elastic Search Status"), 
    Dictionary(
     elements = [ 
      ("min", 
       Tuple(
        title = _("Minimum required status age"), 
        elements = [ 
         Age(title = _("Warning if below"), default_value = 600), 
         Age(title = _("Critical if below"), default_value = 300), 
        ] 
      )) 
     ] 
    ), 
    None, 
    match_type = "dict", 
) 

Eintrag in rules.mk von WATO Regel:

checkgroup_parameters.setdefault('elasticsearch_status', []) 

checkgroup_parameters['elasticsearch_status'] = [ 
    ({'min': (3600, 1800)}, [], ALL_HOSTS), 
] + checkgroup_parameters['elasticsearch_status'] 

Lassen Sie mich wissen, wenn a Andere Informationen wären hilfreich!

EDIT: pls help

Antwort

0

Posted Frage here auch und das Geheimnis wurde gelöst.

Ich habe die WATO-Regel mit Artikel None (5. Positionarg in der WATO-Datei) abgeglichen, aber da diese Prüfung mehrere inventarisierte Artikel hatte (keine davon hatte die ID None), galt die Regel für den Host. aber nicht zu einer der spezifischen Service-Prüfungen.

Fix war, dass param mit ersetzen:

TextAscii(title = _("Status Description"), allow_empty = True), 
Verwandte Themen