Skip to content

Commit e1fe4d8

Browse files
thomaskoslowskiMattias Schlenker
authored andcommitted
content-sync - by quick check, formal updates, pick-24
1 parent 8187d54 commit e1fe4d8

File tree

2 files changed

+9
-12
lines changed

2 files changed

+9
-12
lines changed

src/onprem/de/devel_check_plugins_snmp.asciidoc

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
// NONASCII
44
include::global_attr.adoc[]
55
= SNMP-basierte Check-Plugins entwickeln
6-
:revdate: 2024-09-02
76
:title: SNMP-basierte Check-Plugins entwickeln
87
: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.
98

@@ -19,7 +18,7 @@ xref:cmk_commandline#[{CMK} auf der Befehlszeile]
1918
[#intro]
2019
== Einleitung
2120

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].
2322
Der Unterschied liegt sowohl im Ablauf der xref:glossar#service_discovery[Service-Erkennung] (_Discovery_) als auch des Checks selbst.
2423
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.
2524
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
3130
{CMK} geht hier zielgerichteter vor.
3231
Für das Debugging vorhandener und die Entwicklung eigener Checks stehen in {CMK} dennoch SNMP-Walks zur Verfügung.
3332

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].
3534

3635

3736
[#snmp_special]
@@ -56,7 +55,7 @@ Hier werden per SNMP-Walks die für das Plugin benötigten aktuellen Monitoring-
5655

5756
Was müssen Sie also bei einem Check-Plugin für SNMP anders machen als bei einem agentenbasierten?
5857

59-
. Sie benötigen _kein_ xref:glossar#agent_plugin[Agentenplugin.]
58+
. Sie benötigen _kein_ xref:glossar#agent_plugin[Agentenplugin].
6059

6160
. Sie legen die für die SNMP-Detection nötigen OIDs fest und die Texte, die diese enthalten sollen.
6261

@@ -110,7 +109,7 @@ Ist gerade kein Gerät zur Hand, finden Sie im Kapitel zur xref:simulation[Fehle
110109
Der erste Schritt dahin ist, einen kompletten SNMP-Walk auszuführen.
111110
Dabei werden _alle_ per SNMP verfügbaren Daten abgerufen.
112111
{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].
114113
Stellen Sie sicher, dass es xref:snmp#services[in den Grundfunktionen] überwacht werden kann.
115114
Zumindest müssen die Services [.guihint]#SNMP Info# und [.guihint]#Uptime# gefunden werden und wahrscheinlich auch noch mindestens ein [.guihint]#Interface#.
116115
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.
190189
Nun haben Sie die Vorarbeit erledigt:
191190
Sie haben jetzt eine Liste der OIDs, die Sie auslesen und auswerten wollen.
192191
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].
194193
Da einige Feinheiten zu beachten sind, zeigen wir den vollständigen Aufbau mit allen verwendeten Funktionen.
195194
196195
197196
[#scaffold]
198197
=== Die Datei vorbereiten
199198
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].
201200
Dieses lautet `~/local/lib/python3/cmk_addons/plugins/`.
202201
Das Verzeichnis gehört dem Instanzbenutzer und ist daher für Sie schreibbar.
203202
@@ -266,7 +265,6 @@ check_plugin_flintstone_setup = CheckPlugin(
266265
Als erstes müssen Sie die für die Check-Plugins nötigen Funktionen und Klassen aus Python-Modulen importieren.
267266
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.
268267
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.
270268

271269
.~/local/lib/python3/cmk_addons/plugins/flintstone/agent_based/flintstone_setup_check.py
272270
[{python}]
@@ -534,7 +532,7 @@ check_plugin_flintstone_setup = CheckPlugin(
534532
[#discovery_function]
535533
=== Die Discovery-Funktion schreiben
536534
537-
Auch die Discovery-Funktion entspricht dem Beispiel des xref:devel_check_plugins#discovery_function[agentenbasierten Check-Plugins.]
535+
Auch die Discovery-Funktion entspricht dem Beispiel des xref:devel_check_plugins#discovery_function[agentenbasierten Check-Plugins].
538536
Bei Check-Plugins, die pro Host nur einen Service erzeugen, genügt ein einziges `yield()`:
539537
540538
.~/local/lib/python3/cmk_addons/plugins/flintstone/agent_based/flintstone_setup_check.py
@@ -574,7 +572,7 @@ Das komplette Check-Plugin haben wir auf link:https://github.com/Checkmk/checkmk
574572
[#test]
575573
=== Das Check-Plugin testen und aktivieren
576574
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].
578576
579577
Als erstes ist die Service-Erkennung des Plugins an der Reihe:
580578
@@ -657,7 +655,7 @@ Ein Hilfsmittel bei der Programmierung eines solchen kann das link:https://pypi.
657655
=== Unkooperative Hardware
658656
659657
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].
661659
662660
663661
[#files]

src/onprem/en/devel_check_plugins_snmp.asciidoc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
// NONASCII
44
include::global_attr.adoc[]
55
= Developing SNMP-based check plug-ins
6-
:revdate: 2024-10-09
76
:title: Developing SNMP-based check plug-ins
87
: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.
98

0 commit comments

Comments
 (0)