2.0.0p13 - Python Error im Zusammenspiel - BI Aggregations & Distributed Monitoring

Hallo,

seit der Umstellung von 1.6.0p25 CME auf 2.0.0p13 CME haben wir das Problem das bei den Satelliten Systemen die BI Aggregation - Phyton Errors liefern.

Wenn man die BI auf der Master Instanz anschaut ist alles ok. Mit Version 1.6.0p25 hat das noch geklappt.

Error Meldung:


Hallo Sebastian,
bei 2.0.0p13 gab es Fehlermeldungen mit Python darum vielleicht auf die Version 2.0.0p15 aktualisieren.

https://forum.checkmk.com/t/2-0-0p13-python-error-im-zusammenspiel-bi-aggregations-distributed-monitoring/27894

Mit freundlichen Grüßen Paul

ok - ich werde das kommende Woche testen - Danke

Nach Update 2.0.0p15 CME ist der Fehler leider immer noch vorhanden.
Hat eventuell jemand auch ein verteiltes Monitoring in der Managend Edition am laufen und könnte das eventuell mal reproduzieren.

Jetzt kommt noch ein neues Problem dazu - ich kann auf den Slave Sites keine Hosts mehr anschauen nach dem Update auf 2.0.0p15…

2021-11-08 16:57:26,640 [40] [cmk.web 8080] http://monitoring.se-dresden.de/sedd/check_mk/view.py/sedd/check_mk/view.py?host=seppro231&site=sedd&view_name=host Unhandled exception (Crash-ID: 91cd7fbe-40ac-11ec-8fa6-005056b5d8ba)
Traceback (most recent call last):
  File "/omd/sites/sedd/lib/python3/cmk/gui/wsgi/applications/checkmk.py", line 165, in _process_request
    response = page_handler()
  File "/omd/sites/sedd/lib/python3/cmk/gui/wsgi/applications/utils.py", line 59, in _call_auth
    func()
  File "/omd/sites/sedd/lib/python3/cmk/gui/pages.py", line 186, in <lambda>
    return (lambda hc: lambda: hc().handle_page())(handle_class)
  File "/omd/sites/sedd/lib/python3/cmk/gui/pages.py", line 48, in handle_page
    self.page()
  File "/omd/sites/sedd/lib/python3/cmk/gui/pages.py", line 158, in <lambda>
    "page": lambda self: self._wrapped_callable[0]()
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 1813, in page_view
    process_view(GUIViewRenderer(view, show_buttons=True))
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 1851, in process_view
    _process_regular_view(view_renderer)
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 1868, in _process_regular_view
    _show_view(view_renderer, unfiltered_amount_of_rows, rows)
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 2055, in _show_view
    view_renderer.render(rows, show_checkboxes, num_columns, show_filters,
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 622, in render
    page_menu=self._page_menu(rows, show_filters))
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 808, in _page_menu
    self._page_menu_dropdowns_context(rows) + \
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 874, in _page_menu_dropdowns_context
    return _get_context_page_menu_dropdowns(self.view, rows, mobile=False)
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 2431, in _get_context_page_menu_dropdowns
    topics=host_setup_topic + list(
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 2563, in _get_context_page_menu_topics
    if visual.get("topic") == "bi" and not is_part_of_aggregation(
  File "/omd/sites/sedd/lib/python3/cmk/gui/bi.py", line 69, in is_part_of_aggregation
    return get_cached_bi_compiler().is_part_of_aggregation(host, service)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_compiler.py", line 247, in is_part_of_aggregation
    self._check_redis_lookup_integrity()
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_compiler.py", line 265, in _check_redis_lookup_integrity
    self.load_compiled_aggregations()
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_compiler.py", line 77, in load_compiled_aggregations
    self._check_compilation_status()
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_compiler.py", line 112, in _check_compilation_status
    self._compiled_aggregations[aggregation.id] = aggregation.compile(self.bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_aggregation.py", line 82, in compile
    branches = self.node.compile({}, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_node_generator.py", line 54, in compile
    return sorted(self.action.execute_search_results(search_results, macros, bi_searcher))
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_lib.py", line 492, in execute_search_results
    yield from self.execute(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_actions.py", line 80, in execute
    return bi_rule_id_registry[self.rule_id].compile(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_rule.py", line 120, in compile
    action_results.extend(bi_node.compile(mapped_rule_arguments, bi_searcher))
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_node_generator.py", line 54, in compile
    return sorted(self.action.execute_search_results(search_results, macros, bi_searcher))
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_lib.py", line 492, in execute_search_results
    yield from self.execute(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_actions.py", line 80, in execute
    return bi_rule_id_registry[self.rule_id].compile(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_rule.py", line 120, in compile
    action_results.extend(bi_node.compile(mapped_rule_arguments, bi_searcher))
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_node_generator.py", line 54, in compile
    return sorted(self.action.execute_search_results(search_results, macros, bi_searcher))
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_lib.py", line 492, in execute_search_results
    yield from self.execute(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_actions.py", line 80, in execute
    return bi_rule_id_registry[self.rule_id].compile(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/plugin_registry.py", line 70, in __getitem__
    return self._entries.__getitem__(key)
KeyError: 'agg-cus-pi-dvbag-net'
2021-11-08 16:57:49,181 [40] [cmk.web 13855] http://monitoring.se-dresden.de/sedd/check_mk/view.py/sedd/check_mk/view.py?host=seppro231&site=sedd&view_name=host Unhandled exception (Crash-ID: 9f3d021e-40ac-11ec-90af-005056b5d8ba)
Traceback (most recent call last):
  File "/omd/sites/sedd/lib/python3/cmk/gui/wsgi/applications/checkmk.py", line 165, in _process_request
    response = page_handler()
  File "/omd/sites/sedd/lib/python3/cmk/gui/wsgi/applications/utils.py", line 59, in _call_auth
    func()
  File "/omd/sites/sedd/lib/python3/cmk/gui/pages.py", line 186, in <lambda>
    return (lambda hc: lambda: hc().handle_page())(handle_class)
  File "/omd/sites/sedd/lib/python3/cmk/gui/pages.py", line 48, in handle_page
    self.page()
  File "/omd/sites/sedd/lib/python3/cmk/gui/pages.py", line 158, in <lambda>
    "page": lambda self: self._wrapped_callable[0]()
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 1813, in page_view
    process_view(GUIViewRenderer(view, show_buttons=True))
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 1851, in process_view
    _process_regular_view(view_renderer)
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 1868, in _process_regular_view
    _show_view(view_renderer, unfiltered_amount_of_rows, rows)
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 2055, in _show_view
    view_renderer.render(rows, show_checkboxes, num_columns, show_filters,
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 622, in render
    page_menu=self._page_menu(rows, show_filters))
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 808, in _page_menu
    self._page_menu_dropdowns_context(rows) + \
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 874, in _page_menu_dropdowns_context
    return _get_context_page_menu_dropdowns(self.view, rows, mobile=False)
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 2431, in _get_context_page_menu_dropdowns
    topics=host_setup_topic + list(
  File "/omd/sites/sedd/lib/python3/cmk/gui/views.py", line 2563, in _get_context_page_menu_topics
    if visual.get("topic") == "bi" and not is_part_of_aggregation(
  File "/omd/sites/sedd/lib/python3/cmk/gui/bi.py", line 69, in is_part_of_aggregation
    return get_cached_bi_compiler().is_part_of_aggregation(host, service)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_compiler.py", line 247, in is_part_of_aggregation
    self._check_redis_lookup_integrity()
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_compiler.py", line 265, in _check_redis_lookup_integrity
    self.load_compiled_aggregations()
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_compiler.py", line 77, in load_compiled_aggregations
    self._check_compilation_status()
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_compiler.py", line 112, in _check_compilation_status
    self._compiled_aggregations[aggregation.id] = aggregation.compile(self.bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_aggregation.py", line 82, in compile
    branches = self.node.compile({}, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_node_generator.py", line 54, in compile
    return sorted(self.action.execute_search_results(search_results, macros, bi_searcher))
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_lib.py", line 492, in execute_search_results
    yield from self.execute(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_actions.py", line 80, in execute
    return bi_rule_id_registry[self.rule_id].compile(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_rule.py", line 120, in compile
    action_results.extend(bi_node.compile(mapped_rule_arguments, bi_searcher))
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_node_generator.py", line 54, in compile
    return sorted(self.action.execute_search_results(search_results, macros, bi_searcher))
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_lib.py", line 492, in execute_search_results
    yield from self.execute(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_actions.py", line 80, in execute
    return bi_rule_id_registry[self.rule_id].compile(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_rule.py", line 120, in compile
    action_results.extend(bi_node.compile(mapped_rule_arguments, bi_searcher))
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_node_generator.py", line 54, in compile
    return sorted(self.action.execute_search_results(search_results, macros, bi_searcher))
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_lib.py", line 492, in execute_search_results
    yield from self.execute(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/bi/bi_actions.py", line 80, in execute
    return bi_rule_id_registry[self.rule_id].compile(argument, bi_searcher)
  File "/omd/sites/sedd/lib/python3/cmk/utils/plugin_registry.py", line 70, in __getitem__
    return self._entries.__getitem__(key)
KeyError: 'agg-cus-pi-dvbag-net'

kann mir hier irgendwer helfen - ich bin mit meinem Latein am Ende… :frowning_face:

Nach langem suchen und keiner Hilfe seitens checkmk - auch nicht nach Crash Report - habe ich rausgefunden das das Problem meine BI im verteilten Monitoring ist!
Dieses funktioniert seit dem Update auf Version 2.0 nicht mehr und schmeißt nur noch Python Errors.

Ich fühl mich hier etwas allein gelassen - die Doku dazu ist von 2019 und nicht aktuell aus meiner Sicht.
Hat jemand Erfahrung mit Business Intelligence (BI) in verteilten Umgebungen?
Mit Version 1.6.0p25 lief noch alles Problem los.

Die Frage hier ist eher was das genau Problem der BI ist. Hatte bisher keine Unterschiede zwischen BI in Single Site und verteilten Umgebungen bei meinen Systemen.
Was ich mir vorstellen kann ist folgendes, es gab bei der Migration eine Fehlermeldung, dass nicht alle BI Rules migriert werden konnten und deshalb etwas inkonsistentes dabei heraus gekommen ist.
Sind die BIs vorher in 1.6 alle per Web erstellt wurden oder gab es auch BI Regeln welche manuell in mk Files erzeugt waren?

Vorschlag zum beheben.

  • auf dem zentralen System eine Instanz erzeugen welche einfach nur bi heißt oder so
  • diese leere Instanz einfach nur alle Instanzen per Livestatus anbinden kein Config Sync nix sonstiges
  • das mk File mit den BI Regeln mal aus der derzeitigen Master Instanz weg kopieren und dort raus nehmen damit da erstmal keine Fehler mehr erzeugt werden
  • nun in der bi Instanz mal die Regeln betrachten und versuchen zu debuggen
  • In der Fehlermeldung steht ja das er irgendwo nen Key sucht der “agg-cus-pi-dvbag-net” heißt diesen aber nicht findet. Sieht aus wie wenn eine Aggregation versucht wird zu suchen und nix gefunden wird.

Hi Sebastian,
die Exception hier tritt auf, da eine der “Call a Rule” BI Regeln eine andere Regel referenziert, die es auf der Remote Site nicht gibt (agg-cus-pi-dvbag-net).
Die BI Konfiguration prüft derzeit beim Speichern von Regeln immer, ob die Regelwelt in sich konsistent ist.

Bei der CME gibts jetzt allerdings den Sonderfall, dass zu den Remote Sites customer-spezifische Aggregationen/Regeln gesynct werden - also nicht die gesamt Config.
Es gibt bei der CME (derzeit) auch keine weitere Prüfung, ob alle referenzierten Regeln auch wirklich existieren.

Wie andreas-doehler gerade schon geschrieben hat, müsstest du die Regel ausfindig machen welche auf agg-cus-pi-dvbag-net verweist und sicherstellen, dass diese entweder nicht zur remote site gesynct wird. Oder man geht die andere Richtung und stellt sicher, dass auch agg-cus-pi-dvbag-net Remote existiert.

Gruss
Andreas

1 Like

Hallo,
erstmal vielen Dank für die Antworten. Es läuft wieder :wink: ich versuch das dann gleich mal zu erklären…

Kurz zu den Fragen:
Die BI’s sind alle via WATO angelegt werden.
Beim Upgrade auf Version 2 sind keine Fehler/Warnungen in der Update Routine bzw. im Log aufgetaucht.
Ich hab das Problem dann ohne neu Aufbau der BI’s hinbekommen zum Glück ich wollte schon von vorne anfangen.

Was hat zur Lösung geführt.
Ich hab die BIs dann Stück für Stück auseinander genommen. Bis der Fehler aufgetreten ist. Dann habe ich die fehlerhafte BI nachgebaut, falls es doch ein Problem durch die Migration ist. Das brachte keinen Erfolg der Fehler ist immer noch gekommen.

Dann hab ich eine BI von Grund auf neu gestrickt und siehe da für sich alleine ist es auf einmal gegangen. Also keine Rollen von anderen BIs sondern nur für sich alleine - Soweit so gut.
Nun ist ja noch das Problem gewesen das der Nachbau der kaputten BI ja nicht funktioniert hatte.

Also hab ich mir die Kaputte nochmal angeschaut und durch eine Schnapsidee eine Aggregation erzeugt wo sich die BI einfach selbst anzeigen soll, das hat geklappt und auf einmal funktioniert die Aggregation wieder welche gerade noch kaputt gewesen ist. ÄÄHH ja :face_with_raised_eyebrow: Das hab ich nicht verstanden nun gut - das in Worte zufassen ist schwierig - dann hab ich die neu angelegte deaktiviert und das wars - das Spiel habe ich bei allen anderen welche dann noch aufgetaucht sind auch noch gemacht. Es ist komisch entweder ist wirklich was krumm gelaufen bei der Migration oder ich hatte von Anfang an einen Denkfehler und die 1.6 hatte mir den noch verziehen.

Trotzdem Danke Andreas & Andreas :slight_smile: