Module: check_mk
Branch: master
Commit: 975b8dd0705611ca7d14cec7d34ceec3137a7f15
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=975b8dd0705611…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Mar 10 17:33:09 2011 +0100
FIX: setup.sh: fix optical output of summary
---
scripts/setup.sh | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/scripts/setup.sh b/scripts/setup.sh
index c1600f5..fb93c21 100755
--- a/scripts/setup.sh
+++ b/scripts/setup.sh
@@ -285,19 +285,19 @@ files here (currently only the logwatch extension needs a configuration file)"
ask_title "Integration with Nagios"
-ask_dir -d nagiosuser nagios $(id -un) $OMD_SITE "Name of Nagios user" \
+ask_dir -d nagiosuser nagios $(id -un) "$OMD_SITE" "Name of Nagios user" \
"The working directory for check_mk contains several subdirectories
that need to be writable by the Nagios user (which is running check_mk
in check mode). Please specify the user that should own those
directories"
-ask_dir -d wwwuser www-data www-data $OMD_SITE "User of Apache process" \
+ask_dir -d wwwuser www-data www-data "$OMD_SITE" "User of Apache process" \
"Check_MK WATO (Web Administration Tool) needs a sudo configuration,
such that Apache can run certain commands as $(id -un). If you specify
the correct user of the apache process here, then we can create a valid
sudo configuration for you later:"
-ask_dir -d wwwgroup nagios $(id -un) $OMD_SITE "Common group of Nagios+Apache" \
+ask_dir -d wwwgroup nagios $(id -un) "$OMD_SITE" "Common group of Nagios+Apache" \
"Check_mk creates files and directories while running as $nagiosuser.
Some of those need to be writable by the user that is running the webserver.
Therefore a group is needed in which both Nagios and the webserver are
Module: check_mk
Branch: master
Commit: 8f451955eba518a3bcd8c3900c40522c4dd43ba6
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=8f451955eba518…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Mar 10 13:47:05 2011 +0100
Updated bug entries
---
.bugs/171 | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/.bugs/171 b/.bugs/171
index 5f32b36..7f62105 100644
--- a/.bugs/171
+++ b/.bugs/171
@@ -1,10 +1,11 @@
Title: SNMP scan should be able to use snmpgetnext
Component: core
+State: done
+Class: feature
+Date: 2011-03-02 10:27:12
Benefit: 2
-State: open
Cost: 3
-Date: 2011-03-02 10:27:12
-Class: feature
+Fun: 0
In some cases the scan-function does not work well because the
OID it asks is unclear. Here might be a solution:
@@ -22,3 +23,7 @@ OID it asks is unclear. Here might be a solution:
> Das duerfte das patchen in grenzen halten und sonst hoffentlich nichts
> kaputt machen.
+
+2011-03-10 13:47:01: changed state open -> done
+Is now done with oid(".1.3.6.1.4.1.9.9.13.1.3.1.3.*"). Also
+works with stored walks.
Module: check_mk
Branch: master
Commit: a2af39acd90529faf92412e2ee2df49d0f071824
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=a2af39acd90529…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Mar 10 13:46:21 2011 +0100
snmp scanning handles now cases with dynamic indices
---
ChangeLog | 11 ++++++++++-
checks/cisco_temp | 2 +-
checks/cisco_temp_perf | 2 +-
checks/if | 3 ++-
checks/if64 | 2 +-
modules/check_mk.py | 25 +++++++++++++++++++------
modules/snmp.py | 12 +++++++++++-
7 files changed, 45 insertions(+), 12 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 5f3498b..25a86fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,8 @@
1.1.11i1:
+ Core, Setup, etc.:
+ * SNMP scan functions can now call oid(".1.3.6.1.4.1.9.9.13.1.3.1.3.*")
+ That will return the *first* OID beginning with .1.3.6.1.4.1.9.9.13.1.3.1.3
+
Multisite:
* Added snmp_uptime and uptime perfometers
@@ -10,7 +14,12 @@
Checks & Agents:
* printer_supply: Changed order of tests. When a printer reports -3 this
- is used before the check if maxlevel is -2.
+ is used before the check if maxlevel is -2.
+ * if/if64: scan function now also detects devices where the first port
+ has not the index 1
+ * cisco_temp/cisco_temp_perf: scan function handles sensors not beginning
+ with index 1
+
1.1.10:
Core, Setup, etc.:
diff --git a/checks/cisco_temp b/checks/cisco_temp
index 6b88e2c..5232e4e 100644
--- a/checks/cisco_temp
+++ b/checks/cisco_temp
@@ -85,4 +85,4 @@ snmp_info["cisco_temp"] = \
snmp_scan_functions["cisco_temp"] = \
lambda oid: "cisco" in oid(".1.3.6.1.2.1.1.1.0").lower() and \
- not oid(".1.3.6.1.4.1.9.9.13.1.3.1.3.1")
+ not oid(".1.3.6.1.4.1.9.9.13.1.3.1.3.*")
diff --git a/checks/cisco_temp_perf b/checks/cisco_temp_perf
index 6111589..aa042ae 100644
--- a/checks/cisco_temp_perf
+++ b/checks/cisco_temp_perf
@@ -85,4 +85,4 @@ check_info['cisco_temp_perf'] = (check_cisco_temp_perf, "%s", 1, inventory_cisc
snmp_info['cisco_temp_perf'] = ( ".1.3.6.1.4.1.9.9.13.1.3.1", [ 2, 3, 4, 6 ] ) # CISCO-SMI
snmp_scan_functions['cisco_temp_perf'] = \
lambda oid: "cisco" in oid(".1.3.6.1.2.1.1.1.0").lower() and \
- oid(".1.3.6.1.4.1.9.9.13.1.3.1.3.1") != None
+ oid(".1.3.6.1.4.1.9.9.13.1.3.1.3.*") != None
diff --git a/checks/if b/checks/if
index 3a35a55..1e9ffc3 100644
--- a/checks/if
+++ b/checks/if
@@ -61,4 +61,5 @@ snmp_info['if'] = \
# check if number of network interfaces (IF-MIB::ifNumber.0) is at least 2
snmp_scan_functions['if'] = \
- lambda oid: saveint(oid(".1.3.6.1.2.1.2.1.0")) >= 2 and not oid('.1.3.6.1.2.1.31.1.1.1.6.1') # use if64 if possible
+ lambda oid: saveint(oid(".1.3.6.1.2.1.2.1.0")) >= 2 and \
+ not oid('.1.3.6.1.2.1.31.1.1.1.6.*') # use if64 if possible
diff --git a/checks/if64 b/checks/if64
index 6797c24..6fa29a2 100644
--- a/checks/if64
+++ b/checks/if64
@@ -58,4 +58,4 @@ snmp_info['if64'] = \
# check if number of network interfaces (IF-MIB::ifNumber.0) is at least 2
snmp_scan_functions['if64'] = \
- lambda oid: not not oid(".1.3.6.1.2.1.31.1.1.1.6.1")
+ lambda oid: oid(".1.3.6.1.2.1.31.1.1.1.6.*") != None
diff --git a/modules/check_mk.py b/modules/check_mk.py
index bd5f730..b5d1ee8 100755
--- a/modules/check_mk.py
+++ b/modules/check_mk.py
@@ -514,9 +514,6 @@ def aggregated_service_name(hostname, servicedesc):
# Returns command lines for snmpwalk and snmpget including
# options for authentication. This handles communities and
# authentication for SNMP V3. Also bulkwalk hosts
-def snmp_get_command(hostname):
- return snmp_base_command('get', hostname)
-
def snmp_walk_command(hostname):
return snmp_base_command('walk', hostname)
@@ -537,6 +534,8 @@ def snmp_base_command(what, hostname):
credentials = snmp_credentials_of(hostname)
if what == 'get':
command = 'snmpget'
+ elif what == 'getnext':
+ command = 'snmpgetnext'
else:
command = 'snmpbulkwalk'
@@ -599,6 +598,10 @@ def is_usewalk_host(hostname):
return in_binary_hostlist(hostname, usewalk_hosts)
def get_single_oid(hostname, ipaddress, oid):
+ # New in Check_MK 1.1.11: oid can end with ".*". In that case
+ # we do a snmpgetnext and try to find an OID with the prefix
+ # in question. The *cache* is working including the X, however.
+
global g_single_oid_hostname
global g_single_oid_cache
@@ -616,8 +619,15 @@ def get_single_oid(hostname, ipaddress, oid):
else:
return None
- command = snmp_get_command(hostname) + \
- " -On -OQ -Oe -Ot %s %s 2>/dev/null" % (ipaddress, oid)
+ if oid.endswith(".*"):
+ oid_prefix = oid[:-2]
+ commandtype = "getnext"
+ else:
+ oid_prefix = oid
+ commandtype = "get"
+
+ command = snmp_base_command(commandtype, hostname) + \
+ " -On -OQ -Oe -Ot %s %s 2>/dev/null" % (ipaddress, oid_prefix)
try:
if opt_debug:
sys.stdout.write("Running '%s'\n" % command)
@@ -632,6 +642,10 @@ def get_single_oid(hostname, ipaddress, oid):
or value.startswith('No Such Object available') or value.startswith('No Such Instance currently exists'):
value = None
+ # In case of .*, check if prefix is the one we are looking for
+ if commandtype == "getnext" and not item.startswith(oid_prefix + "."):
+ value = None
+
# Strip quotes
if value.startswith('"') and value.endswith('"'):
value = value[1:-1]
@@ -2079,7 +2093,6 @@ no_inventory_possible = None
# snmp hosts
output.write("def is_snmp_host(hostname):\n return %r\n\n" % is_snmp_host(hostname))
output.write("def is_tcp_host(hostname):\n return %r\n\n" % is_tcp_host(hostname))
- output.write("def snmp_get_command(hostname):\n return %r\n\n" % snmp_get_command(hostname))
output.write("def snmp_walk_command(hostname):\n return %r\n\n" % snmp_walk_command(hostname))
output.write("def is_usewalk_host(hostname):\n return %r\n\n" % is_usewalk_host(hostname))
diff --git a/modules/snmp.py b/modules/snmp.py
index 7ff3e74..f6bc49a 100644
--- a/modules/snmp.py
+++ b/modules/snmp.py
@@ -340,6 +340,14 @@ def check_snmp_fixed(item, targetvalue, info):
def get_stored_snmpwalk(hostname, oid):
if oid.startswith("."):
oid = oid[1:]
+
+ if oid.endswith(".*"):
+ oid_prefix = oid[:-2]
+ dot_star = True
+ else:
+ oid_prefix = oid
+ dot_star = False
+
path = snmpwalks_dir + "/" + hostname
if opt_debug:
sys.stderr.write("Getting %s from %s\n" % (oid, path))
@@ -351,10 +359,12 @@ def get_stored_snmpwalk(hostname, oid):
o = parts[0]
if o.startswith('.'):
o = o[1:]
- if o == oid or o.startswith(oid + "."):
+ if o == oid or o.startswith(oid_prefix + "."):
if len(parts) > 1:
value = parts[1]
else:
value = ""
rowinfo.append((o, strip_snmp_value(value))) # return pair of OID and value
+ if dot_star:
+ return rowinfo # only return first (used by get_single_oid)
return rowinfo
Module: check_mk
Branch: master
Commit: 8e4799cb44f9521828e9c9fa849667a9d77c9998
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=8e4799cb44f952…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Mar 10 11:09:25 2011 +0100
Updated bug entries
---
.bugs/221 | 12 ++++++++++++
.bugs/222 | 12 ++++++++++++
2 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/.bugs/221 b/.bugs/221
new file mode 100644
index 0000000..4024881
--- /dev/null
+++ b/.bugs/221
@@ -0,0 +1,12 @@
+Title: Snapins should not show error on Nagios reload
+Component: multisite
+Benefit: 1
+State: open
+Cost: 2
+Date: 2011-03-10 11:06:15
+Class: feature
+
+When Nagios reloads and there is a Livestatus error, then
+the Snapins should - on their refresh - not display that
+error but reject the Ajax response completely and stay in
+their old state.
diff --git a/.bugs/222 b/.bugs/222
new file mode 100644
index 0000000..ed6e751
--- /dev/null
+++ b/.bugs/222
@@ -0,0 +1,12 @@
+Title: Quicksearch should reload items after Nagios restart
+Component: multisite
+Benefit: 2
+State: open
+Cost: 3
+Date: 2011-03-10 11:07:54
+Class: feature
+
+Quicksearch should also do a refresh every 10 Seconds but only retrieve
+the start time of the nagios sites. These are always available
+in the html.live object. If at least one site as restarted since
+the last time, all items (hosts, services) should be loaded new.