From 8ca6cc32b2c789a3149861159ad258f2cb9491e3 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 14:39:39 +0200 Subject: Adding upstream version 2.11.4. Signed-off-by: Daniel Baumann --- modules/monitoring/configuration.php | 431 +++++++++++++++++++++++++++++++++++ 1 file changed, 431 insertions(+) create mode 100644 modules/monitoring/configuration.php (limited to 'modules/monitoring/configuration.php') diff --git a/modules/monitoring/configuration.php b/modules/monitoring/configuration.php new file mode 100644 index 0000000..663db93 --- /dev/null +++ b/modules/monitoring/configuration.php @@ -0,0 +1,431 @@ +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/schedule-check/active-only', + $this->translate('Allow scheduling host and service checks (Only on objects with active checks enabled)') +); +$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/feature/object/active-checks', + $this->translate('Allow processing commands for toggling active checks on host and service objects') +); +$this->providePermission( + 'monitoring/command/feature/object/passive-checks', + $this->translate('Allow processing commands for toggling passive checks on host and service objects') +); +$this->providePermission( + 'monitoring/command/feature/object/notifications', + $this->translate('Allow processing commands for toggling notifications on host and service objects') +); +$this->providePermission( + 'monitoring/command/feature/object/event-handler', + $this->translate('Allow processing commands for toggling event handlers on host and service objects') +); +$this->providePermission( + 'monitoring/command/feature/object/flap-detection', + $this->translate('Allow processing commands for toggling flap detection on host and service objects') +); +$this->providePermission( + 'monitoring/command/send-custom-notification', + $this->translate('Allow sending custom notifications for hosts and services') +); +$this->providePermission( + 'no-monitoring/contacts', + $this->translate('Prohibit access to contacts and contactgroups') +); + +$this->provideRestriction( + 'monitoring/filter/objects', + $this->translate('Restrict views to the Icinga objects that match the filter') +); +$this->provideRestriction( + 'monitoring/blacklist/properties', + $this->translate('Hide the properties of monitored 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('Tactical Overview'), 'monitoring/tactical', 100); +$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); + +/* + * Available navigation items + */ +$this->provideNavigationItem('host-action', $this->translate('Host Action')); +$this->provideNavigationItem('service-action', $this->translate('Service Action')); +// Notes are disabled as we're not sure whether to really make a difference between actions and notes +//$this->provideNavigationItem('host-note', $this->translate('Host Note')); +//$this->provideNavigationItem('service-note', $this->translate('Service Note')); + +/* + * Problems Section + */ +$section = $this->menuSection(N_('Problems'), array( + 'renderer' => array( + 'SummaryNavigationItemRenderer', + 'state' => 'critical' + ), + 'icon' => 'attention-circled', + 'priority' => 20 +)); +$section->add(N_('Host Problems'), array( + 'icon' => 'host', + 'description' => $this->translate('List current host problems'), + 'renderer' => array( + 'MonitoringBadgeNavigationItemRenderer', + 'columns' => array( + 'hosts_down_unhandled' => $this->translate('%d unhandled hosts down') + ), + 'state' => 'critical', + 'dataView' => 'unhandledhostproblems' + ), + 'url' => 'monitoring/list/hosts?host_problem=1&sort=host_severity', + 'priority' => 50 +)); +$section->add(N_('Service Problems'), array( + 'icon' => 'service', + 'description' => $this->translate('List current service problems'), + 'renderer' => array( + 'MonitoringBadgeNavigationItemRenderer', + 'columns' => array( + 'services_critical_unhandled' => $this->translate('%d unhandled services critical') + ), + 'state' => 'critical', + 'dataView' => 'unhandledserviceproblems' + ), + 'url' => 'monitoring/list/services?service_problem=1&sort=service_severity&dir=desc', + 'priority' => 60 +)); +$section->add(N_('Service Grid'), array( + 'icon' => 'services', + 'description' => $this->translate('Display service problems as grid'), + 'url' => 'monitoring/list/servicegrid?problems', + 'priority' => 70 +)); +$section->add(N_('Current Downtimes'), array( + 'icon' => 'plug', + 'description' => $this->translate('List current downtimes'), + 'url' => 'monitoring/list/downtimes?downtime_is_in_effect=1', + 'priority' => 80 +)); + +/* + * Overview Section + */ +$section = $this->menuSection(N_('Overview'), array( + 'icon' => 'binoculars', + 'priority' => 30 +)); +$section->add(N_('Tactical Overview'), array( + 'icon' => 'chart-pie', + 'description' => $this->translate('Open tactical overview'), + 'url' => 'monitoring/tactical', + 'priority' => 40 +)); +$section->add(N_('Hosts'), array( + 'icon' => 'host', + 'description' => $this->translate('List hosts'), + 'url' => 'monitoring/list/hosts', + 'priority' => 50 +)); +$section->add(N_('Services'), array( + 'icon' => 'service', + 'description' => $this->translate('List services'), + 'url' => 'monitoring/list/services', + 'priority' => 50 +)); +$section->add(N_('Servicegroups'), array( + 'icon' => 'services', + 'description' => $this->translate('List service groups'), + 'url' => 'monitoring/list/servicegroups', + 'priority' => 60 +)); +$section->add(N_('Hostgroups'), array( + 'icon' => 'host', + 'description' => $this->translate('List host groups'), + 'url' => 'monitoring/list/hostgroups', + 'priority' => 60 +)); + +// Checking the permission here since navigation items don't support negating permissions +$auth = Auth::getInstance(); +if ($auth->hasPermission('*') || ! $auth->hasPermission('no-monitoring/contacts')) { + $section->add(N_('Contacts'), array( + 'icon' => 'user', + 'description' => $this->translate('List contacts'), + 'url' => 'monitoring/list/contacts', + 'priority' => 70 + )); + $section->add(N_('Contactgroups'), array( + 'icon' => 'users', + 'description' => $this->translate('List users'), + 'url' => 'monitoring/list/contactgroups', + 'priority' => 70 + )); +} + +$section->add(N_('Comments'), array( + 'icon' => 'chat-empty', + 'description' => $this->translate('List comments'), + 'url' => 'monitoring/list/comments?comment_type=comment|comment_type=ack', + 'priority' => 80 +)); +$section->add(N_('Downtimes'), array( + 'icon' => 'plug', + 'description' => $this->translate('List downtimes'), + 'url' => 'monitoring/list/downtimes', + 'priority' => 80 +)); + +/* + * History Section + */ +$section = $this->menuSection(N_('History'), array( + 'icon' => 'history', + 'priority' => 90 +)); +$section->add(N_('Event Grid'), array( + 'icon' => 'history', + 'description' => $this->translate('Open event grid'), + 'priority' => 10, + 'url' => 'monitoring/list/eventgrid' +)); +$section->add(N_('Event Overview'), array( + 'icon' => 'history', + 'description' => $this->translate('Open event overview'), + 'priority' => 20, + 'url' => 'monitoring/list/eventhistory?timestamp>=-7%20days' +)); +$section->add(N_('Notifications'), array( + 'icon' => 'bell', + 'description' => $this->translate('List notifications'), + 'priority' => 30, + 'url' => 'monitoring/list/notifications?notification_timestamp>=-7%20days', +)); +$section->add(N_('Timeline'), array( + 'icon' => 'clock', + 'description' => $this->translate('Open timeline'), + 'priority' => 40, + 'url' => 'monitoring/timeline' +)); + +/* + * Reporting Section + */ +$section = $this->menuSection(N_('Reporting'), array( + 'icon' => 'barchart', + 'priority' => 100 +)); + +/* + * Current Incidents + */ +$dashboard = $this->dashboard(N_('Current Incidents'), array('priority' => 50)); +$dashboard->add( + N_('Service Problems'), + 'monitoring/list/services?service_problem=1&limit=10&sort=service_severity', + 100 +); +$dashboard->add( + N_('Recently Recovered Services'), + 'monitoring/list/services?service_state=0&limit=10&sort=service_last_state_change&dir=desc', + 110 +); +$dashboard->add( + N_('Host Problems'), + 'monitoring/list/hosts?host_problem=1&sort=host_severity', + 120 +); + +/* + * Overview + */ +//$dashboard = $this->dashboard(N_('Overview'), array('priority' => 60)); +//$dashboard->add( +// N_('Service Grid'), +// 'monitoring/list/servicegrid?limit=15,18' +//); +//$dashboard->add( +// N_('Service Groups'), +// 'monitoring/list/servicegroups' +//); +//$dashboard->add( +// N_('Host Groups'), +// 'monitoring/list/hostgroups' +//); + +/* + * Most Overdue + */ +$dashboard = $this->dashboard(N_('Overdue'), array('priority' => 70)); +$dashboard->add( + N_('Late Host Check Results'), + 'monitoring/list/hosts?host_next_updateadd( + N_('Late Service Check Results'), + 'monitoring/list/services?service_next_updateadd( + N_('Acknowledgements Active For At Least Three Days'), + 'monitoring/list/comments?comment_type=Ack&comment_timestamp<-3 days&sort=comment_timestamp&dir=asc', + 120 +); +$dashboard->add( + N_('Downtimes Active For More Than Three Days'), + 'monitoring/list/downtimes?downtime_is_in_effect=1&downtime_scheduled_start<-3%20days&sort=downtime_start&dir=asc', + 130 +); + +/* + * Muted Objects + */ +$dashboard = $this->dashboard(N_('Muted'), array('priority' => 80)); +$dashboard->add( + N_('Disabled Service Notifications'), + 'monitoring/list/services?service_notifications_enabled=0&limit=10', + 100 +); +$dashboard->add( + N_('Disabled Host Notifications'), + 'monitoring/list/hosts?host_notifications_enabled=0&limit=10', + 110 +); +$dashboard->add( + N_('Disabled Service Checks'), + 'monitoring/list/services?service_active_checks_enabled=0&limit=10', + 120 +); +$dashboard->add( + N_('Disabled Host Checks'), + 'monitoring/list/hosts?host_active_checks_enabled=0&limit=10', + 130 +); +$dashboard->add( + N_('Acknowledged Problem Services'), + 'monitoring/list/services?service_acknowledgement_type!=0&service_problem=1&sort=service_state&limit=10', + 140 +); +$dashboard->add( + N_('Acknowledged Problem Hosts'), + 'monitoring/list/hosts?host_acknowledgement_type!=0&host_problem=1&sort=host_severity&limit=10', + 150 +); + +/* + * Activity Stream + */ +//$dashboard = $this->dashboard(N_('Activity Stream'), array('priority' => 90)); +//$dashboard->add( +// N_('Recent Events'), +// 'monitoring/list/eventhistory?timestamp>=-3%20days&sort=timestamp&dir=desc&limit=8' +//); +//$dashboard->add( +// N_('Recent Hard State Changes'), +// 'monitoring/list/eventhistory?timestamp>=-3%20days&type=hard_state&sort=timestamp&dir=desc&limit=8' +//); +//$dashboard->add( +// N_('Recent Notifications'), +// 'monitoring/list/eventhistory?timestamp>=-3%20days&type=notify&sort=timestamp&dir=desc&limit=8' +//); +//$dashboard->add( +// N_('Downtimes Recently Started'), +// 'monitoring/list/eventhistory?timestamp>=-3%20days&type=dt_start&sort=timestamp&dir=desc&limit=8' +//); +//$dashboard->add( +// N_('Downtimes Recently Ended'), +// 'monitoring/list/eventhistory?timestamp>=-3%20days&type=dt_end&sort=timestamp&dir=desc&limit=8' +//); + +/* + * Stats + */ +//$dashboard = $this->dashboard(N_('Stats'), array('priority' => 99)); +//$dashboard->add( +// N_('Check Stats'), +// 'monitoring/health/stats' +//); +//$dashboard->add( +// N_('Process Information'), +// 'monitoring/health/info' +//); + +/* + * CSS + */ +$this->provideCssFile('service-grid.less'); +$this->provideCssFile('tables.less'); -- cgit v1.2.3