Module: check_mk
Branch: master
Commit: 1c50260a439cf7b2d3645c8ee8226aaf9396da47
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=1c50260a439cf7…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Mar 3 17:18:36 2014 +0100
Removed obsolete white paper
---
doc/drafts/LIESMICH.rule_based_notifications | 182 --------------------------
1 file changed, 182 deletions(-)
diff --git a/doc/drafts/LIESMICH.rule_based_notifications b/doc/drafts/LIESMICH.rule_based_notifications
deleted file mode 100644
index ca2c751..0000000
--- a/doc/drafts/LIESMICH.rule_based_notifications
+++ /dev/null
@@ -1,182 +0,0 @@
-Ausgangspunkt: die "Flexible Notifications" von Check_MK sind einigermaßen
-flexibel und bieten schon mehr Möglichkeiten, als das Standard-Nagios.
-Allerdings gibt es etliche Situationen, in denen man noch mehr Flexibilität
-braucht. Ferner ist es so, dass bei einer größeren Zahl von Benutzern es
-sehr umständlich ist, für jeden Benutzer diese korrekt einzurichten.
-
-Das folgende Konzept soll diese Probleme lösen und für die Zukunft
-ausbaubar sein.
-
-REGELBASIERTE NOTIFIKATIONEN
-----------------------------
-Grundidee: Notifikationen werden - ganz ähnlich zur Event Console -
-von einem Regelwerk abgearbeitet, dass zunächst unabhängig von einem
-konkreten Benutzer ist. Der Ablauf ist dann wie folgt:
-
-1. In Nagios/CMC geschieht ein Host/Service-Alert.
-
-2. Über einen Sammelbenutzer "checkmk-notify", der von allem Kontakt ist,
- wird eine Notifikation ausgelöst.
-
-3. Diese ruft wie gehabt "cmk --notify" auf. Dabei wird in einer Umgebungsvariable
- vom Core auch die Liste der (eigentlichen) Kontakte für diesen Service
- mitgeteilt. Bei diesen Kontakten selbst sind die Notifikationen ausgeschaltet,
- damit sie nicht doppelt versendet werden. Dafür sorgt WATO in der Benutzerverwaltung.
-
-4. Jetzt durchläuft das Ereignis eine Regelkette, die man mit WATO editieren kann.
- *Jede* Regel, die greift, wird ausgeführt. Dadurch wird festgelegt, welcher Benutzer
- über welches Plugin notifiziert wird.
-
-REGELN
-------
-Die Regeln sind ähnlich aufgebaut, wie bei der Event Console und werden ähnlich
-über ein eigenes WATO-Modul gepflegt. Jede Regel hat eine Bedingung und eine
-daraus resultierende Aktion.
-
-Die Bedingung kann formuliert werden über:
-
-Wie bei bestehenden "Flexible Notifications":
-* Ob eine bestimmte Timeperiod gerade aktiv ist
-* Eskalationsnummer
-* Service Level
-* Host/Service Event-Typ (down,up,unreach,OK,CRIT,etc.)
-* Host-Bedingung wie bei den WATO-Regeln, mit Tags und expliziten Ausnahmen
-* Service-Bedingungen wie bei den WATO-Regeln mit Regexen
-
-Neu kommt dazu:
-* Eventuell: Ausgangszustand bzw. kompletter Übergang, also nicht
- nur "bei WARN", sondern bei "CRIT -> WARN".
-* Eventuell: Bedingung über den Typ des Checks (z.B. nur df)
-* Eventuell: enthalten in bestimmter Host oder Servicegruppe
-* Eventuell: enthalten in bestimmter Kontaktgruppe
-* Eventuell: bestimmter Kontakt ist zuständig
-* Eventuell: Wert von bestimmter Custom-Variable
-
-Wenn die Bedingung zutrifft, legt die Regel eine Aktion fest:
-
-* Wer soll Notifiziert werden?
- a) alle Kontakte des Hosts/Services
- b) explizite Liste von Kontakten
- c) Mitglieder einer bestimmten Kontaktgruppe
- d) Email/Pager-Adressen, die nicht Kontakt sind
- e) alle Kontakte
-
-* Mit welchem Plugin soll notifiziert werden?
-
-* Die Parameter dieses Plugins
-
-Die Aktion wird aber nicht sofort ausgeführt, sondern zunächst in
-einer Aktionsliste gespeichert. Diese ist eine Liste von Tupeln
-mit dem Aufbau
-
- Kontakt, Plugin, Parameter
-
-Und eine Checkbox: [ ] Kann vom Benutzer deaktiviert werden.
-(siehe Auschlussregeln)
-
-
-AUSSCHLUSS-REGELN
------------------
-Um besser Ausnahmen behandeln zu können, kann man Ausschluss-Regeln
-definieren. Hierzu wird die Regel wie gehabt aufgebaut, nur wird
-jetzt festgelegt, wer *nicht* notifiziert werden kann. Dabei ist die
-Reihenfolge der Regeln entscheidend. Beispiel:
-
-Regel 1 ...
-Regel 2 ...
-Regel 3 -> löst Notifikation an A und B mit Plugin P aus
-Regel 4 ...
-Regel 5 -> legt fest, dass B *nicht* über Plugin P notifiziert wird
-
---> Nur A wird mit P notifiziert.
-
-Achtung: Da - anders als z.B. bei der Event Console - immer *alle* Regeln
-ausgewertet werden, muss man hier die Ausnahmen *nach* den allgemeinen
-Regeln definieren. So können spätere Regeln frühere immer wieder revidieren.
-
-Auch bei Sperrregeln kann man ein Plugin auswählen. Dann werden nur die
-Notifikationen mit diesem Plugin gelöscht (um z.B. keine SMS zu bekommen).
-Wenn man kein Plugin auswählt, dann werden alle Notifikationen gelöscht.
-
-Positive Regeln und Ausschlussreglen können sich beliebig Abwechseln.
-Die Reihenfolge ist frei definierbar. Damit kann man z.B. erstmal alles
-zulassen, dann für eine Gruppe von Benutzern wieder abklemmen und
-dann für einen Benutzer doch wieder aktivieren.
-
-
-BENUTZER-REGELN
----------------
-Damit trotz allem Benutzer individuell etwas konfigurieren können, kann
-jeder Benutzer eigenen Regeln definieren. Diese sind analog aufgebaut.
-Allerdings ist bei der Frage *wer* notifiziert werden soll, nur der
-eigene Kontakt auswählbar. Ausschlussregeln sind aber möglich. Die Benutzer-Regeln
-werden immer *nach* den globalen Regeln ausgewertet.
-
-Der Benutzer kann somit:
-
-- Notifikationen hinzufügen
-- durch globale Regeln erzeugte Notifikationen abklemmen
-
-Merke: Der Benutzer kann so auch Notifikationen "abbonieren" für
-Hosts/Services, für die er im Nagios kein Kontakt ist!
-
-Notifikationen, die der Admin gesperrt hat (siehe oben), können vom
-Benutzer nicht abgeklemmt werden.
-
-
-
-FALLBACK
---------
-Wenn auf eine Notifikationsereignis keine einzige Regel greift, so wird
-stattdessen eine Email ein eine global einstellbare Default-Adresse
-versendet.
-
-
-UMSETZUNG IN WATO
------------------
-Im WATO sieht das ganze neue Konzept dann so aus:
-
-* Über eine neue globale Option werden die regelbasierten
- Notifikationen eingeschaltet. Diese sind zunächst per Default aus,
- später (1.4.0) dann an.
-
-* Wenn sie an sind, dann ändert sich der Notifikations-Abschnitt
- bei den Benutzereinstellungen. Der aktuelle Block verschwindet
- komplett. Anstelle dessen kommt man über einen neuen Knopf auf
- eine eigene neue Seite, in der man die individuellen Regeln des
- Benutzers festlegen kann. Ein-/Ausschalten kann man die Notifikationen
- hier nicht. Das geht dann bei Bedarf über eine Regel.
-
-* Wenn bereits flexible Notifications konfiguriert waren, werden
- diese nicht automatisch in regelbasiert konvertiert. Die Einstellungen
- bleiben aber latent vorhanden für den Fall, dass man wieder zurückschaltet.
-
-* Ein neues WATO-Modul zeigt die globalen Notifikations-Regeln. Das
- gleiche Modul wird auch für die Benutzer-Individuellen Regeln leicht
- aberwandelt verwendet.
-
- In diesem Modul kann man Regeln anlegen, ändern, löschen und umsortieren -
- analog zur Event Console. Eventuell könnte man ein Simulationsfeld machen,
- mit dem man eine Notifikation ausprobieren kann. Das ist allerdings deutlich
- aufwendiger, als bei der EC, weil eine Notifikation deutlich mehr Datenfelder
- hat und die Logik dann in der GUI dupliziert werden muss.
-
-
-UMSETZUNG IN CHECK_MK
----------------------
-Das cmk --notify muss automatisch erkennen, dass es die regelbasierte
-Notifikation verwendet werden soll. Das kann z.B. am Kontaktnamen
-checkmk-notify festgemacht werden. Es führt dann das Regelwerk aus. Dieses
-ist zum einen in einer main.mk-Variable gespeichert, zum anderen in den
-individuellen contacts-Einstellungen. Es müssen bei jeder Notifikation
-alle Regeln aller Kontakte ausgeführt werden!
-
-im notify.log muss man bei entsprechendem Level wie bisher auch genau
-erklärt bekommen, warum jetzt welche Notifikation erzeugt oder verhindert
-wurde.
-
-Bei der Konfigerzeugung für Nagios/CMC muss man einen speziellen
-Benutzer anlegen, der für alles Kontakt ist.
-
-===> ACHTUNG: Es gibt jetzt ein englisches Dokument, das etwas aktueller
-ist und auch noch etwas zu den Bulk-Notifications schreibt.
Module: check_mk
Branch: master
Commit: cde60adac5a71eddea3f25a85eb883ba424fa01c
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=cde60adac5a71e…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Mar 3 16:47:02 2014 +0100
FIX Fix multiple groups with same tag when grouping hosts after a tag
When you use the value of a specific host tag group for grouping in a view,
you got multiple times the same group. This has been fixed.
---
.werks/712 | 10 ++++++++++
ChangeLog | 1 +
web/htdocs/views.py | 8 +++++++-
web/plugins/views/painters.py | 9 ++++++++-
4 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/.werks/712 b/.werks/712
new file mode 100644
index 0000000..57b491f
--- /dev/null
+++ b/.werks/712
@@ -0,0 +1,10 @@
+Title: Fix multiple groups with same tag when grouping hosts after a tag
+Level: 1
+Component: multisite
+Class: fix
+State: unknown
+Version: 1.2.5i1
+Date: 1393861572
+
+When you use the value of a specific host tag group for grouping in a view,
+you got multiple times the same group. This has been fixed.
diff --git a/ChangeLog b/ChangeLog
index daea4b1..f1ae20a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -242,6 +242,7 @@
* 0670 FIX: LDAP: Fixed sync when non lower case attributes are configured...
* 0671 FIX: LDAP: Disable logging of password changes received from LDAP
* 0558 FIX: availability: fixed exception on specific filter settings...
+ * 0712 FIX: Fix multiple groups with same tag when grouping hosts after a tag...
WATO:
* 0308 Multisite can now set rotation view permissions for NagVis...
diff --git a/web/htdocs/views.py b/web/htdocs/views.py
index 934cbfa..1440bd1 100644
--- a/web/htdocs/views.py
+++ b/web/htdocs/views.py
@@ -2664,7 +2664,10 @@ def group_value(row, group_painters):
for p in group_painters:
groupvalfunc = p[0].get("groupby")
if groupvalfunc:
- group.append(groupvalfunc(row))
+ if "args" in p[0]:
+ group.append(groupvalfunc(row, *p[0]["args"]))
+ else:
+ group.append(groupvalfunc(row))
else:
for c in p[0]["columns"]:
group.append(row[c])
@@ -2677,6 +2680,9 @@ def get_painter_option(name):
return opt.get("value", opt['valuespec'].default_value())
def get_host_tags(row):
+ if "host_custom_variables" in row:
+ return row["host_custom_variables"].get("TAGS", "")
+
for name, val in zip(row["host_custom_variable_names"],
row["host_custom_variable_values"]):
if name == "TAGS":
diff --git a/web/plugins/views/painters.py b/web/plugins/views/painters.py
index 83d774b..69f6c45 100644
--- a/web/plugins/views/painters.py
+++ b/web/plugins/views/painters.py
@@ -1936,6 +1936,12 @@ def paint_host_tag(row, tgid):
return "", t[1]
return "", _("N/A")
+# Use title of the tag value for grouping, not the complete
+# dictionary of custom variables!
+def groupby_host_tag(row, tgid):
+ cssclass, title = paint_host_tag(row, tgid)
+ return title
+
for entry in config.wato_host_tags:
tgid = entry[0]
tit = entry[1]
@@ -1944,7 +1950,8 @@ for entry in config.wato_host_tags:
multisite_painters["host_tag_" + tgid] = {
"title" : _("Host tag:") + ' ' + tit,
"short" : tit,
- "columns" : [ "host_custom_variable_names", "host_custom_variable_values" ],
+ "columns" : [ "host_custom_variables" ],
"paint" : paint_host_tag,
+ "groupby" : groupby_host_tag,
"args" : [ tgid ],
}
Module: check_mk
Branch: master
Commit: a57bc69c3e35b2f11ea5788c45934e6a4e2ebbe8
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=a57bc69c3e35b2…
Author: Bastian Kuhn <bk(a)mathias-kettner.de>
Date: Mon Mar 3 15:56:44 2014 +0100
Removed caching function in Windows Update agent plugin
The current Windows Agent Versions has a build in caching mechanism. Cause of this the buildin caching features from windows_update.vbs are now removed. Please make shure that caching is activated in the check_mk.ini file.
A example config can look like this:
[plugin]
cache_age windows_updates.vbs = 3600
---
.werks/138 | 12 +++
ChangeLog | 2 +
agents/windows/plugins/windows_updates.vbs | 119 ++++++++++------------------
3 files changed, 55 insertions(+), 78 deletions(-)
diff --git a/.werks/138 b/.werks/138
new file mode 100644
index 0000000..a1dcfd6
--- /dev/null
+++ b/.werks/138
@@ -0,0 +1,12 @@
+Title: Removed caching function in Windows Update agent plugin
+Level: 1
+Component: checks
+Version: 1.2.5i1
+Date: 1393858396
+Class: incomp
+
+The current Windows Agent Versions has a build in caching mechanism. Cause of this the buildin caching features from windows_update.vbs are now removed. Please make shure that caching is activated in the check_mk.ini file.
+
+A example config can look like this:
+[plugin]
+ cache_age windows_updates.vbs = 3600
diff --git a/ChangeLog b/ChangeLog
index 07491e3..e1e009c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -98,6 +98,8 @@
* 0704 windows_os_bonding: new check for bonding interfaces on windows...
* 0562 esx_vsphere_vm.guest_tools: new check to monitor guest tools status...
* 0674 brocade_fcport: Now supporting interface speed of 16 Gbit (just discovered in the wild)
+ * 0138 Removed caching function in Windows Update agent plugin...
+ NOTE: Please refer to the migration notes!
* 0103 FIX: services: Fixed bug with service inventory defined in main.mk...
* 0299 FIX: borcade_mlx_fan: Prettified output, handling "other" state now
* 0300 FIX: cisco_fru_power: Trying not to inventorize not plugged in FRUs...
diff --git a/agents/windows/plugins/windows_updates.vbs b/agents/windows/plugins/windows_updates.vbs
index 2a8aa70..b446d81 100644
--- a/agents/windows/plugins/windows_updates.vbs
+++ b/agents/windows/plugins/windows_updates.vbs
@@ -13,6 +13,9 @@
' Based on code here: http://www.monitoring-portal.org/wbb/index.php?page=Thread&threadID=23509
' Spawning a separate process to produce cached result (as in above forum discussion) caused me
' some issues, so I went for a simpler solution using only one script
+'
+' Updated by Bastian Kuhn, 2014-03-03: Removed all caching functions cause the current agent
+' has a native caching support. Make shure that you activate caching for this script in check_mk.ini
' -----------------------------------------------------------------------------------------
Option Explicit
@@ -36,12 +39,9 @@ end function
Dim result, reboot, numImp, numOpt, important, opti
Dim updtSearcher, colDownloads, objEntry
-Dim objFSO, objFile
+Dim objFSO, stdout
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
-
-Dim lastModificationDate
-Dim updateNeeded
-updateNeeded = True
+Set stdout = objFSO.GetStandardStream(1)
Dim WSHShell
Set WSHShell = CreateObject("WScript.Shell")
@@ -49,86 +49,49 @@ Set WSHShell = CreateObject("WScript.Shell")
Dim RebootTime
Dim RegPath
-Dim scriptname, scriptpath, strFolder
-
-scriptname = Wscript.ScriptFullName
-scriptpath = objFSO.getparentfoldername(scriptname)
-
-strFolder = scriptpath & "\windows-update"
-set objFSO = createobject("Scripting.FileSystemObject")
-
-if objFSO.FolderExists(strFolder) = False then
- objFSO.CreateFolder strFolder
-end if
-
-Dim ts, TextLine
-Dim rndFudge
-
-Randomize
-rndFudge = Int(8 * 60 * Rnd) ' random fudge factor for test (0 to 8 hrs)
-
-If objFSO.FileExists(scriptpath &"\windows-update\windows_updates-log.txt") Then
- lastModificationDate = objFSO.GetFile(scriptpath &"\windows-update\windows_updates-log.txt").DateLastModified
- If DateDiff("n", lastModificationDate, now) < ((60*24)-rndFudge) Then ' 1 day minus 0 to 8 hours
- updateNeeded = False
- End If
+If CreateObject("Microsoft.Update.AutoUpdate").DetectNow <> 0 Then
+ stdout.WriteLine("<<<windows_updates>>>")
+ WScript.Quit()
End If
-If updateNeeded Then
- Set objFile = objFSO.CreateTextFile(scriptpath &"\windows-update\windows_updates-log.txt")
+Set updtSearcher = CreateObject("Microsoft.Update.Session").CreateUpdateSearcher
- If CreateObject("Microsoft.Update.AutoUpdate").DetectNow <> 0 Then
- objFile.WriteLine("<<<windows_updates>>>")
- WScript.Quit()
- End If
-
- Set updtSearcher = CreateObject("Microsoft.Update.Session").CreateUpdateSearcher
+RegPath = "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\Windows\CurrentVersion\WindowsUpdate\Auto Update\"
+RebootTime = ReadFromRegistry(RegPath & "NextFeaturedUpdatesNotificationTime","no_key")
- RegPath = "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\Windows\CurrentVersion\WindowsUpdate\Auto Update\"
- RebootTime = ReadFromRegistry(RegPath & "NextFeaturedUpdatesNotificationTime","no_key")
+reboot = 0
+numImp = 0
+numOpt = 0
- reboot = 0
- numImp = 0
- numOpt = 0
-
- If CreateObject("Microsoft.Update.SystemInfo").RebootRequired Then
- reboot = 1
- End If
+If CreateObject("Microsoft.Update.SystemInfo").RebootRequired Then
+ reboot = 1
+End If
- Set result = updtSearcher.Search("IsInstalled = 0 and IsHidden = 0")
- Set colDownloads = result.Updates
-
- For Each objEntry in colDownloads
- if objEntry.AutoSelectOnWebSites Then
- if numImp = 0 Then
- important = objEntry.Title
- else
- important = important & "; " & objEntry.Title
- End If
- numImp = numImp + 1
+Set result = updtSearcher.Search("IsInstalled = 0 and IsHidden = 0")
+Set colDownloads = result.Updates
+For Each objEntry in colDownloads
+
+ if objEntry.AutoSelectOnWebSites Then
+ if numImp = 0 Then
+ important = objEntry.Title
+ else
+ important = important & "; " & objEntry.Title
+ End If
+ numImp = numImp + 1
+ Else
+ If numOpt = 0 Then
+ opti = objEntry.Title
Else
- If numOpt = 0 Then
- opti = objEntry.Title
- Else
- opti = opti & "; " & objEntry.Title
- End If
- numOpt = numOpt + 1
- End If
- Next
-
- objFile.WriteLine("<<<windows_updates>>>")
- objFile.WriteLine(reboot & " " & numImp & " " & numOpt)
- objFile.WriteLine(important)
- objFile.WriteLine(opti)
- objFile.WriteLine(RebootTime)
- objFile.Close
-
-End If
+ opti = opti & "; " & objEntry.Title
+ End If
+ numOpt = numOpt + 1
+ End If
-Set ts = objFSO.GetFile(scriptpath &"\windows-update\windows_updates-log.txt").OpenAsTextStream(1, -2)
-Do While ts.AtEndOfStream <> True
- WScript.Echo ts.ReadLine
-Loop
-ts.Close
+Next
+ stdout.WriteLine("<<<windows_updates>>>")
+ stdout.WriteLine(reboot & " " & numImp & " " & numOpt)
+ stdout.WriteLine(important)
+ stdout.WriteLine(opti)
+ stdout.WriteLine(RebootTime)
WScript.Quit()
Module: check_mk
Branch: master
Commit: 3066033e3282a928fa01c5e46fd92939ac26ec97
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=3066033e3282a9…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Mar 3 14:23:05 2014 +0100
New rules based notifications
Check_MK comes now with a completely new notification system called <i>Rule Based
Notifications</i>. While keeping the flexibility of the <i>Flexible Notifications</i>
it is easier to configure and at the same time even more flexible. Please
refer to <a href="http://mathias-kettner.com/checkmk_rbn.html">the online documentation</a>
for details.
Rule based notifications are turned off per default. They do not harm you in
any way as long as you do not enable them. If you turn them on then your current
flexible notification settings are <i>not</i> being converted!
---
.werks/711 | 16 ++
ChangeLog | 1 +
doc/drafts/README.rule_based_notifications | 274 ----------------------------
3 files changed, 17 insertions(+), 274 deletions(-)
Diff: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commitdiff;h=3066033e32…
Module: check_mk
Branch: master
Commit: 95fbc4d11f426e950c99a362f08aa7dbda9452e0
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=95fbc4d11f426e…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Mar 3 13:11:43 2014 +0100
Create a history entry for events that failed their target count
When a counting rule sees the first matching message, then an entry in the history
is logged with the type <tt>NEW</tt>. When the event did not reach the configured
number of required message within the configured time then no history entry was
logged. Now an entry of type <tt>COUNTFAILED</tt> is being logged and you can see
the count of messages received so far in that entry.
---
.werks/710 | 12 ++++++++++++
ChangeLog | 6 ++----
mkeventd/bin/mkeventd | 3 +++
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/.werks/710 b/.werks/710
new file mode 100644
index 0000000..b7dd48c
--- /dev/null
+++ b/.werks/710
@@ -0,0 +1,12 @@
+Title: Create a history entry for events that failed their target count
+Level: 1
+Component: ec
+Version: 1.2.5i1
+Date: 1393848610
+Class: feature
+
+When a counting rule sees the first matching message, then an entry in the history
+is logged with the type <tt>NEW</tt>. When the event did not reach the configured
+number of required message within the configured time then no history entry was
+logged. Now an entry of type <tt>COUNTFAILED</tt> is being logged and you can see
+the count of messages received so far in that entry.
diff --git a/ChangeLog b/ChangeLog
index 58dcab2..07491e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -190,12 +190,9 @@
* 0719 FIX: postfix_mailq: fix Linux agent in case of ssmtp being installed
* 0584 FIX: agent_vsphere: special agent now handles non-standard https port correctly...
* 0585 FIX: check_mk_agent.linux: more efficient handling of cups printer queues...
-<<<<<<< HEAD
- * 0587 FIX: if64: problems resolved when running as a clustered service...
-=======
* 0703 FIX: brocade_mlx: omit inventory of cpu and memory on more states...
* 0137 FIX: Fixed printer_pages...
->>>>>>> 9a0fafc30f54e0e7f2af9ac1fa7a41136d2019d1
+ * 0587 FIX: if64: problems resolved when running as a clustered service...
Multisite:
* 0371 Added log class filter to hostsvcevents view
@@ -323,6 +320,7 @@
Event Console:
* 0301 Handling messages of special syslog format correctly...
* 0388 Moved Event Console related settings to own settings page...
+ * 0710 Create a history entry for events that failed their target count...
* 0303 FIX: Old log entries were shown in event history first...
* 0304 FIX: Escaping several unwanted chars from incoming log messages...
* 0089 FIX: CSV export of event console was broken...
diff --git a/mkeventd/bin/mkeventd b/mkeventd/bin/mkeventd
index 5b87b74..b00f40f 100755
--- a/mkeventd/bin/mkeventd
+++ b/mkeventd/bin/mkeventd
@@ -1187,11 +1187,14 @@ class EventServer:
if event["count"] == 0:
log("Rule %s, event %d: again without allowed rate, dropping event" %
(rule["id"], event["id"]))
+ log_event_history(event, "COUNTFAILED")
events_to_delete.append(nr)
+
else: # algorithm 'interval'
if event["first"] + count["period"] <= now: # End of period reached
log("Rule %s: reached only %d out of %d events within %d seconds. "
"Resetting to zero." % (rule["id"], event["count"], count["count"], count["period"]))
+ log_event_history(event, "COUNTFAILED")
events_to_delete.append(nr)
# Handle delayed actions