Module: check_mk
Branch: master
Commit: 2c7f7cd78cb14aa8ef3d3ca6f9ed5e051dd3e490
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=2c7f7cd78cb14a…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Wed Dec 22 15:52:16 2010 +0100
Livestatus: do not use is_contact_member_of_contactgroup anymore
---
.bugs/6 | 10 +++++++---
ChangeLog | 2 ++
livestatus/src/ContactgroupsMemberColumn.cc | 9 +++++++--
3 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/.bugs/6 b/.bugs/6
index 08f6291..e6619fb 100644
--- a/.bugs/6
+++ b/.bugs/6
@@ -1,12 +1,16 @@
Title: is_contact_member_of_contactgroup selbst programmieren
Component: livestatus
+State: done
+Class: todo
+Date: 2010-12-21 10:55:19
Benefit: 5
-State: open
Cost: 2
-Date: 2010-12-21 10:55:19
-Class: todo
+Fun: 0
Diese Funktion ist im CVS schon weg und sehr leicht
selbst zu programmieren. Sollte man bald mal machen,
damit ein stabiles Livestatus schon bereit ist, wenn
das neue Nagios kommt.
+
+2010-12-22 15:51:55: changed state open -> done
+Ist umgesetzt. Sollte jetzt funktionieren.
diff --git a/ChangeLog b/ChangeLog
index f47fa0b..5715a30 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -42,6 +42,8 @@
column to work you need to specify the base directory of the PNP graphs
with the module option pnp_path=, e.g. pnp_path=/omd/sites/wato/var/pnp4nagios/perfdata
* Allow more than one column for StatsGroupBy:
+ * Do not use function is_contact_member_of_contactgroup anymore (get compatible
+ with Nagios CVS)
1.1.9i2:
Checks & Agents:
diff --git a/livestatus/src/ContactgroupsMemberColumn.cc b/livestatus/src/ContactgroupsMemberColumn.cc
index d26b8ee..3811671 100644
--- a/livestatus/src/ContactgroupsMemberColumn.cc
+++ b/livestatus/src/ContactgroupsMemberColumn.cc
@@ -28,6 +28,11 @@
bool ContactgroupsMemberColumn::isNagiosMember(void *cg, void *ctc)
{
- return is_contact_member_of_contactgroup((contactgroup *)cg, (contact *)ctc);
+ contactsmember *mem;
+ for (mem = ((contactgroup *)cg)->members; mem != NULL; mem = mem->next)
+ {
+ if (mem->contact_ptr == ctc)
+ return true;
+ }
+ return false;
}
-
Module: check_mk
Branch: master
Commit: d0c491ee4a770fb6119b40f790d1175532e381c7
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=d0c491ee4a770f…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Dec 21 20:55:26 2010 +0100
Converted further bugs to .bugs
---
.bugs/29 | 10 ++++++++++
.bugs/30 | 15 +++++++++++++++
.bugs/31 | 10 ++++++++++
.bugs/32 | 13 +++++++++++++
.bugs/33 | 10 ++++++++++
.bugs/34 | 12 ++++++++++++
.bugs/35 | 11 +++++++++++
.bugs/36 | 13 +++++++++++++
LIESMICH.zutun | 38 --------------------------------------
9 files changed, 94 insertions(+), 38 deletions(-)
diff --git a/.bugs/29 b/.bugs/29
new file mode 100644
index 0000000..88ef4c1
--- /dev/null
+++ b/.bugs/29
@@ -0,0 +1,10 @@
+Title: Link vom Detail-Host zum Summary-Host
+Component: multisite
+Benefit: 1
+State: open
+Cost: 1
+Date: 2010-12-21 20:43:21
+Class: feature
+
+Umgekehrt ist der Link doch auch schon da. Evtl. muss man dafür ein
+Host-Tag einbauen, dass analog zu REALHOST funktioniert.
diff --git a/.bugs/30 b/.bugs/30
new file mode 100644
index 0000000..c22f4a9
--- /dev/null
+++ b/.bugs/30
@@ -0,0 +1,15 @@
+Title: host_authorization Konfiguration für Multisite
+Component: multisite
+Benefit: 1
+State: open
+Cost: 2
+Date: 2010-12-21 20:45:11
+Class: feature
+
+Livestatus: dritte Authorization-Regel: host_authorization: strict/loose.
+Default ist strict: man muss explizit Kontakt sein, um den Host zu sehen.
+Loose: wenn man für mindestens einen Service des Hosts Kontakt ist, kann
+man ihn sehen.
+
+Ich frage mich allerdings, ob die anderen beiden Regeln wirklich funktionieren.
+Das ist noch nicht ganz gesichert.
diff --git a/.bugs/31 b/.bugs/31
new file mode 100644
index 0000000..788657f
--- /dev/null
+++ b/.bugs/31
@@ -0,0 +1,10 @@
+Title: Kommando für Custom Notification
+Component: multisite
+Benefit: 2
+State: open
+Cost: 1
+Date: 2010-12-21 20:46:23
+Class: feature
+
+Beim normalen Nagios gibts das auch. Dazu Checkboxen für "force"
+und für "broadcast".
diff --git a/.bugs/32 b/.bugs/32
new file mode 100644
index 0000000..1507919
--- /dev/null
+++ b/.bugs/32
@@ -0,0 +1,13 @@
+Title: modified_attributes bei Bedarf zurücksetzen
+Component: multisite
+Benefit: 1
+State: open
+Cost: 3
+Date: 2010-12-21 20:48:09
+Class: nastiness
+
+Wenn man z.B. die active checks aus und wieder eingeschaltet hat,
+dann erscheint der grüne Haken. Irgendwie müsste man die modified
+Attributes zurücksetzen können. Evtl. hilft auch die Doku, dass
+man das über die state retention konfiguriert. Das Kommando
+zum Zurücksetzen heisst CHANGE_SVC_MODATTR;<host_name>;<service_description>;<value>
diff --git a/.bugs/33 b/.bugs/33
new file mode 100644
index 0000000..cceb386
--- /dev/null
+++ b/.bugs/33
@@ -0,0 +1,10 @@
+Title: Datei local.mk, die nicht gebackupt wird
+Component: core
+Benefit: 1
+State: open
+Cost: 1
+Date: 2010-12-21 20:50:02
+Class: feature
+
+Analog zu final, kommt noch nach final und wird von backup/restore
+nicht angefasst.
diff --git a/.bugs/34 b/.bugs/34
new file mode 100644
index 0000000..fb7004d
--- /dev/null
+++ b/.bugs/34
@@ -0,0 +1,12 @@
+Title: Umstellen einer Datenquelle einer View möglich machen
+Component: multisite
+Benefit: 1
+State: open
+Cost: 2
+Date: 2010-12-21 20:50:45
+Class: feature
+
+Bei einer bestehenden View muss man die Datenquelle umstellen
+können, zumindest wenn die neue Datenquelle alle Spalten unterstützt,
+die aktuell verwendet werden (und Filter). Man muss z.B. von hostgroups
+auf hostgroups_merged umstellen können. Alles andere ist viel zu umständlich.
diff --git a/.bugs/35 b/.bugs/35
new file mode 100644
index 0000000..2526ef6
--- /dev/null
+++ b/.bugs/35
@@ -0,0 +1,11 @@
+Title: View-Editor: Spaltenzahl irgendwie dynamisch machen
+Component: multisite
+Benefit: 3
+State: open
+Cost: 4
+Date: 2010-12-21 20:51:19
+Class: feature
+
+Das aktuelle Prinzip ist eh doof, weil man keine Spalten in der Mitte
+einfügen kann. Das müsste man irgendwie über Javascript hinbekommen.
+Auch dass man nicht auf 10 begrenzt ist.
diff --git a/.bugs/36 b/.bugs/36
new file mode 100644
index 0000000..b5bc62c
--- /dev/null
+++ b/.bugs/36
@@ -0,0 +1,13 @@
+Title: Linux-NICs: Check kompatibel zu if/if64 machen
+Component: core
+Benefit: 2
+State: open
+Cost: 2
+Date: 2010-12-21 20:52:24
+Class: cleanup
+
+Man könnte das doch evtl. kompatibel mit if machen. Und dann evtl auch die
+Ausgabe noch kompatibel. Man monitort dann nur die verwendeten NICs. Und
+man bau eine neue Sektion <<<nics>>>, welche die Ausgaben von ethtool
+und /proc/net/dev kombiniert, damit man einen Check bauen kann, der
+wirklich 100% kompatibel zu if ist (dann klappen auch die Network Wethermaps)
diff --git a/LIESMICH.zutun b/LIESMICH.zutun
index bb4647e..5150e47 100644
--- a/LIESMICH.zutun
+++ b/LIESMICH.zutun
@@ -2,44 +2,6 @@
IDEEN & VERBESSERUNGEN
--------------------------------------------------------------------------------
-Windows-Agent: Eventlogeinträge nach UTF-8 kodieren.
-
-Multisite: Ein Link vom Detail-Host zum Summary-Host (umgekehrt ist er doch
-schon da, oder?)
-
-Livestatus: dritte Authorization-Regel: host_authorization: strict/loose.
-Default ist strict: man muss explizit Kontakt sein, um den Host zu sehen.
-Loose: wenn man für mindestens einen Service des Hosts Kontakt ist, kann
-man ihn sehen.
-
-Kommando was dringend fehlt: Custom notification (mit force und broadcast)
-
-Neue Spalten für Views: * long_service_output, host_notes
-
-Multisite: Kann man - wenn man Aggregation verwendet - beim normalen
-Host einen Link auf den Summary host machen und umgekehrt? Evtl.
-hartkodiert in show_view(), falls die Variable host gesetzt ist?
-
-Multisite: icons: das Erkennen der modified_attributes
-funktioniert nur halb: Wenn man den Ausgangswert wiederherstellt,
-bleibt das Attribut trotzdem modified...
-Kann man die modified attributes beim Nagios so einstellen,
-dass diese *nicht* bei einem Restart gespeichert werden?
-Sonst werden sie nie zurückgesetzt. Oder kann man das evtl.
-mit einem Kommando machen?
-
- Ja => CHANGE_SVC_MODATTR;<host_name>;<service_description>;<value>
- Eine Datei local.mk, die von backup/restore *nicht* beruecksichtigt wird.
-
-Multisite: Bei einer bestehenden View muss man die Datenquelle umstellen
-können, zumindest wenn die neue Datenquelle alle Spalten unterstützt,
-die aktuell verwendet werden (und Filter). Man muss z.B. von hostgroups
-auf hostgroups_merged umstellen können. Alles andere ist viel zu umständlich.
-
-Edit view: die Spaltenzahl ist zu niedrig.
-
-Inventur von Linux-NICs: Nur verwendete Karten monitoren.
-
Doku Windows:
C:\> lodctr /s:c:\counter.txt
==> Holt aus der Registry die Namen und Beschreibungen der
Module: check_mk
Branch: master
Commit: ae21e60e545910a84dd317dd5012cd2e44a4076d
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ae21e60e545910…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Dec 21 12:21:16 2010 +0100
Converted further bugs from LIESMICH.zutun
---
.bugs/11 | 15 +++++++++++++++
.bugs/12 | 24 ++++++++++++++++++++++++
.bugs/13 | 13 +++++++++++++
.bugs/14 | 14 ++++++++++++++
.bugs/15 | 13 +++++++++++++
.bugs/16 | 22 ++++++++++++++++++++++
.bugs/17 | 15 +++++++++++++++
.bugs/config | 1 +
LIESMICH.zutun | 46 ----------------------------------------------
gb | 2 +-
10 files changed, 118 insertions(+), 47 deletions(-)
diff --git a/.bugs/11 b/.bugs/11
new file mode 100644
index 0000000..7a8c61d
--- /dev/null
+++ b/.bugs/11
@@ -0,0 +1,15 @@
+Title: Keine Fehlermeldung bei Connection closed
+Component: wato
+Benefit: 2
+State: open
+Cost: 3
+Date: 2010-12-21 12:09:13
+Class: nastiness
+
+Wenn der Check_MK Agent einen nicht reinlässt (only_from gesetzt),
+dann bekommen man nicht Connection refused, sondern eine
+leere Ausgabe. Check_MK wertet das aber nicht als (richtiger)
+Fehler. WATO zeigt bei der Inventur einfach keine Dienste an.
+Der try-inventory sollte das aber als Fehler behandeln und
+irgendwie anzeigen. Schließlich ist über die Tags ja festgelegt,
+dass vom Agenten Daten kommen sollen.
diff --git a/.bugs/12 b/.bugs/12
new file mode 100644
index 0000000..160ac9f
--- /dev/null
+++ b/.bugs/12
@@ -0,0 +1,24 @@
+Title: Sorry, Operator 4 for lists not implemented.
+Component: livestatus
+Benefit: 1
+State: open
+Cost: 3
+Date: 2010-12-21 12:11:12
+Class: nastiness
+
+Wenn ich im Thruk im Suchfenster einfach Enter drücke, kommt folgende Query bei raus:
+GET services
+Columns: ..
+Filter: description ~~
+Filter: groups >=
+Filter: plugin_output ~~
+Filter: long_plugin_output ~~
+Filter: host_name ~~
+Filter: host_alias ~~
+Filter: host_groups >=
+Filter: comments ~~
+Filter: downtimes ~~
+Or: 2
+Or: 8
+livestatus: Sorry, Operator 4 for lists not implemented.
+Was ist eigentlich Operator 4?
diff --git a/.bugs/13 b/.bugs/13
new file mode 100644
index 0000000..3f7a57c
--- /dev/null
+++ b/.bugs/13
@@ -0,0 +1,13 @@
+Title: Umlaute in SNMP-Daten und Servicedescription
+Component: checks
+Benefit: 1
+State: open
+Cost: 4
+Date: 2010-12-21 12:12:02
+Class: bug
+
+Ein Drucker sendet per SNMP Latin1
+kodierte Wert, z.B. Resttonerbehälter. Daraus baut Check_MK eine
+Servicedesription, die in nagios/conf.d/check_mk_objects.cfg ein
+Latin1-Zeichen enthält. Hier sollte unbedingt UTF-8 verwendet
+werden. Nur: woher kennen wir die Kodierung vom Drucker??
diff --git a/.bugs/14 b/.bugs/14
new file mode 100644
index 0000000..e4513b2
--- /dev/null
+++ b/.bugs/14
@@ -0,0 +1,14 @@
+Title: UTF-8 Kodierung von Eurosymbol geht nicht
+Component: livestatus
+Benefit: 1
+State: open
+Cost: 3
+Date: 2010-12-21 12:12:58
+Class: bug
+
+Livestatus: bestimmte UTF-8 Zeichen werden nicht korrekt kodiert, z.B. "€".
+Um das umzustellen, muss man wahrscheinlich einfach UTF-8 generell
+annehmen.
+
+Die aktuelle Implementierung erkennt halbautomatisch eine Mischung
+aus Latin1 und UTF-8. Kann man bei Nagios einfach UTF-8 verlangen?
diff --git a/.bugs/15 b/.bugs/15
new file mode 100644
index 0000000..9117096
--- /dev/null
+++ b/.bugs/15
@@ -0,0 +1,13 @@
+Title: Counter-Wrap: bei service aggregation fehlen Checks
+Component: core
+Benefit: 1
+State: open
+Cost: 3
+Date: 2010-12-21 12:14:07
+Class: nastiness
+
+Wenn ein Counter Wrap passiert und der check selbst die Exception
+nicht abfängt, dann wird das Ergebnis nicht an Nagios weitergeleitet.
+Der Service wird auch nicht in die aggregierten Services eines Summary Hosts
+aufgenommen. Das kann dazu führen, dass die Anzahl der Services in einem
+Summary-Host variabel ist.
diff --git a/.bugs/16 b/.bugs/16
new file mode 100644
index 0000000..7dd601e
--- /dev/null
+++ b/.bugs/16
@@ -0,0 +1,22 @@
+Title: check_mk -II bei Clustern löscht die Checks nicht
+Component: core
+Benefit: 2
+State: open
+Cost: 3
+Date: 2010-12-21 12:15:32
+Class: bug
+
+Wenn man ein check_mk -II macht, dann werden clustered
+services nicht entfernt. Um das sauber hinzubekommen, muss man sicherstellen,
+dass der Anwender check_mk -II mit *allen* nodes aufgerufen hat. Denn nur
+so darf man die Checks auf dem Cluster entfernen. Sonst kann man nicht sicher
+sein, dass Services wegfliegen, die eigentlich von einem anderem Node kommen.
+Das müsste dann auch micht clustered_services_of funktionieren. Ich muss
+einfach alle Cluster durchgehen, feststellen, ob jeweils alle deren Nodes
+inventurisiert werden, und darf dann die betroffenen Services wegwerfen.
+
+Man könnte auch überlegen, dass man ein -I oder -II auf den Cluster-Namen
+zulässt und dann einfach automatisch anstelle dessen die Nodes inventarisiert
+und zusätzlich die Checks vom Cluster entfernt. Das könnte eine einfache
+Lösung sein. So sorgt der User selbst dafür, dass der Cluster richtig
+behandelt wird.
diff --git a/.bugs/17 b/.bugs/17
new file mode 100644
index 0000000..6be03cb
--- /dev/null
+++ b/.bugs/17
@@ -0,0 +1,15 @@
+Title: Tabelle log bei multisite setup: Chronologie ist falsch
+Component: multisite
+Benefit: 2
+State: open
+Cost: 3
+Date: 2010-12-21 12:17:45
+Class: bug
+
+Die Logereignisse von den verschiedenen Sites werden nicht
+korrekt zusammengemischt. Auch das mit dem Limit wird dann
+blöd interpretiert. Eigentlich braucht man noch ein nachgelagertes
+Limit, dass Multisite selbst anwendet (auch für die Alert statistics).
+Es muss so laufen: Bei einem Limit von 100 bekommt jede Site einzeln
+das Limit von 100. Dann sortiert man. Und dann wendet man nochmal
+das Limit von 100 an.
diff --git a/.bugs/config b/.bugs/config
index fa2ff10..f73a243 100644
--- a/.bugs/config
+++ b/.bugs/config
@@ -15,6 +15,7 @@ components = [
classes = [
"cleanup",
+ "nastiness",
"bug",
"todo",
"phantasm",
diff --git a/LIESMICH.zutun b/LIESMICH.zutun
index b5b5064..1070810 100644
--- a/LIESMICH.zutun
+++ b/LIESMICH.zutun
@@ -1,49 +1,3 @@
-WATO: Wenn ein Agent einen rauswirft (leere Ausgabe, Connection closed), kommt im
-WATO bei der Inventur keine sinnvolle Fehlermeldung.
-
-ich bin mir nicht sicher ob das nun ein Thruk Problem oder ein Livestatus Problem ist. Vermutlich beides :-)
-Wenn ich im Thruk im Suchfenster einfach Enter drücke, kommt folgende Query bei raus:
-GET services
-Columns: ..
-Filter: description ~~
-Filter: groups >=
-Filter: plugin_output ~~
-Filter: long_plugin_output ~~
-Filter: host_name ~~
-Filter: host_alias ~~
-Filter: host_groups >=
-Filter: comments ~~
-Filter: downtimes ~~
-Or: 2
-Or: 8
-livestatus: Sorry, Operator 4 for lists not implemented.
-
-
-Noch ein Problem mit Umlauten: Ein Drucker sendet per SNMP Latin1
-kodierte Wert, z.B. Resttonerbehälter. Daraus baut Check_MK eine
-Servicedesription, die in nagios/conf.d/check_mk_objects.cfg ein
-Latin1-Zeichen enthält. Hier sollte unbedingt UTF-8 verwendet
-werden. Nur: woher kennen wir die Kodierung vom Drucker??
-
-Livestatus: bestimmte UTF-8 Zeichen werden nicht korrekt kodiert, z.B. "€".
-Um das umzustellen, muss man wahrscheinlich einfach UTF-8 generell
-annehmen.
-
-Wenn ein Counter Wrap passiert und der check selbst die Exception
-nicht abfängt, dann wird das Ergebnis nicht an Nagios weitergeleitet.
-Der Service wird auch nicht in die aggregierten Services eines Summary Hosts
-aufgenommen. Das kann dazu führen, dass die Anzahl der Services in einem
-Summary-Host variabel ist.
-
-Cluster-Inventur(1): Wenn man ein check_mk -II macht, dann werden clustered
-services nicht entfernt. Um das sauber hinzubekommen, muss man sicherstellen,
-dass der Anwender check_mk -II mit *allen* nodes aufgerufen hat. Denn nur
-so darf man die Checks auf dem Cluster entfernen. Sonst kann man nicht sicher
-sein, dass Services wegfliegen, die eigentlich von einem anderem Node kommen.
-Das müsste dann auch micht clustered_services_of funktionieren. Ich muss
-einfach alle Cluster durchgehen, feststellen, ob jeweils alle deren Nodes
-inventurisiert werden, und darf dann die betroffenen Services wegwerfen.
-
Cluster-Inventur(2): Wenn ein Service auf der Node sitzt und man die Regeln
zu Clustered services ändert, entfernt ein -II das nicht von der node.
diff --git a/gb b/gb
index 01f9721..559d48f 100755
--- a/gb
+++ b/gb
@@ -134,7 +134,7 @@ def bug_state(bug):
return "%s%-7s%s" % (tty_bold + states.get(state, ""), state, tty_normal)
def list_bug(bug):
- sys.stdout.write("#%04d %-6s %-7s %-10s %-60s\n" %
+ sys.stdout.write("#%04d %-6s %-9s %-10s %-60s\n" %
(int(bug["id"]), bug_state(bug), bug["class"], bug["component"], bug["title"]))
def show_bug(bug):
Module: check_mk
Branch: master
Commit: 603b5d0e845f4923170ed10b5a82617ca7ca3e39
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=603b5d0e845f49…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Dec 21 13:33:33 2010 +0100
gb: allow filtering
---
gb | 26 +++++++++++++++++++++++++-
1 files changed, 25 insertions(+), 1 deletions(-)
diff --git a/gb b/gb
index 559d48f..af7fb6b 100755
--- a/gb
+++ b/gb
@@ -143,9 +143,33 @@ def show_bug(bug):
def main_list(args):
bugs = g_bugs.values()
+ # arguments are tags from state, component and class. Multiple values
+ # in one class are orred. Multiple types are anded.
+ filters = {}
+ for a in args:
+ hit = False
+ for tp, values in [
+ ( "component", components ), ( "state", states ), ( "class", classes ), ]:
+ for v in values:
+ if v.startswith(a):
+ entries = filters.get(tp, [])
+ entries.append(v)
+ filters[tp] = entries
+ hit = True
+ break
+ if hit:
+ break
+ if not hit:
+ bail_out("No such component, state or class: %s" % a)
+
# sort
for bug in bugs:
- if len(args) == 0 or bug["state"].startswith(args[0]):
+ skip = False
+ for tp, entries in filters.items():
+ if bug[tp] not in entries:
+ skip = True
+ break
+ if not skip:
list_bug(bug)