Skip to content

Commit fda64b2

Browse files
thomaskoslowskiMattias Schlenker
authored andcommitted
API updates and formal changes, pick-24
1 parent 4b8e534 commit fda64b2

File tree

2 files changed

+93
-74
lines changed

2 files changed

+93
-74
lines changed

src/onprem/de/livestatus.asciidoc

Lines changed: 50 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// NONASCII …​
44
include::global_attr.adoc[]
55
= Statusdaten abrufen via Livestatus
6-
:revdate: 2022-10-27
76
:title: Statusdaten abrufen via Livestatus
87
:description: Livestatus ermöglicht Ihnen den direkten Zugriff auf alle Daten der mit {CMK} überwachten Objekte. Hier erfahren Sie, wie Sie die Livestatus-API nutzen.
8+
:experimental:
99

1010
{related-start}
1111
xref:livestatus_references#[Livestatus Befehlsreferenz]
@@ -14,6 +14,7 @@ xref:rest_api#[Die {CMK} REST-API]
1414
{related-end}
1515

1616

17+
[#intro]
1718
== Einleitung
1819

1920
Der Livestatus ist die wichtigste Schnittstelle in {CMK}. Durch sie bekommen
@@ -199,16 +200,16 @@ reply = "".join(chunks)
199200
print(json.loads(reply))
200201
----
201202

203+
204+
[#api]
202205
=== Nutzung der Livestatus-API
203206

204-
{CMK} stellt auch eine API für die Programmiersprachen Python, Perl und
205-
C++ zur Verfügung, welche den Zugriff auf den Livestatus vereinfachen. Zu
206-
jeder Sprache steht Ihnen Beispielcode zur Verfügung, welcher die Nutzung
207-
erläutert. Die Pfade zu diesen Beispielen finden Sie in dem Kapitel
208-
xref:livestatus#files[Dateien und Verzeichnisse].
209-
// TODO: Hier noch einen Hinweis einbauen, sobald es einen Artikel in der
210-
// Sektion "Erweiterungen Programmieren" dazu gibt.
207+
{CMK} stellt auch eine API für die Programmiersprache Python zur Verfügung, welche den Zugriff auf den Livestatus vereinfachen.
208+
Zu dieser API steht Ihnen Beispielcode zur Verfügung, welcher die Nutzung erläutert.
209+
Sie finden diese API auf link:https://github.com/Checkmk/checkmk/tree/master/packages/cmk-livestatus-client/[GitHub^].
210+
211211

212+
[#simple_queries]
212213
== Einfache Abfragen
213214

214215
=== Spalten abfragen (Columns)
@@ -229,9 +230,11 @@ myserver234;192.168.0.73
229230
Wie Sie sehen, erfolgt die Trennung der einzelnen Werte einer Zeile wiederum
230231
durch ein Semikolon.
231232

232-
*Wichtig:* Wenn Sie diesen Header benutzen, werden die Kopfzeilen
233-
in der Ausgabe unterdrückt. Sie können diese aber mit dem Header
234-
xref:livestatus#columnheader[ColumnHeaders] der Ausgabe wieder hinzufügen.
233+
[TIP]
234+
====
235+
Wenn Sie diesen Header benutzen, werden die Kopfzeilen in der Ausgabe unterdrückt.
236+
Sie können diese aber mit dem Header xref:livestatus#columnheader[ColumnHeaders] der Ausgabe wieder hinzufügen.
237+
====
235238

236239

237240
=== Einfache Filter setzen (Filter)
@@ -326,6 +329,7 @@ ahost;uptime|48959
326329
----
327330

328331

332+
[#complex_queries]
329333
== Komplexe Abfragen
330334

331335
[#filter]
@@ -460,8 +464,10 @@ myserver123 Filesystem /home 0
460464
461465
----
462466

463-
*Wichtig:* Die Reihenfolge der Separatoren ist fest und darf daher
464-
nicht vertauscht werden.
467+
[TIP]
468+
====
469+
Die Reihenfolge der Separatoren ist fest und darf daher nicht vertauscht werden.
470+
====
465471

466472

467473
[#output_format]
@@ -610,6 +616,7 @@ guest=0.000000 steal=0.000000 system=34.515000 user=98.209000 wait=23.008000
610616
----
611617

612618

619+
[#limit]
613620
== Begrenzung der Ausgabe (Limit)
614621

615622
Die Anzahl der Zeilen in der Ausgabe ist begrenzbar. Das kann z.B. nützlich
@@ -631,6 +638,7 @@ haben und die Ausgabe auf 10 begrenzen, werden nur die ersten 10 Hosts
631638
berücksichtigt.
632639

633640

641+
[#timelimit]
634642
== Zeitbeschränkungen (Timelimit)
635643

636644
Sie können nicht nur die Anzahl der ausgegebenen Zeilen einschränken. Auch
@@ -646,7 +654,6 @@ Abfrage dauern darf:
646654
----
647655

648656

649-
650657
[#columnheader]
651658
== Kopfzeilen aktivieren (ColumnHeaders)
652659

@@ -665,7 +672,7 @@ myserver345;192.168.0.44;cluster_a
665672
----
666673

667674

668-
675+
[#authuser]
669676
== Berechtigungen (AuthUser)
670677

671678
Wenn Sie Skripten auf Basis des Livestatus zur Verfügung stellen möchten,
@@ -708,7 +715,7 @@ myserver123;CPU load;hhrisch,kkleber
708715
----
709716

710717

711-
718+
[#wait]
712719
== Verzögerungen (Wait)
713720

714721
Mit den Wait-Headern erstellen Sie Abfragen, um bestimmte Datensätze zu
@@ -766,13 +773,14 @@ Columns: host_name description state
766773
myserver;Memory;0
767774
----
768775

769-
*Wichtig:* Achten Sie darauf,
770-
dass der Zeitstempel in `last_check` aus dem Beispiel durch einen
771-
aktuellen ersetzt werden muss. Andernfalls ist die Bedingung immer erfüllt
772-
und die Ausgabe kommt sofort.
773-
776+
[TIP]
777+
====
778+
Achten Sie darauf, dass der Zeitstempel in `last_check` aus dem Beispiel durch einen aktuellen ersetzt werden muss.
779+
Andernfalls ist die Bedingung immer erfüllt und die Ausgabe kommt sofort.
780+
====
774781

775782

783+
[#localtime]
776784
== Zeitzonen (Localtime)
777785

778786
Viele größere Monitoring-Umgebungen rufen auf globaler Ebene Hosts und
@@ -809,7 +817,6 @@ myserver123;Memory;1511173526
809817
----
810818

811819

812-
813820
[#response_header]
814821
== Statuscodes (ResponseHeader)
815822

@@ -839,9 +846,9 @@ einen Filter falsch setzen bzw. mit dem Namen einer Spalte _verwechseln._
839846
Coluns: undefined request header
840847
----
841848

842-
*Wichtig:* Das xref:livestatus#output_format[Ausgabeformat] ist im Fehlerfall
843-
immer eine Fehlermeldung in Textform. Das gilt unabhängig davon, wie Sie
844-
es angepasst haben.
849+
Das xref:livestatus#output_format[Ausgabeformat] ist im Fehlerfall immer eine Fehlermeldung in Textform.
850+
Das gilt unabhängig davon, wie Sie es angepasst haben.
851+
845852

846853
[#keepalive]
847854
== Verbindung aufrecht erhalten (KeepAlive)
@@ -854,12 +861,13 @@ einen Kanal zu _reservieren_. Nach einem xref:livestatus#commands[Befehl]
854861
bleibt eine Livestatus-Verbindung übrigens immer offen. Sie benötigen dafür
855862
keine Angabe eines zusätzlichen Headers.
856863

857-
*Wichtig:* Da der Kanal für die Dauer der Verbindung für andere Prozesse
858-
blockiert ist, kann das zu einem Problem werden, wenn keine Verbindungen
859-
mehr zur Verfügung stehen. Andere Prozesse müssen dann warten, bis wieder
860-
eine Verbindung frei ist. In der Standardkonfiguration hält {CMK} 20
861-
Verbindungen bereit -- erhöhen Sie bei Bedarf die maximale Anzahl dieser
862-
Verbindungen in [.guihint]#Setup > General > Global Settings > Monitoring Core > Maximum concurrent Livestatus connections#.
864+
[TIP]
865+
====
866+
Da der Kanal für die Dauer der Verbindung für andere Prozesse blockiert ist, kann das zu einem Problem werden, wenn keine Verbindungen mehr zur Verfügung stehen.
867+
Andere Prozesse müssen dann warten, bis wieder eine Verbindung frei ist.
868+
In der Standardkonfiguration hält {CMK} 20 Verbindungen bereit
869+
-- erhöhen Sie bei Bedarf die maximale Anzahl dieser Verbindungen in [.guihint]#Setup > General > Global Settings > Monitoring Core > Maximum concurrent Livestatus connections#.
870+
====
863871

864872
Kombinieren Sie `KeepAlive` immer mit dem
865873
xref:livestatus#response_header[`ResponseHeader`], um die
@@ -941,9 +949,11 @@ myserver123;Memory;1511343338;2
941949
myserver234;CPU load;1511342512;0
942950
----
943951

944-
*Wichtig:* Achten Sie darauf, dass Sie im interaktiven Modus des Eingabe-Streams keine
945-
Variablen wie in dem Beispiel nutzen können. Und schränken Sie die Abfragen
946-
*immer* auf einen Zeitraum ein.
952+
[TIP]
953+
====
954+
Achten Sie darauf, dass Sie im interaktiven Modus des Eingabe-Streams keine Variablen wie in dem Beispiel nutzen können.
955+
Und schränken Sie die Abfragen *immer* auf einen Zeitraum ein.
956+
====
947957

948958

949959
=== Die Monitoring-Historie konfigurieren
@@ -962,13 +972,11 @@ welche Sie in unter [.guihint]#Setup > General > Global Settings > Monitoring Co
962972

963973
|[.guihint]#History log rotation: Regular interval of rotations# |Hier wird festgelegt, in welchem Zeitintervall die Historie in einer neuen Datei weitergeführt wird.
964974
|[.guihint]#History log rotation: Rotate by size (Limit of the size)# |Unabhängig von dem Zeitintervall wird hier die maximale Größe einer Datei festgelegt. Die Größe stellt einen Kompromiss zwischen der möglichen Leserate und den möglichen IOs dar.
965-
// TK: IOs sind nochmal was?
966975
|[.guihint]#Maximum number of parsed lines per log file# |Nach der angegeben Anzahl an Zeilen wird eine Datei nicht weiter gelesen. Das verhindert Timeouts, falls eine Datei aus irgendwelchen Gründen doch sehr groß geworden sein sollte.
967976
|===
968977

969978

970-
971-
979+
[#availability]
972980
== Verfügbarkeiten prüfen
973981

974982
Mit der Tabelle `statehist` können Sie die Rohdaten zu der
@@ -1023,6 +1031,7 @@ Wie Sie eine vollständige Liste der verfügbaren Spalten abrufen, wird in der
10231031
xref:livestatus#columns[Befehlsreferenz] näher erläutert.
10241032

10251033

1034+
[#variables]
10261035
== Variablen im Livestatus
10271036

10281037
Sie können an verschiedenen Stellen in der {CMK}-Oberfläche Variablen
@@ -1048,9 +1057,6 @@ bekommen Sie den eigentlichen Wert des Makros ausgegeben:
10481057
myserver123;\https://mymonitoring/heute/wiki/doku.php?id=hosts:myserver123
10491058
----
10501059

1051-
// TODO: Link zu einem Artikel in dem die verfügbaren Makros/Variablen
1052-
// erläutert werden? In welchem Artikel würde das dokumentiert werden?
1053-
10541060

10551061
[#network]
10561062
== Livestatus über das Netzwerk nutzen
@@ -1113,7 +1119,7 @@ Server certificate
11131119
read R BLOCK
11141120
----
11151121

1116-
Erfolgt keine weitere Ausgabe mehr, können Sie interaktiv LQL-Befehle absetzen, welche Sie mit einer Leerzeile (zweimal Return-Taste) abschließen.
1122+
Erfolgt keine weitere Ausgabe mehr, können Sie interaktiv LQL-Befehle absetzen, welche Sie mit einer Leerzeile (zweimal kbd:[Enter]-Taste) abschließen.
11171123
Klappt dies, können Sie Livestatus-Abfragen auch per Pipeline übergeben, der zusätzliche Parameter `-quiet` unterdrückt hier Debugging-Ausgaben:
11181124

11191125
[{shell}]
@@ -1183,8 +1189,8 @@ Nach Neustart des stunnel ist der Zugriff auf den lokalen Port unverschlüsselt
11831189
Falls Sie per Skript via SSL auf Livestatus zugreifen wollen, verwenden Sie möglichst nicht `openssl s_client`.
11841190
Primärer Zweck dieses Tools ist der Test des Verbindungsaufbaus und das Debugging von Zertifikatsketten.
11851191
Um im Falle von Verbindungsabbrüchen zu erkennen, ob die erwartete Ausgabe vollständig war, empfehlen wir, den xref:response_header[`ResponseHeader`] auszuwerten.
1186-
Ein gut gepflegtes API, welches SSL und Header-Auswertung unterstützt, ist jenes für Python, das Sie unter `share/doc/check_mk/livestatus/api/python` finden.
1187-
Weitere APIs listet das Kapitel xref:files[_Dateien und Verzeichnisse_].
1192+
Eine gut gepflegtes API, welche SSL und Header-Auswertung unterstützt, ist jene für Python, die Sie auf link:https://github.com/Checkmk/checkmk/tree/master/packages/cmk-livestatus-client/[GitHub^] finden.
1193+
11881194

11891195
=== Verbindung über SSH
11901196

@@ -1294,9 +1300,7 @@ gegebenenfalls die Variablen:
12941300
|`~/var/log/nagios.log` |Die Log-Datei des Nagios-Core, in der unter anderem die Abfragen/Befehle dokumentiert werden.
12951301
|`~/var/nagios/archive/` |Hier werden die `history`-Log-Dateien archiviert. Diese werden nur nach Bedarf eingelesen.
12961302
|`~/share/doc/check_mk/livestatus/LQL-examples/` |In diesem Verzeichnis finden Sie einige Beispiele zu Livestatus-Abfragen, die Sie ausprobieren können. Die Beispiele werden an den Skriptbefehl `lq` geleitet, wie z.B.: `lq < 1.lql`
1297-
|`~/share/doc/check_mk/livestatus/api/python` |In diesem Verzeichnis finden Sie die API zu Python sowie einige Beispiele. Lesen Sie auch das `README` in diesem Verzeichnis.
1298-
|`~/share/doc/check_mk/livestatus/api/perl` |Die API zu Perl finden Sie hier. Auch hier gibt es wieder ein `README`. Die Beispiele zur Nutzung befinden sich hier in dem Unterverzeichnis `examples`.
1299-
|`~/share/doc/check_mk/livestatus/api/c++` |Zu der Programmiersprache C++ finden Sie hier ebenfalls Beispielcode. Der Code zu der API selbst liegt ebenfalls unkompiliert vor, so dass Sie maximalen Einblick in die Funktionsweise der API haben.
1303+
haben.
13001304
|===
13011305

13021306

0 commit comments

Comments
 (0)