Module: check_mk
Branch: master
Commit: a2e9dd0a2470d2c9471df28c823e4a3bab45e24d
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=a2e9dd0a2470d2…
Author: Marcel Arentz <ma(a)mathias-kettner.de>
Date: Wed Oct 5 10:49:22 2016 +0200
3944 Added OS related information for Cisco, Fireeye and Infoblox devices
The mentioned devices are now providing more information about the used Operating System.
---
.werks/3944 | 9 ++++++++
ChangeLog | 1 +
inventory/infoblox_osinfo | 49 +++++++++++++++++++++++++++++++++++++++++
inventory/snmp_os | 55 +++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 114 insertions(+)
diff --git a/.werks/3944 b/.werks/3944
new file mode 100644
index 0000000..ebf9f7e
--- /dev/null
+++ b/.werks/3944
@@ -0,0 +1,9 @@
+Title: Added OS related information for Cisco, Fireeye and Infoblox devices
+Level: 1
+Component: inv
+Compatible: compat
+Version: 1.4.0i2
+Date: 1475657146
+Class: feature
+
+The mentioned devices are now providing more information about the used Operating System.
diff --git a/ChangeLog b/ChangeLog
index b87c8cb..42e8bde 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,7 @@
HW/SW-Inventory:
* 3906 oracle: now version, database creation and startup time, log and open mode, logins, flashback are inventorised
+ * 3944 Added OS related information for Cisco, Fireeye and Infoblox devices...
1.4.0i1:
diff --git a/inventory/infoblox_osinfo b/inventory/infoblox_osinfo
new file mode 100644
index 0000000..0fad729
--- /dev/null
+++ b/inventory/infoblox_osinfo
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2016 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at http://mathias-kettner.de/check_mk.
+#
+# check_mk is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# tails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+
+# Example output:
+# .1.3.6.1.4.1.2021.100.6.0 '--host=x86_64-unknown-linux-gnu' '--build=x86_64-unknown-linux-gnu' '--target=x86_64-redhat-linux' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-static' '--enable-shared' '--without-rpm' '--with-cflags=-O2 -g -D_FORTIFY_SOURCE=2' '--with-sys-location=Unknown' '--with-logfile=/var/log/snmpd.log' '--with-persistent-directory=/var/lib/net-snmp' '--with-default-snmp-version=3' '--with-mib-modules=agentx' '--with-libwrap=yes' '--sysconfdir=/etc' '--enable-ipv6' '--enable-ucd-snmp-compatibility' '--disable-embedded-perl' '--enable-as-needed' '--with-perl-modules=INSTALLDIRS=vendor' '--enable-local-smux' '--with-temp-file-pattern=/var/run/net-snmp/snmp-tmp-XXXXXX' '--with-transports=DTLSUDP TLSTCP' '--with-security-modules=tsm' '--with-sys-contact=c
+
+def inv_infoblox_osinfo(info):
+ os = info[0][0].split("=")
+ for line in os:
+ node = inv_tree("software.os.")
+ if "linux" in line.lower():
+ node["type"] = "Linux"
+ if "redhat" in line.lower():
+ node["Vendor"] = "RedHat"
+ if "x86_64" in line.lower():
+ node["arch"] = "x86_64"
+
+inv_info['infoblox_osinfo'] = {
+ 'inv_function' : inv_infoblox_osinfo,
+ 'snmp_info' : (".1.3.6.1.4.1.2021.100", [
+ '6.0' # versionConfigureOptions
+ ]),
+ 'snmp_scan_function' : lambda oid: oid(".1.3.6.1.4.1.2021.4.1.*") and "infoblox" in oid(".1.3.6.1.2.1.1.1.0").lower(),
+
+}
diff --git a/inventory/snmp_os b/inventory/snmp_os
new file mode 100644
index 0000000..27683b4
--- /dev/null
+++ b/inventory/snmp_os
@@ -0,0 +1,55 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2013 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at http://mathias-kettner.de/check_mk.
+#
+# check_mk is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# tails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+def inv_snmp_os(info):
+ sys_descr, sys_obj, sys_uptime, sys_name = info[0]
+ descr_short = sys_descr.split()
+ descr_long = sys_descr.split(",")
+ node = inv_tree("software.os.")
+
+# Cisco IOS Devices:
+ if "ios" and "cisco" in sys_descr.lower():
+ node["type"] = descr_long[0]
+ if "Version" in descr_short:
+ node["version"] = (descr_short[descr_short.index("Version")+1]).replace("," , "")
+
+# Fireeye Devices
+ if "linux" in sys_descr.lower() and ".1.3.6.1.4.1.25597.1" in sys_obj:
+ node["type"] = descr_short[0]
+ node["kernel_version"] = descr_short[2]
+ node["arch"] = descr_short[-1]
+
+
+inv_info['snmp_os'] = {
+ "inv_function" : inv_snmp_os,
+ 'snmp_info' : ('.1.3.6.1.2.1.1', [
+ '1.0', # sysDescr
+ '2.0', # sysObjectID
+ '3.0', # sysUpTime
+ '5.0', # sysName
+ ]),
+ 'snmp_scan_function' : lambda oid: oid(".1.3.6.1.2.1.1.1.0") not in [ None, "" ],
+}