LiveStatus Query Filter

Hallo zusammen,

ich bin gerade dabei ein Skript zu schreiben, welches mir per Livestatus Query einige Infos über Hosts gibt, die ein bestimmten Host-Tag haben und einen Status, welcher nicht OK ist. Außerdem sollen nur Hosts ausgegeben werden, bei denen die Fehler nicht Acknowledged wurden. Soweit klappt das alles, der Befehl welchen ich hierfür gebaut habe, sieht so aus:

lq 'GET services\nColumns: host_name description plugin_output state\nFilter: host_custom_variables ~ TAGS bestimmter-host-tag\nFilter: acknowledged = 0\nFilter: state = 1\nFilter: state = 2\nFilter: state = 3\nOr: 3'

Jetzt würde ich gerne noch Systeme ausschließen, welche sich aktuell in einer Downtime befinden. Ich weiß leider nicht, wie ich das am besten raus filtere, da ich nicht weiß, wie ich die Werte interpretieren soll. Ich habe folgende Attribute welche etwas mit Downtime zu tun haben gefunden:

downtimes
downtimes_with_extra_info
downtimes_with_info
pending_flex_downtime
scheduled_downtime_depth

Meine Tests mit diesen Filter haben bis jetzt leider nicht zum Erfolg geführt. Hat hier vielleicht noch jemand einen Tipp für mich?

Viele Grüße

Filter: host_downtimes =\n
…sollte alle Services von Hosts rausfiltern die in Downtime sind.

1 Like

Funktioniert leider noch nicht so wie ich es will… Egal ob 1 oder 0 oder leer, ich bekomme immer die gleiche Ausgabe mit folgendem Befehl:

lq 'GET services\nColumns: host_name description plugin_output state\nFilter: host_custom_variables ~ TAGS bestimmtes-tag\nFilter: host_downtime = 0\nFilter: state = 1\nFilter: state = 2\nFilter: state = 3\nOr: 3'

Der Host welcher in Downtime ist wird leider trotzdem angezeigt.

Hallo,
sollte so aussehen - am Beispiel mit dem Criticality-Tag und der Auswahl Productive system:

lq "GET hosts\nColumns: ...\nFilter: host_acknowledged != 0\nFilter: host_scheduled_downtime_depth != 0\nFilter: host_tags = 'criticality' 'prod'"

Du könntest bei deinen Experimenten den Schalter Debug livestatus queries einschalten, dann zeigt Checkmk die Filter korrekt an, die du benutzen kannst.

Karl

1 Like

Danke @kdeutsch,

dein Post hat mich in die richtige Richtung geleitet.

Mit folgendem Befehl habe ich nun alles was ich brauche, nämlich alle Services von Systemen mit einem bestimmten Tag welche nicht den Status OK haben und sich aktuell nicht in einer Downtime befinden oder Acknowledged wurden:

lq 'GET services\nColumns: host_name description plugin_output state\nFilter: host_tags = 'criticality' 'bestimmtes_tag'\nFilter: acknowledged = 0\nFilter: host_scheduled_downtime_depth =
0\nFilter: service_scheduled_downtime_depth = 0\nFilter: state = 1\nFilter: state = 2\nFilter: state = 3\nOr: 3'

Danke für eure Hilfe!

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.