You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/onprem/de/devel_check_plugins_snmp.asciidoc
+6-5Lines changed: 6 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ xref:cmk_commandline#[{CMK} auf der Kommandozeile]
20
20
21
21
Check-Plugins, die mit SNMP arbeiten, werden auf ähnliche Weise entwickelt wie ihre xref:devel_check_plugins#[agentenbasierten Verwandten.]
22
22
Der Unterschied liegt sowohl im Ablauf der xref:glossar#service_discovery[Service-Erkennung] (_Discovery_) als auch des Checks selbst.
23
-
Bei den agentenbasierten Check-Plugins wird mit dem xref:glossar#agent_plugin[Agentenplugin] festgelegt, welche Daten an die {CMK}-Instanz _gesendet_ werden, zudem findet dort oft bereits eine Vorfilterung (aber keine Auswertung) statt.
23
+
Bei den agentenbasierten Check-Plugins wird mit dem xref:glossar#agent_plugin[Agentenplugin] festgelegt, welche Daten an die {CMK}-Instanz _gesendet_ werden, zudem findet auf dem Host oft bereits eine Vorfilterung (aber keine Auswertung) statt.
24
24
Im Gegensatz dazu müssen Sie bei SNMP selbst genau festlegen, welche Datenbereiche Sie benötigen und diese explizit _anfordern._
25
25
Diese Bereiche (Äste eines Baumes) oder einzelne Datenfelder (Blätter) werden bei SNMP durch OIDs (_object identifier_) identifiziert.
26
26
@@ -211,7 +211,7 @@ Legen Sie also die Datei `flintstone_setup_check.py` für das neu zu erstellende
211
211
Konvention ist, dass der Dateiname den Namen des Check-Plugins wiedergibt, wie er in der Registrierfunktion `register.check_plugin()` festgelegt wird.
212
212
_Pflicht_ ist, dass die Datei mit `.py` endet, denn ab Version {v20} von {CMK} handelt es sich bei den Check-Plugins immer um echte Python-Module.
213
213
214
-
Ein lauffähiges Grundgerüst (link:https://github.com/Checkmk/checkmk-docs/blob/master/examples/devel_check_plugins_snmp/flintstone_setup_check_bare_minimum.py[Download bei GitHub^]), das Sie im Folgenden Schritt für Schritt weiter ausbauen werden, sieht so aus:
214
+
Ein lauffähiges Grundgerüst (link:https://github.com/Checkmk/checkmk-docs/blob/2.2.0/examples/devel_check_plugins_snmp/flintstone_setup_check_bare_minimum.py[Download bei GitHub^]), das Sie im Folgenden Schritt für Schritt weiter ausbauen werden, sieht so aus:
@@ -448,7 +448,7 @@ Angenommen, der Router kann mit einer variablen Zahl von Netzwerkkarten bestück
448
448
Alle unter einer OID erhältlichen Blätter werden in eine Tabellenspalte geschrieben.
449
449
Damit dürfte es offensichtlich sein, dass wegen der Darstellung der Daten nur zusammenpassende OIDs abgefragt werden dürfen.
450
450
451
-
*Tipp:* Auch das zuletzt gezeigte Beispiel zum Abruf von OID-Ästen ist Bestandteil unseres auf GitHub bereitgestellten link:https://github.com/Checkmk/checkmk-docs/blob/master/examples/devel_check_plugins_snmp/flintstones_fred_router.txt[SNMP-Walks^], den Sie zur xref:simulation[Simulation] nutzen können.
451
+
*Tipp:* Auch das zuletzt gezeigte Beispiel zum Abruf von OID-Ästen ist Bestandteil unseres auf GitHub bereitgestellten link:https://github.com/Checkmk/checkmk-docs/blob/2.2.0/examples/devel_check_plugins_snmp/flintstones_fred_router.txt[SNMP-Walks^], den Sie zur xref:simulation[Simulation] nutzen können.
452
452
453
453
Doch nun zurück zum Beispiel, in dem die OID-Blätter zu Kontakt, Gerätename und Standort abgefragt werden:
454
454
Die folgende Parse-Funktion übernimmt einfach jedes Element der inneren Liste in ein Schlüssel-Wert-Paar des zurückgegebenen Dictionaries:
Mit der Erstellung der Check-Funktion ist das Check-Plugin fertig.
537
537
538
-
Das komplette Check-Plugin haben wir auf link:https://github.com/Checkmk/checkmk-docs/blob/master/examples/devel_check_plugins_snmp/flintstone_setup_check.py[GitHub^] bereitgestellt.
538
+
Das komplette Check-Plugin haben wir auf link:https://github.com/Checkmk/checkmk-docs/blob/2.2.0/examples/devel_check_plugins_snmp/flintstone_setup_check.py[GitHub^] bereitgestellt.
539
539
540
540
541
541
[#test]
@@ -611,14 +611,15 @@ Da die Fehlerbehebung bei xref:devel_check_plugins#errors[agentenbasierten Check
611
611
612
612
Im Artikel zur Überwachung via SNMP xref:snmp#simulation[zeigen wir detailliert,] wie Sie SNMP-Walks aus der GUI erstellen und wie Sie diese zur Simulation einsetzen können.
613
613
So ist es auch möglich, Check-Plugins auf Testsystemen zu entwickeln, welche die SNMP-Hosts, für die Sie ein Plugin entwickeln, nicht erreichen können.
614
-
In unserem GitHub-Repository finden Sie ein Beispiel eines link:https://github.com/Checkmk/checkmk-docs/blob/master/examples/devel_check_plugins_snmp/flintstones_fred_router.txt[SNMP-Walks,^] den wir in diesem Artikel verwenden, und den Sie zur Entwicklung und zum Testen des Check-Plugins nutzen können.
614
+
In unserem GitHub-Repository finden Sie ein Beispiel eines link:https://github.com/Checkmk/checkmk-docs/blob/2.2.0/examples/devel_check_plugins_snmp/flintstones_fred_router.txt[SNMP-Walks,^] den wir in diesem Artikel verwenden, und den Sie zur Entwicklung und zum Testen des Check-Plugins nutzen können.
615
615
616
616
617
617
[#dummydaemon]
618
618
==== Dummy SNMP-Daemon
619
619
620
620
Soll sichergestellt werden, dass bestimmte OIDs sich abhängig voneinander ändern, kann es sinnvoll sein, einen Dummy SNMP-Daemon zu programmieren, der in sich konsistente Daten ausliefert.
621
621
Ein Hilfsmittel bei der Programmierung eines solchen kann das link:https://pypi.org/project/snmp-agent/[Python-Modul `snmp-agent`^] sein.
0 commit comments