From 03764279436c698e16213b00a7bb932cd0567348 Mon Sep 17 00:00:00 2001 From: Adam Amstrong Date: Wed, 2 May 2012 15:06:12 +0000 Subject: [PATCH] more memcached git-svn-id: http://www.observium.org/svn/observer/trunk@3114 61d68cd4-352d-0410-923a-c4978735b2b8 --- .../device/overview/generic/sensor.inc.php | 11 +++++++- html/pages/device/port.inc.php | 11 ++++++++ html/pages/device/ports.inc.php | 13 ++++++++- html/pages/health/sensors.inc.php | 15 ++++++++-- includes/defaults.inc.php | 28 +++++++++---------- includes/polling/functions.inc.php | 9 ++++-- includes/polling/storage.inc.php | 12 ++++++-- irc.php | 3 +- sql-schema/016.sql | 1 + 9 files changed, 79 insertions(+), 24 deletions(-) diff --git a/html/pages/device/overview/generic/sensor.inc.php b/html/pages/device/overview/generic/sensor.inc.php index e069666de7..48895b9cb0 100644 --- a/html/pages/device/overview/generic/sensor.inc.php +++ b/html/pages/device/overview/generic/sensor.inc.php @@ -9,8 +9,17 @@ if (count($sensors)) echo(''); foreach ($sensors as $sensor) { - ### FIXME - make this "four graphs in popup" a function/include and "small graph" a function. + if ($config['memcached']['enable']) + { + $sensor['sensor_current'] = $memcache->get('sensor-'.$sensor['sensor_id'].'-value'); + } + if(empty($sensor['sensor_current'])) + { + $sensor['sensor_current'] = "NaN"; + } + + ### FIXME - make this "four graphs in popup" a function/include and "small graph" a function. ### FIXME - So now we need to clean this up and move it into a function. Isn't it just "print-graphrow"? $graph_colour = str_replace("#", "", $row_colour); diff --git a/html/pages/device/port.inc.php b/html/pages/device/port.inc.php index 2a044f1172..1ccedbe3af 100644 --- a/html/pages/device/port.inc.php +++ b/html/pages/device/port.inc.php @@ -4,6 +4,17 @@ if (!isset($vars['view']) ) { $vars['view'] = "graphs"; } $port = dbFetchRow("SELECT * FROM `ports` WHERE `interface_id` = ?", array($vars['port'])); +if ($config['memcached']['enable']) +{ + $oids = array('ifInOctets', 'ifOutOctets', 'ifInUcastPkts', 'ifOutUcastPkts', 'ifInErrors', 'ifOutErrors'); + foreach($oids as $oid) + { + $port[$oid.'_rate'] = $memcache->get('port-'.$port['interface_id'].'-'.$oid.'_rate'); + if($debug) { echo("MC[".$oid."->".$port[$oid.'_rate']."]"); } + } +} + + $port_details = 1; $hostname = $device['hostname']; diff --git a/html/pages/device/ports.inc.php b/html/pages/device/ports.inc.php index 591f82a0dd..c116de733b 100644 --- a/html/pages/device/ports.inc.php +++ b/html/pages/device/ports.inc.php @@ -107,8 +107,19 @@ if ($vars['view'] == 'minigraphs') foreach ($ports as $port) { - include("includes/print-interface.inc.php"); + if ($config['memcached']['enable']) +{ + $oids = array('ifInOctets', 'ifOutOctets', 'ifInUcastPkts', 'ifOutUcastPkts', 'ifInErrors', 'ifOutErrors'); + foreach($oids as $oid) + { + $port[$oid.'_rate'] = $memcache->get('port-'.$port['interface_id'].'-'.$oid.'_rate'); + if($debug) { echo("MC[".$oid."->".$port[$oid.'_rate']."]"); } + } +} + + + include("includes/print-interface.inc.php"); $i++; } echo("
"); diff --git a/html/pages/health/sensors.inc.php b/html/pages/health/sensors.inc.php index 445c769d65..131c703176 100644 --- a/html/pages/health/sensors.inc.php +++ b/html/pages/health/sensors.inc.php @@ -25,12 +25,23 @@ echo(' foreach (dbFetchRows($sql, $param) as $sensor) { + + if ($config['memcached']['enable']) + { + $sensor['sensor_current'] = $memcache->get('sensor-'.$sensor['sensor_id'].'-value'); + } + + if(empty($sensor['sensor_current'])) + { + $sensor['sensor_current'] = "NaN"; + } else { + if ($sensor['sensor_current'] >= $sensor['sensor_limit']) { $alert = 'alert'; } else { $alert = ""; } + } + $weekly_sensor = "graph.php?id=" . $sensor['sensor_id'] . "&type=".$graph_type."&from=$week&to=$now&width=500&height=150"; $sensor_popup = "', LEFT);\" onmouseout=\"return nd();\"> " . $sensor['sensor_descr'] . ""; - if ($sensor['sensor_current'] >= $sensor['sensor_limit']) { $alert = 'alert'; } else { $alert = ""; } - $sensor_day = "graph.php?id=" . $sensor['sensor_id'] . "&type=".$graph_type."&from=$day&to=$now&width=300&height=100"; $sensor_week = "graph.php?id=" . $sensor['sensor_id'] . "&type=".$graph_type."&from=$week&to=$now&width=300&height=100"; $sensor_month = "graph.php?id=" . $sensor['sensor_id'] . "&type=".$graph_type."&from=$month&to=$now&width=300&height=100"; diff --git a/includes/defaults.inc.php b/includes/defaults.inc.php index 837150ca72..6567795b87 100644 --- a/includes/defaults.inc.php +++ b/includes/defaults.inc.php @@ -341,6 +341,20 @@ $config['allow_unauth_graphs'] = 0; # Allow graphs to be viewed by an $config['allow_unauth_graphs_cidr'] = array(); # Allow graphs to be viewed without authorisation from certain IP ranges $config['auth_mechanism'] = "mysql"; # Available mechanisms: mysql (default), ldap, http-auth +### LDAP Authentication + +$config['auth_ldap_version'] = 3; # v2 or v3 +$config['auth_ldap_server'] = "ldap.yourserver.com"; +$config['auth_ldap_port'] = 389; +$config['auth_ldap_prefix'] = "uid="; +$config['auth_ldap_suffix'] = ",ou=People,dc=example,dc=com"; +$config['auth_ldap_group'] = "cn=observium,ou=groups,dc=example,dc=com"; + +$config['auth_ldap_groupbase'] = "ou=group,dc=example,dc=com"; +$config['auth_ldap_groups']['admin']['level'] = 10; +$config['auth_ldap_groups']['pfy']['level'] = 7; +$config['auth_ldap_groups']['support']['level'] = 1; + ### Sensors $config['allow_entity_sensor']['amperes'] = 1; @@ -393,20 +407,6 @@ $config['syslog_filter'][] = "diskio.c"; ## Ignore some crappy stuff from SNMP $config['enable_libvirt'] = 0; # Enable Libvirt VM support $config['libvirt_protocols'] = array("qemu+ssh","xen+ssh"); # Mechanisms used, add or remove if not using this on any of your machines. -### LDAP Authentication - -$config['auth_ldap_version'] = 3; # v2 or v3 -$config['auth_ldap_server'] = "ldap.yourserver.com"; -$config['auth_ldap_port'] = 389; -$config['auth_ldap_prefix'] = "uid="; -$config['auth_ldap_suffix'] = ",ou=People,dc=example,dc=com"; -$config['auth_ldap_group'] = "cn=observium,ou=groups,dc=example,dc=com"; - -$config['auth_ldap_groupbase'] = "ou=group,dc=example,dc=com"; -$config['auth_ldap_groups']['admin']['level'] = 10; -$config['auth_ldap_groups']['pfy']['level'] = 7; -$config['auth_ldap_groups']['support']['level'] = 1; - ### Hardcoded ASN descriptions $config['astext'][65332] = "Cymru FullBogon Feed"; $config['astext'][65333] = "Cymru Bogon Feed"; diff --git a/includes/polling/functions.inc.php b/includes/polling/functions.inc.php index 3f4fb2b3ca..7cbfed11cf 100644 --- a/includes/polling/functions.inc.php +++ b/includes/polling/functions.inc.php @@ -2,7 +2,7 @@ function poll_sensor($device, $class, $unit) { - global $config; + global $config; global $memcache; foreach (dbFetchRows("SELECT * FROM `sensors` WHERE `sensor_class` = ? AND `device_id` = ? AND `poller_type` = 'snmp'", array($class, $device['device_id'])) as $sensor) { @@ -72,7 +72,12 @@ function poll_sensor($device, $class, $unit) log_event(ucfirst($class) . ' ' . $sensor['sensor_descr'] . " above threshold: " . $sensor_value . " $unit (> " . $sensor['sensor_limit'] . " $unit)", $device, $class, $sensor['sensor_id']); } - dbUpdate(array('sensor_current' => $sensor_value), 'sensors', '`sensor_class` = ? AND `sensor_id` = ?', array($class, $sensor['sensor_id'])); + if ($config['memcached']['enable']) + { + $memcache->set('sensor-'.$sensor['sensor_id'].'-value', $sensor_value); + } else { + dbUpdate(array('sensor_current' => $sensor_value), 'sensors', '`sensor_class` = ? AND `sensor_id` = ?', array($class, $sensor['sensor_id'])); + } } } diff --git a/includes/polling/storage.inc.php b/includes/polling/storage.inc.php index a02cf4a5c4..948539795d 100755 --- a/includes/polling/storage.inc.php +++ b/includes/polling/storage.inc.php @@ -36,8 +36,16 @@ foreach (dbFetchRows("SELECT * FROM storage WHERE device_id = ?", array($device[ rrdtool_update($storage_rrd,"N:".$storage['used'].":".$storage['free']); - $update = dbUpdate(array('storage_used' => $storage['used'], 'storage_free' => $storage['free'], 'storage_size' => $storage['size'], 'storage_units' => $storage['units'], 'storage_perc' => $percent), - 'storage', '`storage_id` = ?', array($storage['storage_id'])); + if ($config['memcached']['enable']) + { + $memcache->set('storage-'.$storage['storage_id'].'-used', $storage['used']); + $memcache->set('storage-'.$storage['storage_id'].'-free', $storage['free']); + $memcache->set('storage-'.$storage['storage_id'].'-size', $storage['size']); + $memcache->set('storage-'.$storage['storage_id'].'-units', $storage['units']); + $memcache->set('storage-'.$storage['storage_id'].'-used', $percent); + } else { + $update = dbUpdate(array('storage_used' => $storage['used'], 'storage_free' => $storage['free'], 'storage_size' => $storage['size'], 'storage_units' => $storage['units'], 'storage_perc' => $percent), 'storage', '`storage_id` = ?', array($storage['storage_id'])); + } echo("\n"); } diff --git a/irc.php b/irc.php index f58b5e5e5b..390067b5e1 100755 --- a/irc.php +++ b/irc.php @@ -11,13 +11,12 @@ include_once("includes/defaults.inc.php"); include_once("config.php"); include_once("includes/functions.php"); include_once("includes/discovery/functions.inc.php"); - include_once('Net/SmartIRC.php'); mysql_close(); # Redirect to /dev/null or logfile if you aren't using screen to keep tabs -echo "Observer Bot Starting ...\n"; +echo "Observium Bot Starting ...\n"; echo "\n"; echo "Timestamp Command\n"; echo "----------------- ------- \n"; diff --git a/sql-schema/016.sql b/sql-schema/016.sql index 998ba01656..800a39288d 100644 --- a/sql-schema/016.sql +++ b/sql-schema/016.sql @@ -2,3 +2,4 @@ ALTER TABLE `vlans` ADD `vlan_type` VARCHAR( 16 ) NULL; ALTER TABLE `vlans` CHANGE `vlan_domain` `vlan_domain` INT NULL DEFAULT NULL; ALTER TABLE `vlans` CHANGE `vlan_descr` `vlan_name` VARCHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL; ALTER TABLE `vlans` ADD `vlan_mtu` INT NULL; +ALTER TABLE `applications` ADD `app_status` VARCHAR( 8 ) NOT NULL ;