icingaweb2/modules/monitoring/configuration.php
Matthias Jentsch 44271471e3 Allow declarative definitions of badge renderers and improve interface
Allow the data backend, columns and generated tooltips to be defined in the configuration instead of providing subclasses for every new configuration. Provide an abstract BadgeMenuItemRenderer that allows creating Badges with less boilerplate.

fixes #9694
2015-08-20 18:16:33 +02:00

243 lines
7.9 KiB
PHP

<?php
/* Icinga Web 2 | (c) 2013-2015 Icinga Development Team | GPLv2+ */
/** @var $this \Icinga\Application\Modules\Module */
$this->providePermission(
'monitoring/command/*',
$this->translate('Allow all commands')
);
$this->providePermission(
'monitoring/command/schedule-check',
$this->translate('Allow scheduling host and service checks')
);
$this->providePermission(
'monitoring/command/acknowledge-problem',
$this->translate('Allow acknowledging host and service problems')
);
$this->providePermission(
'monitoring/command/remove-acknowledgement',
$this->translate('Allow removing problem acknowledgements')
);
$this->providePermission(
'monitoring/command/comment/*',
$this->translate('Allow adding and deleting host and service comments')
);
$this->providePermission(
'monitoring/command/comment/add',
$this->translate('Allow commenting on hosts and services')
);
$this->providePermission(
'monitoring/command/comment/delete',
$this->translate('Allow deleting host and service comments')
);
$this->providePermission(
'monitoring/command/downtime/*',
$this->translate('Allow scheduling and deleting host and service downtimes')
);
$this->providePermission(
'monitoring/command/downtime/schedule',
$this->translate('Allow scheduling host and service downtimes')
);
$this->providePermission(
'monitoring/command/downtime/delete',
$this->translate('Allow deleting host and service downtimes')
);
$this->providePermission(
'monitoring/command/process-check-result',
$this->translate('Allow processing host and service check results')
);
$this->providePermission(
'monitoring/command/feature/instance',
$this->translate('Allow processing commands for toggling features on an instance-wide basis')
);
$this->providePermission(
'monitoring/command/feature/object',
$this->translate('Allow processing commands for toggling features on host and service objects')
);
$this->providePermission(
'monitoring/command/send-custom-notification',
$this->translate('Allow sending custom notifications for hosts and services')
);
$this->provideRestriction(
'monitoring/filter/objects',
$this->translate('Restrict views to the Icinga objects that match the filter')
);
$this->provideConfigTab('backends', array(
'title' => $this->translate('Configure how to retrieve monitoring information'),
'label' => $this->translate('Backends'),
'url' => 'config'
));
$this->provideConfigTab('security', array(
'title' => $this->translate('Configure how to protect your monitoring environment against prying eyes'),
'label' => $this->translate('Security'),
'url' => 'config/security'
));
$this->provideSetupWizard('Icinga\Module\Monitoring\MonitoringWizard');
/*
* Available Search Urls
*/
$this->provideSearchUrl($this->translate('Hosts'), 'monitoring/list/hosts?sort=host_severity&limit=10', 99);
$this->provideSearchUrl($this->translate('Services'), 'monitoring/list/services?sort=service_severity&limit=10', 98);
$this->provideSearchUrl($this->translate('Hostgroups'), 'monitoring/list/hostgroups?limit=10', 97);
$this->provideSearchUrl($this->translate('Servicegroups'), 'monitoring/list/servicegroups?limit=10', 96);
/*
* Problems Section
*/
$section = $this->menuSection($this->translate('Problems'), array(
'renderer' => array(
'SummaryMenuItemRenderer',
'state' => 'critical'
),
'icon' => 'block',
'priority' => 20
));
$section->add($this->translate('Unhandled Hosts'), array(
'renderer' => array(
'Icinga\Module\Monitoring\Web\Menu\MonitoringBadgeMenuItemRenderer',
'columns' => array(
'hosts_down_unhandled' => $this->translate('%d unhandled hosts down')
),
'state' => 'critical',
'dataView' => 'statussummary'
),
'url' => 'monitoring/list/hosts?host_problem=1&host_handled=0',
'priority' => 30
));
$section->add($this->translate('Unhandled Services'), array(
'renderer' => array(
'Icinga\Module\Monitoring\Web\Menu\MonitoringBadgeMenuItemRenderer',
'columns' => array(
'services_critical_unhandled' => $this->translate('%d unhandled services critical')
),
'state' => 'critical',
'dataView' => 'statussummary'
),
'url' => 'monitoring/list/services?service_problem=1&service_handled=0&sort=service_severity',
'priority' => 40
));
$section->add($this->translate('Host Problems'), array(
'url' => 'monitoring/list/hosts?host_problem=1&sort=host_severity',
'priority' => 50
));
$section->add($this->translate('Service Problems'), array(
'url' => 'monitoring/list/services?service_problem=1&sort=service_severity&dir=desc',
'priority' => 60
));
$section->add($this->translate('Service Grid'), array(
'url' => 'monitoring/list/servicegrid?problems',
'priority' => 70
));
$section->add($this->translate('Current Downtimes'), array(
'url' => 'monitoring/list/downtimes?downtime_is_in_effect=1',
'priority' => 80
));
/*
* Overview Section
*/
$section = $this->menuSection($this->translate('Overview'), array(
'icon' => 'sitemap',
'priority' => 30
));
$section->add($this->translate('Tactical Overview'), array(
'url' => 'monitoring/tactical',
'priority' => 40
));
$section->add($this->translate('Hosts'), array(
'url' => 'monitoring/list/hosts',
'priority' => 50
));
$section->add($this->translate('Services'), array(
'url' => 'monitoring/list/services',
'priority' => 50
));
$section->add($this->translate('Servicegroups'), array(
'url' => 'monitoring/list/servicegroups',
'priority' => 60
));
$section->add($this->translate('Hostgroups'), array(
'url' => 'monitoring/list/hostgroups',
'priority' => 60
));
$section->add($this->translate('Contacts'), array(
'url' => 'monitoring/list/contacts',
'priority' => 70
));
$section->add($this->translate('Contactgroups'), array(
'url' => 'monitoring/list/contactgroups',
'priority' => 70
));
$section->add($this->translate('Comments'), array(
'url' => 'monitoring/list/comments?comment_type=(comment|ack)',
'priority' => 80
));
$section->add($this->translate('Downtimes'), array(
'url' => 'monitoring/list/downtimes',
'priority' => 80
));
$section->add($this->translate('Notifications'), array(
'url' => 'monitoring/list/notifications',
'priority' => 80
));
/*
* History Section
*/
$section = $this->menuSection($this->translate('History'), array(
'icon' => 'rewind'
));
$section->add($this->translate('Event Grid'), array(
'url' => 'monitoring/list/eventgrid',
'priority' => 50
));
$section->add($this->translate('Events'), array(
'title' => $this->translate('Event Overview'),
'url' => 'monitoring/list/eventhistory?timestamp>=-7%20days'
));
$section->add($this->translate('Timeline'))->setUrl('monitoring/timeline');
/*
* Reporting Section
*/
$section = $this->menuSection($this->translate('Reporting'), array(
'icon' => 'barchart',
'priority' => 100
));
$section->add($this->translate('Alert Summary'), array(
'url' => 'monitoring/alertsummary/index'
));
/*
* System Section
*/
$section = $this->menuSection($this->translate('System'));
$section->add($this->translate('Monitoring Health'), array(
'url' => 'monitoring/process/info',
'priority' => 720,
'renderer' => 'Icinga\Module\Monitoring\Web\Menu\BackendAvailabilityMenuItemRenderer'
));
/*
* Dashboard
*/
$dashboard = $this->dashboard($this->translate('Current Incidents'));
$dashboard->add(
$this->translate('Service Problems'),
'monitoring/list/services?service_problem=1&limit=10&sort=service_severity'
);
$dashboard->add(
$this->translate('Recently Recovered Services'),
'monitoring/list/services?service_state=0&limit=10&sort=service_last_state_change&dir=desc'
);
$dashboard->add(
$this->translate('Host Problems'),
'monitoring/list/hosts?host_problem=1&sort=host_severity'
);