From 0508ccc86c808d97aa3020e14e95f34794e8b318 Mon Sep 17 00:00:00 2001 From: Tom Laermans Date: Mon, 11 Jan 2010 00:59:05 +0000 Subject: [PATCH] Cisco 1912 support (yay for dinosours) - number of fixes to be able to support snmp v1, bulkwalk doesnt work git-svn-id: http://www.observium.org/svn/observer/trunk@666 61d68cd4-352d-0410-923a-c4978735b2b8 --- html/images/os/cat1900.png | 1 + includes/discovery/interfaces.php | 2 +- includes/functions-poller.inc.php | 14 +++++++------- includes/osdiscovery/discover-cat1900.php | 9 +++++++++ includes/polling/device-cat1900.inc.php | 7 +++++++ includes/polling/interfaces.inc.php | 2 +- 6 files changed, 26 insertions(+), 9 deletions(-) create mode 120000 html/images/os/cat1900.png create mode 100755 includes/osdiscovery/discover-cat1900.php create mode 100755 includes/polling/device-cat1900.inc.php diff --git a/html/images/os/cat1900.png b/html/images/os/cat1900.png new file mode 120000 index 000000000..9585b8f3d --- /dev/null +++ b/html/images/os/cat1900.png @@ -0,0 +1 @@ +catos.png \ No newline at end of file diff --git a/includes/discovery/interfaces.php b/includes/discovery/interfaces.php index 3c52d7b9a..140536e4b 100755 --- a/includes/discovery/interfaces.php +++ b/includes/discovery/interfaces.php @@ -4,7 +4,7 @@ echo("Interfaces : "); - $cmd = $config['snmpbulkwalk'] . " -m IF-MIB -O nsq -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port']; + $cmd = ($device['snmpver'] == 'v1' ? $config['snmpwalk'] : $config['snmpbulkwalk']) . " -m IF-MIB -O nsq -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port']; $cmd .= " ifDescr"; if ($debug) echo("$cmd\n"); $interfaces = trim(shell_exec($cmd)); diff --git a/includes/functions-poller.inc.php b/includes/functions-poller.inc.php index 89ed4b692..ccb2e2cd3 100644 --- a/includes/functions-poller.inc.php +++ b/includes/functions-poller.inc.php @@ -2,7 +2,7 @@ function snmp_cache_cip($oid, $device, $array, $mib = 0) { global $config; - $cmd = $config['snmpbulkwalk'] . " -O snQ -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " "; + $cmd = ($device['snmpver'] == 'v1' ? $config['snmpwalk'] : $config['snmpbulkwalk']) . " -O snQ -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " "; if($mib) { $cmd .= "-m $mib "; } $cmd .= $oid; $data = trim(shell_exec($cmd)); @@ -33,7 +33,7 @@ function snmp_cache_cip($oid, $device, $array, $mib = 0) { function snmp_cache_ifIndex($device) { global $config; - $cmd = $config['snmpbulkwalk'] . " -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " "; + $cmd = ($device['snmpver'] == 'v1' ? $config['snmpwalk'] : $config['snmpbulkwalk']) . " -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " "; $cmd .= "-m IF-MIB ifIndex"; $data = trim(shell_exec($cmd)); $device_id = $device['device_id']; @@ -52,7 +52,7 @@ global $config; function snmpwalk_cache_oid($poll_oid, $device, $array, $mib = 0) { global $config; - $cmd = $config['snmpbulkwalk'] . " -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . + $cmd = ($device['snmpver'] == 'v1' ? $config['snmpwalk'] : $config['snmpbulkwalk']) . " -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " "; if($mib) { $cmd .= "-m $mib "; } $cmd .= $poll_oid; @@ -71,7 +71,7 @@ function snmpwalk_cache_oid($poll_oid, $device, $array, $mib = 0) { function snmpwalk_cache_twopart_oid($oid, $device, $array, $mib = 0) { global $config; - $cmd = $config['snmpbulkwalk'] . " -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . + $cmd = ($device['snmpver'] == 'v1' ? $config['snmpwalk'] : $config['snmpbulkwalk']) . " -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " "; if($mib) { $cmd .= "-m $mib "; } $cmd .= $oid; @@ -90,7 +90,7 @@ function snmpwalk_cache_twopart_oid($oid, $device, $array, $mib = 0) { function snmpwalk_cache_threepart_oid($oid, $device, $array, $mib = 0) { global $config, $debug; - $cmd = $config['snmpbulkwalk'] . " -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . + $cmd = ($device['snmpver'] == 'v1' ? $config['snmpwalk'] : $config['snmpbulkwalk']) . " -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " "; if($mib) { $cmd .= "-m $mib "; } $cmd .= $oid; @@ -110,7 +110,7 @@ function snmpwalk_cache_threepart_oid($oid, $device, $array, $mib = 0) { function snmp_cache_slotport_oid($oid, $device, $array, $mib = 0) { global $config; - $cmd = $config['snmpbulkwalk'] . " -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . + $cmd = ($device['snmpver'] == 'v1' ? $config['snmpwalk'] : $config['snmpbulkwalk']) . " -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " "; if($mib) { $cmd .= "-m $mib "; } $cmd .= $oid; @@ -132,7 +132,7 @@ function snmp_cache_slotport_oid($oid, $device, $array, $mib = 0) { function snmp_cache_oid($oid, $device, $array, $mib = 0) { global $config; - $cmd = $config['snmpbulkwalk'] . " -O UQs -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " "; + $cmd = ($device['snmpver'] == 'v1' ? $config['snmpwalk'] : $config['snmpbulkwalk']) . " -O UQs -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " "; if($mib) { $cmd .= "-m $mib "; } $cmd .= $oid; $data = trim(shell_exec($cmd)); diff --git a/includes/osdiscovery/discover-cat1900.php b/includes/osdiscovery/discover-cat1900.php new file mode 100755 index 000000000..ddcab4448 --- /dev/null +++ b/includes/osdiscovery/discover-cat1900.php @@ -0,0 +1,9 @@ + diff --git a/includes/polling/device-cat1900.inc.php b/includes/polling/device-cat1900.inc.php new file mode 100755 index 000000000..9bb333b8e --- /dev/null +++ b/includes/polling/device-cat1900.inc.php @@ -0,0 +1,7 @@ + diff --git a/includes/polling/interfaces.inc.php b/includes/polling/interfaces.inc.php index ee1b2669f..84b48e076 100644 --- a/includes/polling/interfaces.inc.php +++ b/includes/polling/interfaces.inc.php @@ -2,7 +2,7 @@ if($device['os_group'] == "ios") { $portifIndex = array(); - $cmd = $config['snmpwalk'] . " -CI -m CISCO-STACK-MIB -O q -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " portIfIndex"; + $cmd = ($device['snmpver'] == 'v1' ? $config['snmpwalk'] : $config['snmpbulkwalk']) . " -CI -m CISCO-STACK-MIB -O q -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " portIfIndex"; #echo("$cmd"); $portifIndex_output = trim(shell_exec($cmd)); foreach(explode("\n", $portifIndex_output) as $entry){