From 05dd09355be135fc608a396a2c2bf60c55ca6d57 Mon Sep 17 00:00:00 2001 From: Eric Lippmann Date: Tue, 18 Nov 2014 16:56:39 +0100 Subject: [PATCH 1/8] doc: Remove configure/make from installation --- doc/installation.md | 135 +++++++++++++------------------------------- 1 file changed, 40 insertions(+), 95 deletions(-) diff --git a/doc/installation.md b/doc/installation.md index 60a5a3ce5..df92c596b 100644 --- a/doc/installation.md +++ b/doc/installation.md @@ -1,117 +1,62 @@ +# Installation -# Installation +The preferred way of installing Icinga Web 2 is to use the official package repositories depending on which operating +system and distribution you are running. But it is also possible to install Icinga Web 2 directly from source too. -## Requirements +## Installing Requirements -* Apache2 with PHP >= 5.3.0 enabled -* PHP Zend Framework -* PHP with MySQL or PostgreSQL libraries -* MySQL or PostgreSQL server and client software -* Icinga 1.x or Icinga 2 as backend providers +* A web server, e.g. Apache or nginx +* PHP >= 5.3.0 +* MySQL or PostgreSQL PHP libraries when using a database for authentication or storing user preferences into a database +* LDAP PHP library when using Active Directory or LDAP for authentication +* Icinga 1.x w/ Livestatus or IDO, Icinga 2 w/ Livestatus or IDO feature enabled -RHEL/CentOS requires the EPEL repository enabled (which provides the `php-ZendFramework` -package). OpenSUSE requires the [server monitoring](https://build.opensuse.org/project/show/server:monitoring) repository (which provides the `php5-ZendFramework` package) enabled. +## Installing Icinga Web 2 from Package -## configure && make +A guide on how to install Icinga Web 2 from package will follow shortly. -### Basic installation +## Installing Icinga Web 2 from Source -If you like to configurea and install icinga2-web from the command line or -if you want to create packages, configure and make is the best choice for installation. +**Step 1: Getting the Source** - ./configure && make install && make install-apache2-config +First of all, you need to download the sources. Icinga Web 2 is available through a Git repository. You can clone this +repository either via git or http protocol using the following URLs: -will install the application to the default target (/usr/local/icinga2-web). Also -an apache configuration entry is added to your apache server, so you should restart -your web server according to your systems configuration. + * git://git.icinga.org/icingaweb2.git + * http://git.icinga.org/icingaweb2.git -### Installation directory +There is also a browsable version available at +[gi.icinga.org](https://git.icinga.org/?p=icingaweb2.git;a=summary "Icinga Web 2 Git Repository"). +This version also offers snapshots for easy download which you can use if you do not have git present on your system. -If you want to install the application to a different directory, use the --prefix flag in your -configure call: +```` +git clone git://git.icinga.org/icingaweb2.git +```` - ./configure --prefix=/my/target/directory +**Step 2: Install the Source** +Choose a target directory and move Icinga Web 2 there. -### Authentication +```` +mv icingaweb2 /usr/share/icingaweb2 +```` -By default, icinga2-web will be installed to authenticate againts its internal database, -but you can configure it to use ldap-authentication by adding the `--with-ldap-authentication` -flag. You must provide the authentication details for your ldap server by using the --with-ldap-* flags. -To see a full list of the flags, call `./configure --help` +**Step 3: Configuring the Web Server** -### Icinga backend +Use `icingacli` to generate web server configuration for either Apache or nginx. -The default option for icinga2web is to configure all icinga backends with the default settings (for example -/usr/local/icinga/ as the icinga directory) but only enable statusdat. To use a different backend, -call `--with-icinga-backend=` and provide ido, livestatus or statusdat as an option. To further configure -your backend, take a look at the various options described in `./configure --help` +*Apache* -### Databases +```` +./bin/icingacli setup config webserver apache +```` -It is required to set up all used Databases correctly, which basically means to create all needed user accounts and to -create all database tables. You will find the installation guides for the different databases in the sections below: +*nginx* -*IMPORTANT*: Select a secure password instead of "icingaweb" and alter the config/authentication.ini accordingly. +```` +./bin/icingacli setup config webserver nginx +```` +**Step 4: Web Setup** -#### MySQL - -1. Create the user and the database - - - mysql -u root -p - mysql> CREATE USER `icingaweb`@`localhost` IDENTIFIED BY 'icingaweb'; - mysql> CREATE DATABASE `icingaweb`; - mysql> GRANT ALL PRIVILEGES ON `icingaweb`.* TO `icingaweb`@`localhost`; - mysql> FLUSH PRIVILEGES; - mysql> quit - - -2. Create all tables (You need to be in the icinga2-web folder) - -> **Note** -> -> RPM packages install the schema into /usr/share/doc/icingaweb-<version>/schema - - bash$ mysql -u root -p icingaweb < etc/schema/mysql.sql - - -#### PostgreSQL - -1. Create the user and the database - - - sudo su postgres - psql - postgres=# CREATE USER icingaweb WITH PASSWORD 'icingaweb'; - postgres=# CREATE DATABASE icingaweb; - postgres=# \q - - -2. Enable trust authentication on localhost - -Add the following lines to your pg_hba.conf (etc/postgresql/X.x/main/pg_hba.conf under debian, /var/lib/pgsql/data/pg_hba.conf for Redhat/Fedora) -to enable trust authentication for the icingaweb user when connecting from the localhost. - - local icingaweb icingaweb trust - host icingaweb icingaweb 127.0.0.1/32 trust - host icingaweb icingaweb ::1/128 trust - -And restart your database ('service postgresql restart' or '/etc/init.d/postgresql-X.x reload' while being root) - - -3. Create all tables (You need to be in the icinga2-web folder) - -> **Note** -> -> RPM packages install the schema into /usr/share/doc/icingaweb-<version>/schema - - bash$ psql -U icingaweb -a -f etc/schema/pgsql.sql - - - -Quick and Dirty ----------------- - -tdb. +Visit Icinga Web 2 in your browser and complete installation using the web setup. From cae813d4c7c1577ceff5b5dd9690b1558071090c Mon Sep 17 00:00:00 2001 From: Eric Lippmann Date: Tue, 18 Nov 2014 16:58:08 +0100 Subject: [PATCH 2/8] doc: Fix typo in installation --- doc/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/installation.md b/doc/installation.md index df92c596b..11f644ef7 100644 --- a/doc/installation.md +++ b/doc/installation.md @@ -1,7 +1,7 @@ # Installation The preferred way of installing Icinga Web 2 is to use the official package repositories depending on which operating -system and distribution you are running. But it is also possible to install Icinga Web 2 directly from source too. +system and distribution you are running. But it is also possible to install Icinga Web 2 directly from source. ## Installing Requirements From 6269f6695b9d1cf3110478b26a95b1f212ba5612 Mon Sep 17 00:00:00 2001 From: Matthias Jentsch Date: Tue, 18 Nov 2014 17:18:12 +0100 Subject: [PATCH 3/8] Add quick filter for event types to event overview Add a new filter form for event types to the eventhistoryAction and add selected to filter on post refs #7695 --- .../controllers/ListController.php | 21 +++ .../application/forms/EventOverviewForm.php | 160 ++++++++++++++++++ .../views/scripts/list/eventhistory.phtml | 3 + public/css/icinga/forms.less | 16 ++ 4 files changed, 200 insertions(+) create mode 100644 modules/monitoring/application/forms/EventOverviewForm.php diff --git a/modules/monitoring/application/controllers/ListController.php b/modules/monitoring/application/controllers/ListController.php index 821b6df79..50eff1ea6 100644 --- a/modules/monitoring/application/controllers/ListController.php +++ b/modules/monitoring/application/controllers/ListController.php @@ -537,6 +537,24 @@ class Monitoring_ListController extends Controller } $this->addTitleTab('eventhistory', $this->translate('Event Overview')); + $form = new EventOverviewForm(); + $form->handleRequest($this->getRequest()); + $this->view->form = $form; + + if ($this->getRequest()->isPost()) { + // update filter string + $filters = $form->getFilter(); + $url = $this->_request->getUrl(); + $url->setQueryString($filters->toQueryString()); + if ($this->getParam('sort') !== null) { + $url->setParam('sort', $this->getParam('sort')); + } + if ($this->getParam('dir') !== null) { + $url->setParam('dir', $this->getParam('dir')); + } + return $this->redirectNow($url); + } + $query = $this->backend->select()->from('eventHistory', array( 'host_name', 'service_description', @@ -550,6 +568,9 @@ class Monitoring_ListController extends Controller 'host', 'service' )); + if ($this->getParam('state')) { + $query->applyFilter(Filter::expression('state', '=', $this->getParam('state'))); + } $this->setupSortControl(array( 'timestamp' => 'Occurence' diff --git a/modules/monitoring/application/forms/EventOverviewForm.php b/modules/monitoring/application/forms/EventOverviewForm.php new file mode 100644 index 000000000..25d268f76 --- /dev/null +++ b/modules/monitoring/application/forms/EventOverviewForm.php @@ -0,0 +1,160 @@ +setName('form_event_overview'); + $this->setDecorators(array( + 'FormElements', + array('HtmlTag', array('tag' => 'div', 'class' => 'hbox')), + 'Form' + )); + } + + /** + * @see Form::createElements() + */ + public function createElements(array $formData) + { + $decorators = array( + array('Label', array('class' => 'optional')), + 'ViewHelper', + array('HtmlTag', array('tag' => 'div', 'class' => 'hbox-item optionbox')), + ); + + $url = Url::fromRequest()->getAbsoluteUrl(); + $this->addElement( + 'checkbox', + 'statechange', + array( + 'label' => t('State Changes'), + 'class' => 'autosubmit', + 'decorators' => $decorators, + 'value' => strpos($url, $this->stateChangeFilter()->toQueryString()) === false ? 0 : 1 + ) + ); + $this->addElement( + 'checkbox', + 'downtime', + array( + 'label' => t('Downtimes'), + 'class' => 'autosubmit', + 'decorators' => $decorators, + 'value' => strpos($url, $this->downtimeFilter()->toQueryString()) === false ? 0 : 1 + ) + ); + $this->addElement( + 'checkbox', + 'comment', + array( + 'label' => t('Comments'), + 'class' => 'autosubmit', + 'decorators' => $decorators, + 'value' => strpos($url, $this->commentFilter()->toQueryString()) === false ? 0 : 1 + ) + ); + $this->addElement( + 'checkbox', + 'notification', + array( + 'label' => t('Notifications'), + 'class' => 'autosubmit', + 'decorators' => $decorators, + 'value' => strpos($url, $this->notificationFilter()->toQueryString()) === false ? 0 : 1 + ) + ); + $this->addElement( + 'checkbox', + 'flapping', + array( + 'label' => t('Flapping'), + 'class' => 'autosubmit', + 'decorators' => $decorators, + 'value' => strpos($url, $this->flappingFilter()->toQueryString()) === false ? 0 : 1 + ) + ); + } + + /** + * Return the corresponding filter-object + * + * @returns Filter + */ + public function getFilter() + { + $filters = array(); + if ($this->getValue('statechange', 1)) { + $filters[] = $this->stateChangeFilter(); + } + if ($this->getValue('comment', 1)) { + $filters[] = $this->commentFilter(); + } + if ($this->getValue('notification', 1)) { + $filters[] = $this->notificationFilter(); + } + if ($this->getValue('downtime', 1)) { + $filters[] = $this->downtimeFilter(); + } + if ($this->getValue('flapping', 1)) { + $filters[] = $this->flappingFilter(); + } + return Filter::matchAny($filters); + } + + public function stateChangeFilter() + { + return Filter::matchAny( + Filter::expression('type', '=', 'hard_state'), + Filter::expression('type', '=', 'soft_state') + ); + } + + public function commentFilter() + { + return Filter::matchAny( + Filter::expression('type', '=', 'comment'), + Filter::expression('type', '=', 'comment_deleted'), + Filter::expression('type', '=', 'dt_comment'), + Filter::expression('type', '=', 'dt_comment_deleted'), + Filter::expression('type', '=', 'ack') + ); + } + + public function notificationFilter() + { + return Filter::expression('type', '=', 'notify'); + } + + public function downtimeFilter() + { + return Filter::matchAny( + Filter::expression('type', '=', 'downtime_start'), + Filter::expression('type', '=', 'downtime_end') + ); + } + + public function flappingFilter() + { + return Filter::matchAny( + Filter::expression('type', '=', 'flapping'), + Filter::expression('type', '=', 'flapping_deleted') + ); + } +} diff --git a/modules/monitoring/application/views/scripts/list/eventhistory.phtml b/modules/monitoring/application/views/scripts/list/eventhistory.phtml index 97eda5354..62b635763 100644 --- a/modules/monitoring/application/views/scripts/list/eventhistory.phtml +++ b/modules/monitoring/application/views/scripts/list/eventhistory.phtml @@ -4,6 +4,9 @@
translate('Sort by'); ?> sortControl->render($this); ?>
+ + +
widget('limiter', array('url' => $this->url, 'max' => $this->history->count())); ?> paginationControl($history, null, null, array('preserve' => $this->preserve)); ?> diff --git a/public/css/icinga/forms.less b/public/css/icinga/forms.less index 2acb3d4d2..33a7fdd01 100644 --- a/public/css/icinga/forms.less +++ b/public/css/icinga/forms.less @@ -195,3 +195,19 @@ textarea { input, select, textarea { display: inline; } + +.optionbox { + margin-left: 0em; + margin-right: 3em; +} + +.optionbox label { + max-width: 6.5em; + text-align: left; + vertical-align: middle; + margin-right: 0em; +} + +.optionbox input { + vertical-align: middle; +} From 268dc7e4b14bf685a8fb12e5b6c3a0ce57a1896f Mon Sep 17 00:00:00 2001 From: Alexander Fuhr Date: Tue, 18 Nov 2014 18:06:36 +0100 Subject: [PATCH 4/8] Fix the add link to the resource configuration refs #7493 --- .../forms/Config/BackendConfigForm.php | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/modules/monitoring/application/forms/Config/BackendConfigForm.php b/modules/monitoring/application/forms/Config/BackendConfigForm.php index f467b8f59..4b1aa65b6 100644 --- a/modules/monitoring/application/forms/Config/BackendConfigForm.php +++ b/modules/monitoring/application/forms/Config/BackendConfigForm.php @@ -237,18 +237,28 @@ class BackendConfigForm extends ConfigForm ) ); - $resourceName = (isset($formData['resource'])) ? $formData['resource'] : $this->getValue('resource'); - if ($resourceElement) { - $resourceElement->getDecorator('Description')->setEscape(false); - $link = sprintf( - '%s', - $this->getView()->href('/icingaweb/config/editresource', array('resource' => $resourceName)), - mt('monitoring', 'Show resource configuration') - ); - $resourceElement->setDescription($resourceElement->getDescription() . ' (' . $link . ')'); + if (empty($formData)) { + $options = $resourceElement->options; + $resourceName = array_shift($options); + } else { + $resourceName = (isset($formData['resource'])) ? $formData['resource'] : $this->getValue('resource'); } $this->addElement($resourceElement); + if ($resourceElement) { + $this->addElement( + 'note', + 'resource_note', + array( + 'value' => sprintf( + '%s', + $this->getView()->href('/icingaweb/config/editresource', array('resource' => $resourceName)), + mt('monitoring', 'Show resource configuration') + ), + 'escape' => false + ) + ); + } } } From a4f4c8d27fc5219032aa18baa17ceaf3b1f5d74d Mon Sep 17 00:00:00 2001 From: Matthias Jentsch Date: Tue, 18 Nov 2014 19:12:53 +0100 Subject: [PATCH 5/8] Support filter editing in event history Add a FilterEditor to the eventhistory view, fix CSS layout resolves #6979 --- .../application/controllers/ListController.php | 2 +- .../views/scripts/list/eventhistory.phtml | 10 +++++++--- modules/monitoring/public/css/module.less | 16 ++++++++++++++++ public/css/icinga/forms.less | 16 ---------------- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/modules/monitoring/application/controllers/ListController.php b/modules/monitoring/application/controllers/ListController.php index 50eff1ea6..a58304cd6 100644 --- a/modules/monitoring/application/controllers/ListController.php +++ b/modules/monitoring/application/controllers/ListController.php @@ -541,7 +541,7 @@ class Monitoring_ListController extends Controller $form->handleRequest($this->getRequest()); $this->view->form = $form; - if ($this->getRequest()->isPost()) { + if ($this->getRequest()->isPost() && !$this->getParam('modifyFilter')) { // update filter string $filters = $form->getFilter(); $url = $this->_request->getUrl(); diff --git a/modules/monitoring/application/views/scripts/list/eventhistory.phtml b/modules/monitoring/application/views/scripts/list/eventhistory.phtml index 62b635763..6bc06e2c9 100644 --- a/modules/monitoring/application/views/scripts/list/eventhistory.phtml +++ b/modules/monitoring/application/views/scripts/list/eventhistory.phtml @@ -5,11 +5,15 @@ translate('Sort by'); ?> sortControl->render($this); ?> - -
widget('limiter', array('url' => $this->url, 'max' => $this->history->count())); ?> paginationControl($history, null, null, array('preserve' => $this->preserve)); ?> - + +

+ + +
+ filterEditor ?> +
diff --git a/modules/monitoring/public/css/module.less b/modules/monitoring/public/css/module.less index 1b2a5b67d..384d1c923 100644 --- a/modules/monitoring/public/css/module.less +++ b/modules/monitoring/public/css/module.less @@ -158,3 +158,19 @@ table.avp .customvar ul { div.selection-info { padding-top:1em; } + +.optionbox { + margin-left: 0em; + margin-right: 3em; +} + +.optionbox label { + max-width: 6.5em; + text-align: left; + vertical-align: middle; + margin-right: 0em; +} + +.optionbox input { + vertical-align: middle; +} diff --git a/public/css/icinga/forms.less b/public/css/icinga/forms.less index 33a7fdd01..2acb3d4d2 100644 --- a/public/css/icinga/forms.less +++ b/public/css/icinga/forms.less @@ -195,19 +195,3 @@ textarea { input, select, textarea { display: inline; } - -.optionbox { - margin-left: 0em; - margin-right: 3em; -} - -.optionbox label { - max-width: 6.5em; - text-align: left; - vertical-align: middle; - margin-right: 0em; -} - -.optionbox input { - vertical-align: middle; -} From e97f08663e2688d9cc2a37b1b3d2968df09a85fb Mon Sep 17 00:00:00 2001 From: Alexander Fuhr Date: Tue, 18 Nov 2014 19:40:22 +0100 Subject: [PATCH 6/8] Move process info and performance info overview into monitoring health The process info and the performance info overviews are now moved to monitoring health and are available both under the 'Monitoring Health' section. But this is not the final look, we should redesign it and add more relative information data and drop unused --- .../controllers/ProcessController.php | 22 +- .../views/scripts/process/info.phtml | 212 ++++++++++++++---- modules/monitoring/configuration.php | 6 +- public/css/icinga/main-content.less | 4 + public/css/icinga/monitoring-colors.less | 7 + 5 files changed, 189 insertions(+), 62 deletions(-) diff --git a/modules/monitoring/application/controllers/ProcessController.php b/modules/monitoring/application/controllers/ProcessController.php index e843d8ecd..ca879cbaa 100644 --- a/modules/monitoring/application/controllers/ProcessController.php +++ b/modules/monitoring/application/controllers/ProcessController.php @@ -23,16 +23,9 @@ class Monitoring_ProcessController extends Controller ->add( 'info', array( - 'title' => $this->translate('Process Info'), + 'title' => $this->translate('Monitoring Health'), 'url' =>'monitoring/process/info' ) - ) - ->add( - 'performance', - array( - 'title' => $this->translate('Performance Info'), - 'url' => 'monitoring/process/performance' - ) ); } @@ -41,7 +34,7 @@ class Monitoring_ProcessController extends Controller */ public function infoAction() { - $this->view->title = $this->translate('Process Info'); + $this->view->title = $this->translate('Monitoring Health'); $this->getTabs()->activate('info'); $this->setAutorefreshInterval(10); $this->view->backendName = $this->backend->getName(); @@ -80,6 +73,14 @@ class Monitoring_ProcessController extends Controller ->load($programStatus) ->handleRequest(); $this->view->toggleFeaturesForm = $toggleFeaturesForm; + + $this->view->runtimevariables = (object) $this->backend->select() + ->from('runtimevariables', array('varname', 'varvalue')) + ->getQuery()->fetchPairs(); + + $this->view->checkperformance = $this->backend->select() + ->from('runtimesummary') + ->getQuery()->fetchAll(); } /** @@ -111,6 +112,9 @@ class Monitoring_ProcessController extends Controller } } + /** + * @todo should be dropped later + */ public function performanceAction() { $this->getTabs()->activate('performance'); diff --git a/modules/monitoring/application/views/scripts/process/info.phtml b/modules/monitoring/application/views/scripts/process/info.phtml index c659544c2..33f7c557c 100644 --- a/modules/monitoring/application/views/scripts/process/info.phtml +++ b/modules/monitoring/application/views/scripts/process/info.phtml @@ -1,55 +1,171 @@ +runtimeVariables()->create($this->runtimevariables); +$cp = $this->checkPerformance()->create($this->checkperformance); + +?>
tabs ?>
- programStatus->is_currently_running === true): ?> -
- translate('%s has been up and running with PID %d since %s'), - $this->backendName, - $this->programStatus->process_id, - $this->timeSince($this->programStatus->program_start_time)) ?> +
+ +
+

translate('Feature Commands') ?>

+ toggleFeaturesForm ?> +
+ +
+

translate('Process Info') ?>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
translate('Program Start Time') ?>dateFormat()->formatDateTime($this->programStatus->program_start_time) ?>
translate('Last Status Update'); ?>timeSince($this->programStatus->status_update_time) ?> ago
translate('Last External Command Check'); ?>timeSince($this->programStatus->last_command_check) ?> ago
translate('Last Log File Rotation'); ?>programStatus->last_log_rotation + ? $this->timeSince($this->programStatus->last_log_rotation) + : $this->translate('N/A') ?>
translate('Global Service Event Handler'); ?>programStatus->global_service_event_handler + ? $this->programStatus->global_service_event_handler + : $this->translate('N/A'); ?>
translate('Global Host Event Handler'); ?>programStatus->global_host_event_handler + ? $this->programStatus->global_host_event_handler + : $this->translate('N/A'); ?>
+ programStatus->is_currently_running === true): ?> +
+ translate('%s has been up and running with PID %d since %s'), + $this->backendName, + $this->programStatus->process_id, + $this->timeSince($this->programStatus->program_start_time)) ?> +
+ +
+ translate('%s is not running'), $this->backendName) ?> +
+ +
+ +
+

