Ich wollte gerade meine Mikrotik Router ins Monitoring mit aufnehmen und habe erfreulicherweise ein Plugin von @ttr gefunden. Leider habe ich bei der Installation das Problem, dass der Spezialagent einen Fehler auf der Konfigurationsseite auslöst?
Wenn ich auf Setup → Agents → Other integrations gehe dann erhalte ich die Fehlermeldung “Internal error: name ‘DropdownChoice’ is not defined”. Die Fehlermeldung kommt nur, wenn ich das Plugin aktiviere.
Ist das eventuell ein Bug aufgrund Änderungen in CheckMK?
welche checkmk Version und welche Plugin Version setzt du ein ?
Ich habe das gerade mit checkmk 2.2p4 und Plugin Version 2.3.3 getestet, das funktioniert.
das Plugin ist noch nicht checkmk 2.2 kompatibel, es fehlen die Imports für die ValueSpecs.
Ändere die Imports in der Datei ~/local/share/check_mk/web/plugins/wato/mikrotik_register.py mal auf folgendes :
from cmk.gui.i18n import _
from cmk.gui.plugins.wato.utils import (
HostRulespec,
IndividualOrStoredPassword,
monitoring_macro_help,
RulespecGroup,
rulespec_group_registry,
rulespec_registry,
)
from cmk.gui.valuespec import (
Dictionary,
TextInput,
DropdownChoice,
Integer,
ListChoice,
)
#
from cmk.gui.plugins.wato.special_agents.common import RulespecGroupDatasourceProgramsHardware
Zusätzlich dann TextAscii in TextInput ändern:
elements = [
( "user",
TextInput(
title = _("Username"),
allow_empty = False,
)
Das müsste @ttr anpassen und ein neues MKP mit 2.2 als minimal Version in die Exchange hochladen.
Wenn es ein git Repo dazu gibt, kann ich auch einen PR machen.
Ob weitere Dinge nicht funktionieren, kann ich mangels Mikrotik Komponenten nicht testen.
Ah super, das hat auf jeden Fall schonmal den Agenten nutzbar gemacht. Leider wirft der Agent jetzt beim abrufen folgenden Fehler:
Traceback (most recent call last):
File "/omd/sites/mhet/bin/cmk", line 118, in <module>
exit_status = modes.call("--check", None, opts, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/omd/sites/mhet/lib/python3/cmk/base/modes/__init__.py", line 68, in call
return handler(*handler_args)
^^^^^^^^^^^^^^^^^^^^^^
File "/omd/sites/mhet/lib/python3/cmk/base/modes/check_mk.py", line 1998, in mode_check
with error_handler:
File "/omd/sites/mhet/lib/python3/cmk/checkers/error_handling.py", line 59, in __exit__
self._result = _handle_failure(
^^^^^^^^^^^^^^^^
File "/omd/sites/mhet/lib/python3/cmk/checkers/error_handling.py", line 95, in _handle_failure
raise exc
File "/omd/sites/mhet/lib/python3/cmk/base/modes/check_mk.py", line 2000, in mode_check
fetched = fetcher(hostname, ip_address=ipaddress)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/omd/sites/mhet/lib/python3/cmk/base/agent_based/confcheckers.py", line 240, in __call__
return _fetch_all(
^^^^^^^^^^^
File "/omd/sites/mhet/lib/python3/cmk/base/agent_based/confcheckers.py", line 71, in _fetch_all
return [
^
File "/omd/sites/mhet/lib/python3/cmk/base/agent_based/confcheckers.py", line 75, in <listcomp>
source.fetcher(),
^^^^^^^^^^^^^^^^
File "/omd/sites/mhet/lib/python3/cmk/base/_sources.py", line 389, in fetcher
cmdline=self.config_cache.make_special_agent_cmdline(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/omd/sites/mhet/lib/python3/cmk/base/config.py", line 2789, in make_special_agent_cmdline
args = _make_source_args(
^^^^^^^^^^^^^^^^^^
File "/omd/sites/mhet/lib/python3/cmk/base/config.py", line 2784, in _make_source_args
agent_configuration = info_func(params, hostname, ip_address)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/omd/sites/mhet/local/share/check_mk/checks/agent_mikrotik", line 33, in agent_mikrotik
args += " -u " + quote_shell_string(params["user"])
^^^^^^^^^^^^^^^^^^
NameError: name 'quote_shell_string' is not defined
Möglich, dass das jetzt der letzte Fehler ist. Aber wirklich wissen wird das wohl leider nur @ttr. Vielen Dank jedoch für die schnelle Hilfe!
SNMP ist ja das Problem bei den Mikrotiks: die haben nur ein paar wenige MIBs, die sie bedienen. Alles was eigentlich wichtig ist, aber nicht. Deswegen hatte ich das datasource Plugin für die API geschrieben. Aber Danke.
das habe ich übersehen, wenn in der Ausgabe keine wichtigen Daten stehen, reicht mir die Ausgabe von dem Datasource Program, die kann ich ja dann auch einfach mit " Individual program call instead of agent access" und cat aufrufen.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.