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
+9-11Lines changed: 9 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,6 @@
3
3
// NONASCII
4
4
include::global_attr.adoc[]
5
5
= SNMP-basierte Check-Plugins entwickeln
6
-
:revdate: 2024-09-02
7
6
:title: SNMP-basierte Check-Plugins entwickeln
8
7
:description: Relevante Monitoring-Daten für SNMP-Hosts muss {CMK} explizit anfordern und dann auswerten. Lesen Sie hier, wie Sie Check-Plugins für SNMP entwickeln.
9
8
@@ -19,7 +18,7 @@ xref:cmk_commandline#[{CMK} auf der Befehlszeile]
19
18
[#intro]
20
19
== Einleitung
21
20
22
-
Check-Plugins, die mit SNMP arbeiten, werden auf ähnliche Weise entwickelt wie ihre xref:devel_check_plugins#[agentenbasierten Verwandten.]
21
+
Check-Plugins, die mit SNMP arbeiten, werden auf ähnliche Weise entwickelt wie ihre xref:devel_check_plugins#[agentenbasierten Verwandten].
23
22
Der Unterschied liegt sowohl im Ablauf der xref:glossar#service_discovery[Service-Erkennung] (_Discovery_) als auch des Checks selbst.
24
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.
25
24
Im Gegensatz dazu müssen Sie bei SNMP selbst genau festlegen, welche Datenbereiche Sie benötigen und diese explizit _anfordern._
@@ -31,7 +30,7 @@ Daher scheidet dies bereits bei der Discovery und erst recht beim Check selbst a
31
30
{CMK} geht hier zielgerichteter vor.
32
31
Für das Debugging vorhandener und die Entwicklung eigener Checks stehen in {CMK} dennoch SNMP-Walks zur Verfügung.
33
32
34
-
Falls Sie noch keine Erfahrung mit SNMP haben, empfehlen wir Ihnen als vorbereitende Lektüre den Artikel über das xref:snmp#[Überwachen via SNMP.]
33
+
Falls Sie noch keine Erfahrung mit SNMP haben, empfehlen wir Ihnen als vorbereitende Lektüre den Artikel über das xref:snmp#[Überwachen via SNMP].
35
34
36
35
37
36
[#snmp_special]
@@ -56,7 +55,7 @@ Hier werden per SNMP-Walks die für das Plugin benötigten aktuellen Monitoring-
56
55
57
56
Was müssen Sie also bei einem Check-Plugin für SNMP anders machen als bei einem agentenbasierten?
58
57
59
-
. Sie benötigen _kein_ xref:glossar#agent_plugin[Agentenplugin.]
58
+
. Sie benötigen _kein_ xref:glossar#agent_plugin[Agentenplugin].
60
59
61
60
. Sie legen die für die SNMP-Detection nötigen OIDs fest und die Texte, die diese enthalten sollen.
62
61
@@ -110,7 +109,7 @@ Ist gerade kein Gerät zur Hand, finden Sie im Kapitel zur xref:simulation[Fehle
110
109
Der erste Schritt dahin ist, einen kompletten SNMP-Walk auszuführen.
111
110
Dabei werden _alle_ per SNMP verfügbaren Daten abgerufen.
112
111
{CMK} kann das sehr einfach für Sie erledigen.
113
-
Nehmen Sie dazu zunächst das Gerät, für das Sie ein Check-Plugin entwickeln wollen, xref:snmp#add_device[in das Monitoring auf.]
112
+
Nehmen Sie dazu zunächst das Gerät, für das Sie ein Check-Plugin entwickeln wollen, xref:snmp#add_device[in das Monitoring auf].
114
113
Stellen Sie sicher, dass es xref:snmp#services[in den Grundfunktionen] überwacht werden kann.
115
114
Zumindest müssen die Services [.guihint]#SNMP Info# und [.guihint]#Uptime# gefunden werden und wahrscheinlich auch noch mindestens ein [.guihint]#Interface#.
116
115
So stellen Sie sicher, dass der SNMP-Zugriff sauber funktioniert.
@@ -190,14 +189,14 @@ Für das vorgestellte Beispiel genügen die OIDs `1.3.6.1.2.1.1.4.0` bis `1.3.6.
190
189
Nun haben Sie die Vorarbeit erledigt:
191
190
Sie haben jetzt eine Liste der OIDs, die Sie auslesen und auswerten wollen.
192
191
Jetzt geht es darum, anhand dieser Notizen {CMK} beizubringen, welche Services erzeugt werden, und wann diese auf {WARN} oder {CRIT} gehen sollen.
193
-
Die dafür angewandte Programmierung eines Check-Plugins in Python hat viele Parallelen zum xref:devel_check_plugins#write_check_plugin[agentenbasierten Check-Plugin.]
192
+
Die dafür angewandte Programmierung eines Check-Plugins in Python hat viele Parallelen zum xref:devel_check_plugins#write_check_plugin[agentenbasierten Check-Plugin].
194
193
Da einige Feinheiten zu beachten sind, zeigen wir den vollständigen Aufbau mit allen verwendeten Funktionen.
195
194
196
195
197
196
[#scaffold]
198
197
=== Die Datei vorbereiten
199
198
200
-
Für Ihre eigenen Check-Plugins finden Sie das Basisverzeichnis vorbereitet in der `local`-Hierarchie des xref:cmk_commandline#sitedir[Instanzverzeichnisses.]
199
+
Für Ihre eigenen Check-Plugins finden Sie das Basisverzeichnis vorbereitet in der `local`-Hierarchie des xref:cmk_commandline#sitedir[Instanzverzeichnisses].
201
200
Dieses lautet `~/local/lib/python3/cmk_addons/plugins/`.
202
201
Das Verzeichnis gehört dem Instanzbenutzer und ist daher für Sie schreibbar.
Als erstes müssen Sie die für die Check-Plugins nötigen Funktionen und Klassen aus Python-Modulen importieren.
267
266
Vom gelegentlich gesehenen `import pass:[*]`, raten wir ab, da es zum einen unnötig viel Speicher nutzt und zum anderen verschleiert, welche Namespaces tatsächlich verfügbar gemacht werden.
268
267
Für unser Beispiel wird nur importiert, was im weiteren Verlauf des Artikels genutzt wird oder nützlich sein kann.
269
-
// TK: CheckResult, DiscoveryResult, StringTable werden aber gar nicht genutzt? MFS: Doch, implizit, also importieren wir sie.
@@ -574,7 +572,7 @@ Das komplette Check-Plugin haben wir auf link:https://github.com/Checkmk/checkmk
574
572
[#test]
575
573
=== Das Check-Plugin testen und aktivieren
576
574
577
-
Test und Aktivierung erfolgen wie beim xref:devel_check_plugins#test[agentenbasierten Check-Plugin.]
575
+
Test und Aktivierung erfolgen wie beim xref:devel_check_plugins#test[agentenbasierten Check-Plugin].
578
576
579
577
Als erstes ist die Service-Erkennung des Plugins an der Reihe:
580
578
@@ -657,7 +655,7 @@ Ein Hilfsmittel bei der Programmierung eines solchen kann das link:https://pypi.
657
655
=== Unkooperative Hardware
658
656
659
657
Bevor ein Gerät mit einem neuen SNMP-basierten Check-Plugin überwacht werden kann, muss es zuerst einmal grundsätzlich über SNMP überwacht werden können.
660
-
Die Übersicht bekannter Probleme mit Lösungsvorschlägen finden Sie daher im Artikel zur xref:snmp#cursedhardware[Überwachung via SNMP.]
658
+
Die Übersicht bekannter Probleme mit Lösungsvorschlägen finden Sie daher im Artikel zur xref:snmp#cursedhardware[Überwachung via SNMP].
Copy file name to clipboardExpand all lines: src/onprem/en/devel_check_plugins_snmp.asciidoc
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,6 @@
3
3
// NONASCII
4
4
include::global_attr.adoc[]
5
5
= Developing SNMP-based check plug-ins
6
-
:revdate: 2024-10-09
7
6
:title: Developing SNMP-based check plug-ins
8
7
:description: Relevant monitoring data about SNMP hosts must be explicitly requested and then evaluated by {CMK}. Read here how to develop check plug-ins for SNMP.
0 commit comments