translate('Performance Info') ?>

+ +

Object summaries

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
overallscheduled
+ Hosts + + total_hosts; ?> + + total_scheduled_hosts; ?> +
+ Services + + total_services; ?> + + total_scheduled_services; ?> +
+ Average services per host + + average_services_per_host); ?> + + average_scheduled_services_per_host); ?> +
+ +

Active checks

+ + + + + + + + + + + + + + + + + + + + + + + +
LatencyExecution time
+ Host Checks + host_active_count; ?>host_active_latency_avg); ?>shost_active_execution_avg); ?>s
+ Service Checks + service_active_count; ?>service_active_latency_avg); ?>sservice_active_execution_avg); ?>s
+ +

Passive checks

+ + + + + + + + + + + +
+ Host Checks + host_passive_count; ?>
+ Service Checks + service_passive_count; ?>
+
+
- -
- translate('%s is not running'), $this->backendName) ?> -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
translate('Program Start Time') ?>dateFormat()->formatDateTime($this->programStatus->program_start_time) ?>
translate('Last Status Update'); ?>timeSince($this->programStatus->status_update_time) ?> ago
translate('Last External Command Check'); ?>timeSince($this->programStatus->last_command_check) ?> ago
translate('Last Log File Rotation'); ?>programStatus->last_log_rotation - ? $this->timeSince($this->programStatus->last_log_rotation) - : $this->translate('N/A') ?>
translate('Global Service Event Handler'); ?>programStatus->global_service_event_handler - ? $this->programStatus->global_service_event_handler - : $this->translate('N/A'); ?>
translate('Global Host Event Handler'); ?>programStatus->global_host_event_handler - ? $this->programStatus->global_host_event_handler - : $this->translate('N/A'); ?>
-
- toggleFeaturesForm ?>
diff --git a/modules/monitoring/configuration.php b/modules/monitoring/configuration.php index 64d8cb2fd..485050638 100644 --- a/modules/monitoring/configuration.php +++ b/modules/monitoring/configuration.php @@ -136,14 +136,10 @@ $section->add($this->translate('Alert Summary'), array( * System Section */ $section = $this->menuSection($this->translate('System')); -$section->add($this->translate('Process Info'), array( +$section->add($this->translate('Monitoring Health'), array( 'url' => 'monitoring/process/info', 'priority' => 120 )); -$section->add($this->translate('Performance Info'), array( - 'url' => 'monitoring/process/performance', - 'priority' => 130 -)); /* * Dashboard diff --git a/public/css/icinga/main-content.less b/public/css/icinga/main-content.less index dd9c89c92..8a759f736 100644 --- a/public/css/icinga/main-content.less +++ b/public/css/icinga/main-content.less @@ -173,3 +173,7 @@ table.benchmark { .dashboard table.benchmark { font-size: 0.9em; } + +.left { + text-align: left !important; +} diff --git a/public/css/icinga/monitoring-colors.less b/public/css/icinga/monitoring-colors.less index 17a7b59fe..7beee80d0 100644 --- a/public/css/icinga/monitoring-colors.less +++ b/public/css/icinga/monitoring-colors.less @@ -311,6 +311,13 @@ a.critical { .boxview div.box h2:first-child > a:hover { } +.boxview div.box h3 { + line-height: 1.5em; + font-size: 0.9em; + color: #555; + border-bottom: 1px solid #d9d9d9; +} + /* Box body of contents */ .boxview div.box.contents { padding: 0.2em; From 4d4d19a7ef63543ee14b592205daca55ba7c853c Mon Sep 17 00:00:00 2001 From: Alexander Fuhr Date: Tue, 18 Nov 2014 19:45:58 +0100 Subject: [PATCH 7/8] Add `translate()' to untranslated stringw in monitoring health overview --- .../views/scripts/process/info.phtml | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/modules/monitoring/application/views/scripts/process/info.phtml b/modules/monitoring/application/views/scripts/process/info.phtml index 33f7c557c..02b8eeb80 100644 --- a/modules/monitoring/application/views/scripts/process/info.phtml +++ b/modules/monitoring/application/views/scripts/process/info.phtml @@ -70,19 +70,19 @@ $cp = $this->checkPerformance()->create($this->checkperformance);

translate('Performance Info') ?>

-

Object summaries

+

translate('Object summaries') ?>

- - + +
overallscheduledtranslate('overall') ?>translate('scheduled') ?>
- Hosts + translate('Hosts') ?> total_hosts; ?> @@ -94,7 +94,7 @@ $cp = $this->checkPerformance()->create($this->checkperformance);
- Services + translate('Services') ?> total_services; ?> @@ -106,7 +106,7 @@ $cp = $this->checkPerformance()->create($this->checkperformance);
- Average services per host + translate('Average services per host') ?> average_services_per_host); ?> @@ -118,20 +118,20 @@ $cp = $this->checkPerformance()->create($this->checkperformance);
-

Active checks

+

translate('Active checks') ?>

- - + + @@ -139,7 +139,7 @@ $cp = $this->checkPerformance()->create($this->checkperformance); @@ -148,18 +148,18 @@ $cp = $this->checkPerformance()->create($this->checkperformance);
LatencyExecution timetranslate('Latency') ?>translate('Execution time') ?>
- Host Checks + translate('Host Checks') ?> host_active_count; ?> host_active_latency_avg); ?>s
- Service Checks + translate('Service Checks') ?> service_active_count; ?> service_active_latency_avg); ?>s
-

Passive checks

+

translate('Passive checks') ?>

From 8c305f59f2bbc2426847cabf1b3283a373c4ad10 Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Wed, 19 Nov 2014 06:56:36 +0100 Subject: [PATCH 8/8] LoginForm: re-establish placeholder texts --- application/forms/Authentication/LoginForm.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/forms/Authentication/LoginForm.php b/application/forms/Authentication/LoginForm.php index 41107be18..a6d69d15a 100644 --- a/application/forms/Authentication/LoginForm.php +++ b/application/forms/Authentication/LoginForm.php @@ -32,7 +32,7 @@ class LoginForm extends Form array( 'required' => true, 'label' => t('Username'), - 'placeholder' => t(''), + 'placeholder' => t('Please enter your username...'), 'class' => false === isset($formData['username']) ? 'autofocus' : '' ) ); @@ -42,7 +42,7 @@ class LoginForm extends Form array( 'required' => true, 'label' => t('Password'), - 'placeholder' => t(''), + 'placeholder' => t('...and your password'), 'class' => isset($formData['username']) ? 'autofocus' : '' ) );
- Host Checks + translate('Host Checks') ?> host_passive_count; ?>
- Service Checks + translate('Service Checks') ?> service_passive_count; ?>