server(), '', 'objectclass=*', array('+', '*', 'subschemasubentry'), 0, 0, 0, LDAP_DEREF_NEVER); if ($result) { $info = ldap_get_entries($_SESSION['ldap']->server(), $result); if ($info) { $info = $info[0]; foreach ($info as $key => $value) { if (is_array($info[$key]) && isset($info[$key]['count'])) { unset($info[$key]['count']); } } if (isset($info['namingcontexts'])) { $namingContexts = implode(', ', $info['namingcontexts']); } if (isset($info['configcontext'])) { $configcontext = $info['configcontext'][0]; } if (isset($info['supportedldapversion'])) { $supportedldapversion = implode(', ', $info['supportedldapversion']); } if (isset($info['supportedsaslmechanisms'])) { $supportedsaslmechanisms = implode(', ', $info['supportedsaslmechanisms']); } if (isset($info['subschemasubentry'])) { $subschemasubentry = $info['subschemasubentry'][0]; } if (isset($info['vendorname'])) { $vendorname = $info['vendorname'][0]; } if (isset($info['vendorversion'])) { $vendorversion = $info['vendorversion'][0]; } if (isset($info['dynamicsubtrees'])) { $dynamicSubtrees = implode(', ', $info['dynamicsubtrees']); } } } // get additional information if monitoring is enabled $monitorResults = searchLDAP('cn=monitor', 'objectClass=*', array('*', '+')); $monitorEntries = array(); foreach ($monitorResults as $monitorResult) { $monitorEntries[$monitorResult['dn']] = array_change_key_case($monitorResult, CASE_LOWER); } $monitorEntries = array_change_key_case($monitorEntries, CASE_LOWER); include __DIR__ . '/../../lib/adminHeader.inc'; echo '
'; $tabindex = 1; $container = new htmlResponsiveRow(); $container->add(new htmlTitle(_("Server information")), 12); if (!empty($namingContexts)) { $container->addLabel(new htmlOutputText('' . _("Managed suffixes") . '', false)); $container->addField(new htmlOutputText($namingContexts)); } if (!empty($supportedldapversion)) { $container->addLabel(new htmlOutputText('' . _("LDAP version") . '', false)); $container->addField(new htmlOutputText($supportedldapversion)); } if ($configcontext != '') { $container->addLabel(new htmlOutputText('' . _("Config suffix") . '', false)); $container->addField(new htmlOutputText($configcontext)); } $container->addLabel(new htmlOutputText('' . _("Schema suffix") . '', false)); $container->addField(new htmlOutputText($subschemasubentry)); if ($dynamicSubtrees != '') { $container->addLabel(new htmlOutputText('' . _("Dynamic subtrees") . '', false)); $container->addField(new htmlOutputText($dynamicSubtrees)); } if (!empty($supportedsaslmechanisms)) { $container->addLabel(new htmlOutputText('' . _("SASL mechanisms") . '', false)); $container->addField(new htmlOutputText($supportedsaslmechanisms)); } if ($vendorname != '') { $container->addLabel(new htmlOutputText('' . _("Vendor name") . '', false)); $container->addField(new htmlOutputText($vendorname)); } if ($vendorversion != '') { $container->addLabel(new htmlOutputText('' . _("Vendor version") . '', false)); $container->addField(new htmlOutputText($vendorversion)); } // monitoring information if (isset($monitorEntries['cn=monitor']['monitoredinfo'])) { $container->addLabel(new htmlOutputText('' . _("Name") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=monitor']['monitoredinfo']))); } if (isset($monitorEntries['cn=listeners,cn=monitor'])) { $container->addLabel(new htmlOutputText('' . _("Listeners") . '', false)); $listeners = array(); $l = 0; while (isset($monitorEntries['cn=listener ' . $l . ',cn=listeners,cn=monitor'])) { $listeners[] = $monitorEntries['cn=listener ' . $l . ',cn=listeners,cn=monitor']['monitorconnectionlocaladdress'][0]; $l++; } $container->addField(new htmlOutputText(implode(', ', $listeners))); } if (isset($monitorEntries['cn=backends,cn=monitor'])) { $container->addLabel(new htmlOutputText('' . _("Backends") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=backends,cn=monitor']['monitoredinfo']))); } if (isset($monitorEntries['cn=overlays,cn=monitor'])) { $container->addLabel(new htmlOutputText('' . _("Overlays") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=overlays,cn=monitor']['monitoredinfo']))); } if (isset($monitorEntries['cn=max file descriptors,cn=connections,cn=monitor'])) { $container->addLabel(new htmlOutputText('' . _("Max. file descriptors") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=max file descriptors,cn=connections,cn=monitor']['monitorcounter']))); } // server statistics if (isset($monitorEntries['cn=time,cn=monitor']) || isset($monitorEntries['cn=statistics,cn=monitor']) || isset($monitorEntries['cn=monitor']['currenttime'])) { $container->add(new htmlSubTitle(_('Server statistics')), 12); if (isset($monitorEntries['cn=entries,cn=statistics,cn=monitor'])) { $container->addLabel(new htmlOutputText('' . _("LDAP entries") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=entries,cn=statistics,cn=monitor']['monitorcounter']))); } if (isset($monitorEntries['cn=referrals,cn=statistics,cn=monitor'])) { $container->addLabel(new htmlOutputText('' . _("Referrals") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=referrals,cn=statistics,cn=monitor']['monitorcounter']))); } if (isset($monitorEntries['cn=start,cn=time,cn=monitor'])) { $time = formatLDAPTimestamp($monitorEntries['cn=start,cn=time,cn=monitor']['monitortimestamp'][0]); $container->addLabel(new htmlOutputText('' . _("Start time") . '', false)); $container->addField(new htmlOutputText($time), 12); } elseif (isset($monitorEntries['cn=monitor']['starttime'])) { // Fedora 389 $time = formatLDAPTimestamp($monitorEntries['cn=monitor']['starttime'][0]); $container->addLabel(new htmlOutputText('' . _("Start time") . '', false)); $container->addField(new htmlOutputText($time)); } if (isset($monitorEntries['cn=current,cn=time,cn=monitor'])) { $time = formatLDAPTimestamp($monitorEntries['cn=current,cn=time,cn=monitor']['monitortimestamp'][0]); $container->addLabel(new htmlOutputText('' . _("Server time") . '', false)); $container->addField(new htmlOutputText($time)); } elseif (isset($monitorEntries['cn=monitor']['currenttime'])) { // Fedora 389 $time = formatLDAPTimestamp($monitorEntries['cn=monitor']['currenttime'][0]); $container->addLabel(new htmlOutputText('' . _("Server time") . '', false)); $container->addField(new htmlOutputText($time)); } if (isset($monitorEntries['cn=uptime,cn=time,cn=monitor'])) { $uptime = $monitorEntries['cn=uptime,cn=time,cn=monitor']['monitoredinfo'][0]; $days = floor($uptime / (3600 * 24)); $daysRest = $uptime - ($days * 3600 * 24); $hours = floor($daysRest / 3600); $hoursRest = $daysRest - ($hours * 3600); $minutes = floor($hoursRest / 60); $container->addLabel(new htmlOutputText('' . _("Uptime") . '', false)); $container->addField(new htmlOutputText($days . ':' . $hours . ':' . $minutes)); } } // connection statistics if (isset($monitorEntries['cn=connections,cn=monitor']) || isset($monitorEntries['cn=statistics,cn=monitor']) || isset($monitorEntries['cn=monitor']['currentconnections'])) { $container->add(new htmlSubTitle(_('Connection statistics')), 12); if (isset($monitorEntries['cn=current,cn=connections,cn=monitor'])) { $container->addLabel(new htmlOutputText('' . _("Current connections") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=current,cn=connections,cn=monitor']['monitorcounter']))); } elseif (isset($monitorEntries['cn=monitor']['currentconnections'])) { // Fedora 389 $container->addLabel(new htmlOutputText('' . _("Current connections") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=monitor']['currentconnections']))); } if (isset($monitorEntries['cn=total,cn=connections,cn=monitor'])) { $container->addLabel(new htmlOutputText('' . _("Total connections") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=total,cn=connections,cn=monitor']['monitorcounter']))); } elseif (isset($monitorEntries['cn=monitor']['totalconnections'])) { // Fedora 389 $container->addLabel(new htmlOutputText('' . _("Total connections") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=monitor']['totalconnections']))); } if (isset($monitorEntries['cn=bytes,cn=statistics,cn=monitor'])) { $bytes = round($monitorEntries['cn=bytes,cn=statistics,cn=monitor']['monitorcounter'][0] / 1000000, 2) . 'MB'; $container->addLabel(new htmlOutputText('' . _("Bytes sent") . '', false)); $container->addField(new htmlOutputText($bytes)); } elseif (isset($monitorEntries['cn=monitor']['bytessent'])) { // Fedora 389 $bytes = round($monitorEntries['cn=monitor']['bytessent'][0] / 1000000, 2) . 'MB'; $container->addLabel(new htmlOutputText('' . _("Bytes sent") . '', false)); $container->addField(new htmlOutputText($bytes)); } if (isset($monitorEntries['cn=pdu,cn=statistics,cn=monitor'])) { $container->addLabel(new htmlOutputText('' . _("PDUs sent") . '', false)); $container->addField(new htmlOutputText($monitorEntries['cn=pdu,cn=statistics,cn=monitor']['monitorcounter'][0])); } if (isset($monitorEntries['cn=monitor']['entriessent'])) { // Fedora 389 $container->addLabel(new htmlOutputText('' . _("Entries sent") . '', false)); $container->addField(new htmlOutputText($monitorEntries['cn=monitor']['entriessent'][0])); } } // operation statistics (OpenLDAP) if (isset($monitorEntries['cn=operations,cn=monitor'])) { $container->add(new htmlSubTitle(_('Operation statistics')), 12); $data = array(); if (isset($monitorEntries['cn=bind,cn=operations,cn=monitor'])) { $data[] = array( new htmlOutputText('' . _("Bind") . '', false), new htmlOutputText(implode(', ', $monitorEntries['cn=bind,cn=operations,cn=monitor']['monitoropinitiated'])), new htmlOutputText(implode(', ', $monitorEntries['cn=bind,cn=operations,cn=monitor']['monitoropcompleted'])), ); } if (isset($monitorEntries['cn=unbind,cn=operations,cn=monitor'])) { $data[] = array( new htmlOutputText('' . _("Unbind") . '', false), new htmlOutputText(implode(', ', $monitorEntries['cn=unbind,cn=operations,cn=monitor']['monitoropinitiated'])), new htmlOutputText(implode(', ', $monitorEntries['cn=unbind,cn=operations,cn=monitor']['monitoropcompleted'])), ); } if (isset($monitorEntries['cn=search,cn=operations,cn=monitor'])) { $data[] = array( new htmlOutputText('' . _("Search") . '', false), new htmlOutputText(implode(', ', $monitorEntries['cn=search,cn=operations,cn=monitor']['monitoropinitiated'])), new htmlOutputText(implode(', ', $monitorEntries['cn=search,cn=operations,cn=monitor']['monitoropcompleted'])), ); } if (isset($monitorEntries['cn=add,cn=operations,cn=monitor'])) { $data[] = array( new htmlOutputText('' . _("Add") . '', false), new htmlOutputText(implode(', ', $monitorEntries['cn=add,cn=operations,cn=monitor']['monitoropinitiated'])), new htmlOutputText(implode(', ', $monitorEntries['cn=add,cn=operations,cn=monitor']['monitoropcompleted'])), ); } if (isset($monitorEntries['cn=modify,cn=operations,cn=monitor'])) { $data[] = array( new htmlOutputText('' . _("Modify") . '', false), new htmlOutputText(implode(', ', $monitorEntries['cn=modify,cn=operations,cn=monitor']['monitoropinitiated'])), new htmlOutputText(implode(', ', $monitorEntries['cn=modify,cn=operations,cn=monitor']['monitoropcompleted'])), ); } if (isset($monitorEntries['cn=delete,cn=operations,cn=monitor'])) { $data[] = array( new htmlOutputText('' . _("Delete") . '', false), new htmlOutputText(implode(', ', $monitorEntries['cn=delete,cn=operations,cn=monitor']['monitoropinitiated'])), new htmlOutputText(implode(', ', $monitorEntries['cn=delete,cn=operations,cn=monitor']['monitoropcompleted'])), ); } if (isset($monitorEntries['cn=modrdn,cn=operations,cn=monitor'])) { $data[] = array( new htmlOutputText('' . _("Modify RDN") . '', false), new htmlOutputText(implode(', ', $monitorEntries['cn=modrdn,cn=operations,cn=monitor']['monitoropinitiated'])), new htmlOutputText(implode(', ', $monitorEntries['cn=modrdn,cn=operations,cn=monitor']['monitoropcompleted'])), ); } if (isset($monitorEntries['cn=compare,cn=operations,cn=monitor'])) { $data[] = array( new htmlOutputText('' . _("Compare") . '', false), new htmlOutputText(implode(', ', $monitorEntries['cn=compare,cn=operations,cn=monitor']['monitoropinitiated'])), new htmlOutputText(implode(', ', $monitorEntries['cn=compare,cn=operations,cn=monitor']['monitoropcompleted'])), ); } if (isset($monitorEntries['cn=abandon,cn=operations,cn=monitor'])) { $data[] = array( new htmlOutputText('' . _("Abandon") . '', false), new htmlOutputText(implode(', ', $monitorEntries['cn=abandon,cn=operations,cn=monitor']['monitoropinitiated'])), new htmlOutputText(implode(', ', $monitorEntries['cn=abandon,cn=operations,cn=monitor']['monitoropcompleted'])), ); } if (isset($monitorEntries['cn=extended,cn=operations,cn=monitor'])) { $data[] = array( new htmlOutputText('' . _("Extended") . '', false), new htmlOutputText(implode(', ', $monitorEntries['cn=extended,cn=operations,cn=monitor']['monitoropinitiated'])), new htmlOutputText(implode(', ', $monitorEntries['cn=extended,cn=operations,cn=monitor']['monitoropcompleted'])), ); } if (isset($monitorEntries['cn=operations,cn=monitor']['monitoropinitiated'])) { $data[] = array( new htmlOutputText('' . _("Total") . '', false), new htmlOutputText(implode(', ', $monitorEntries['cn=operations,cn=monitor']['monitoropinitiated'])), new htmlOutputText(implode(', ', $monitorEntries['cn=operations,cn=monitor']['monitoropcompleted'])), ); } $opStats = new htmlResponsiveTable(array('', _("Initiated"), _("Completed")), $data); $container->add($opStats, 12); } // operation statistics (389 server) elseif (isset($monitorEntries['cn=monitor']['opsinitiated'])) { $container->add(new htmlSubTitle(_('Operation statistics')), 12); $container->addLabel(new htmlOutputText('' . _("Initiated") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=monitor']['opsinitiated']))); $container->addLabel(new htmlOutputText('' . _("Completed") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=monitor']['opscompleted']))); if (isset($monitorEntries['cn=snmp,cn=monitor']['addentryops'])) { $container->addLabel(new htmlOutputText('' . _("Bind") . '', false)); $binds = $monitorEntries['cn=snmp,cn=monitor']['anonymousbinds'][0] + $monitorEntries['cn=snmp,cn=monitor']['unauthbinds'][0] + $monitorEntries['cn=snmp,cn=monitor']['simpleauthbinds'][0] + $monitorEntries['cn=snmp,cn=monitor']['strongauthbinds'][0]; $container->addField(new htmlOutputText($binds)); $container->addLabel(new htmlOutputText('' . _("Search") . '', false)); $searches = $monitorEntries['cn=snmp,cn=monitor']['searchops'][0]; $container->addField(new htmlOutputText($searches)); $container->addLabel(new htmlOutputText('' . _("Add") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=snmp,cn=monitor']['addentryops']))); $container->addLabel(new htmlOutputText('' . _("Modify") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=snmp,cn=monitor']['modifyentryops']))); $container->addLabel(new htmlOutputText('' . _("Delete") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=snmp,cn=monitor']['removeentryops']))); $container->addLabel(new htmlOutputText('' . _("Modify RDN") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=snmp,cn=monitor']['modifyrdnops']))); $container->addLabel(new htmlOutputText('' . _("Compare") . '', false)); $container->addField(new htmlOutputText(implode(', ', $monitorEntries['cn=snmp,cn=monitor']['compareops']))); } } parseHtml(null, $container, array(), true, $tabindex, 'user'); echo '
'; include __DIR__ . '/../../lib/adminFooter.inc'; ?>