Module: check_mk
Branch: master
Commit: cd3c8da303334f90d8f2ff1ff71cea8ca18cd361
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=cd3c8da303334f…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Nov 29 15:49:28 2010 +0100
wato: create logfile wato-file specific
---
LIESMICH.wato | 56 ++++++---------------------------------------------
web/htdocs/wato.py | 22 +++++++++++---------
2 files changed, 19 insertions(+), 59 deletions(-)
diff --git a/LIESMICH.wato b/LIESMICH.wato
index 1e7281f..7f1b8da 100644
--- a/LIESMICH.wato
+++ b/LIESMICH.wato
@@ -1,56 +1,14 @@
-* Es fehlt noch SNMP. Keine Ahnung, wie ich das am besten umsetze
-
-Inventursteuerung heute
-
-check_mk -I tcp --> Alle TCP Checks
-check_mk -I snmp --> Alle SNMP Checks
-
-Inventurcheck: Prüft alle TCP Checks (falls tag snmp fehlt) und
-alle SNMP Checks, von denen der Host schon mindestens einen hat.
--> irgendwie doof.
-
-Besser wäre es, systematischer Tags einzuführen:
-
-snmp: Host wird per SNMP angesprochen
-tcp: Host wird per TCP angesprochen
-ping: Host wird nur angepingt (kein TCP und kein SNMP)
-tcp+snmp: Host wird per TCP und SNMP angesprochen
-
-gar kein Tag: gleichbedeutend mit tcp
-
-der Inventurcheck wird das berücksichtigen und gleichzeitig
-die Beschränkung aufheben, dass nur nach schon bestehenden
-Checks gesucht wird.
-
-
-Umsetzung:
-
-Erst Funktionen:
-
-is_snmp_host() --> hat Tag 'snmp'
-is_tcp_host() --> hat *nicht* 'ping' oder 'snmp' oder hat
'tcp'
-is_ping_host() --> hat 'ping' ( bzw. ist weder snmp_host noch tcp_host )
-
-Beim Generieren der Services wird aber der 'PING' unabhängig von
-den Tags erzeugt, sondern immer dann, wenn kein Service eingerichtet ist.
-
-Jetzt könnte man den Aufruf von check_mk -I abwandeln. Man könnte das
-tcp oder snmp weglassen und stattdessen nach den Tags gehen.
-
-check_mk -I zbghora50 --> diesen Host inventurisieren, je nach
Tag-Lage
-check_mk --checks df,mem.used -I zbghora50 --> Checktypen explizit angeben
-check_mk --checks snmp -I zbghora50 --> Alle snmp checks (Warnung, falls Tags
snmp bei dem Host fehlt)
-
-Die Konfigurationsprüfung prüft folgendes:
-
-Wenn ein Host SNMP Checks hat, dann muss es auch ein SNMP-Host sein.
-Gleiches gilt für TCP.
-
-WICHTIG FUER DIE DOKU:
SNMP Hosts *müssen* das Tag snmp bekommen - sonst geht garnichts. Keine Inventur.
Auch nicht mit expliziten Checks. Nichts.
* Doku
+* Logfiles pro Dateiname
+* Berechtigungen für nicht-OMD bzw. OMD 'shared'
+ * check_mk --automation als welcher Benutzer?
+ * check_mk -R ==> check_mk --automation restart
+ * Rechte für die conf.d/hirni.mk
+
+
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 5593e2c..55bebce 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -1,9 +1,6 @@
#!/usr/bin/python
# encoding: utf-8
-# TODO: Ein Logfile pro filename anlegen, z.B. mit Unterverzeichnis
-# var/web/wato/windows/audit.log
-
# -----------------------------------------------------------------
# ___ _ _
# |_ _|_ __ (_) |_
@@ -29,7 +26,7 @@ config.declare_permission("use_wato",
"Only with this permission, users are allowed to use Check_MK web configuration
GUI.",
[ "admin", ])
-conf_dir = defaults.var_dir + "/wato/"
+conf_dir = defaults.var_dir + "/wato"
# -----------------------------------------------------------------
# __ __ _
@@ -159,14 +156,15 @@ def mode_index(phase):
odd = odd == "odd" and "even" or "odd"
- html.write('<tr class="data %s0"><td><a
href="%s">%s</a></td>' %
- (odd, edit_url, hostname))
+ html.write('<tr class="data %s0">' % odd)
+
html.write("<td>")
html.buttonlink(edit_url, "Edit")
html.buttonlink(services_url, "Services")
html.buttonlink(clone_url, "Clone")
html.buttonlink(delete_url, "Delete")
html.write("</td>")
+ html.write('<td><a
href="%s">%s</a></td>' % (edit_url, hostname))
html.write("<td>%s</td>" % (alias and alias or
""))
tdclass = ""
if not ipaddress:
@@ -452,9 +450,11 @@ def mode_inventory(phase, firsttime):
#
# -----------------------------------------------------------------
-def log_entry(hostname, action, message, g_filename):
+def log_entry(hostname, action, message, logfilename):
make_nagios_directory(conf_dir)
- log_file = conf_dir + g_filename
+ log_dir = conf_dir + "/" + g_filename
+ make_nagios_directory(log_dir)
+ log_file = log_dir + "/" + logfilename
create_user_file(log_file, "a").write("%d %s %s %s\n" %
(int(time.time()), html.req.user, action, message))
@@ -469,12 +469,12 @@ def log_pending(hostname, what, message):
def log_commit_pending():
- pending = conf_dir + "pending.log"
+ pending = conf_dir + "/" + g_filename + "/pending.log"
if os.path.exists(pending):
os.remove(pending)
def parse_audit_log(what):
- path = "%s%s.log" % (conf_dir, what)
+ path = "%s/%s/%s.log" % (conf_dir, g_filename, what)
if os.path.exists(path):
entries = []
for line in file(path):
@@ -573,6 +573,8 @@ def check_filename():
filename = html.var("filename")
if not filename:
raise MKGeneralException("You called this page without a filename!")
+ if '/' in filename:
+ raise MKGeneralException("You called this page with an invalid
filename!")
# Get alias (title) for filename
title = None