The Priority Objects component for Nagios XI allows users to visualize high-priority hosts and services based on ServiceNow's impact/urgency calculation. Priority is calculated using a standard ServiceNow matrix (1-4 scale) from custom variables set on hosts and services.
This component fills a critical gap in Nagios XI by providing a dedicated view for high-priority objects, making it easier for administrators, engineers, and executives to focus on what matters most.
- ServiceNow Priority Calculation: Calculates priority from impact/urgency custom variables
- ServiceNow Compatibility: Uses standard ServiceNow priority matrix (1-4 scale)
- Flexible Filtering: Filter by object type, priority level, and display options
- Performance Optimized: Handles large datasets with pagination and max result limits
- Nested Services: Group services under their parent hosts (optional)
- Sortable Tables: Sort by priority, type, name, host, or status
- Attempt Field: Shows current attempt/max attempts (e.g., "1/3") to distinguish hard vs soft states
- Quick Actions: Direct links to host and service detail,timeline and perfdata pages
- Performance Graphs: Internal functions to graph performance data within the component using Highcharts.
- State History: Visual timeline of state changes with soft/hard state filtering
- Priority Display: Priority indicators (P1, P2, P3, P4) with colored dots and detailed hover tooltips
- Quick Configuration: Direct link to component configuration
- Nagios XI 5.6.0 or later
- PHP 7.0 or later
- Access to Nagios XI includes directory
Clone the repository to a temporary location on your Nagios XI server:
cd /tmp
git clone https://github.com/SNapier/xi-component-priorityobjects.gitOr download the latest release as a ZIP file from the releases page and extract it.
Create the component directory in Nagios XI:
mkdir -p /usr/local/nagiosxi/html/includes/components/priorityobjectsCopy all files from the cloned repository to the component directory:
cp -r /tmp/xi-component-priorityobjects/* /usr/local/nagiosxi/html/includes/components/priorityobjects/Or if you extracted a ZIP file:
cp -r /path/to/xi-component-priorityobjects/* /usr/local/nagiosxi/html/includes/components/priorityobjects/Set the correct ownership and permissions for the component files:
chown -R nagios:nagios /usr/local/nagiosxi/html/includes/components/priorityobjects
chmod -R 755 /usr/local/nagiosxi/html/includes/components/priorityobjectsImportant: The web server user (typically nagios) must have read access to all files in the component directory.
- Navigate to Admin > System Extensions > Components in Nagios XI
- The Priority Objects component should appear in the list
- Click Configure to set up your custom variable names and options
If the component doesn't appear in the Components list:
-
Check File Permissions:
ls -la /usr/local/nagiosxi/html/includes/components/priorityobjects/
All files should be readable by the web server user.
-
Check PHP Errors:
tail -f /usr/local/nagiosxi/var/log/php_errors.log
Look for any errors related to
priorityobjects.inc.php. -
Verify File Structure: Ensure
priorityobjects.inc.phpexists in the component directory:ls -la /usr/local/nagiosxi/html/includes/components/priorityobjects/priorityobjects.inc.php
-
Check Nagios XI Logs:
tail -f /usr/local/nagiosxi/var/log/nagiosxi.log
-
Fix Permissions (if needed):
chown -R nagios:nagios /usr/local/nagiosxi/html/includes/components/priorityobjects chmod -R 755 /usr/local/nagiosxi/html/includes/components/priorityobjects find /usr/local/nagiosxi/html/includes/components/priorityobjects -type f -exec chmod 644 {} \; find /usr/local/nagiosxi/html/includes/components/priorityobjects -type d -exec chmod 755 {} \; -
Clear Browser Cache: Sometimes a hard refresh (Ctrl+F5) is needed after installation.
If you see permission errors:
-
Ensure the web server user owns the files:
chown -R nagios:nagios /usr/local/nagiosxi/html/includes/components/priorityobjects
-
Ensure directories are executable:
find /usr/local/nagiosxi/html/includes/components/priorityobjects -type d -exec chmod 755 {} \; -
Ensure files are readable:
find /usr/local/nagiosxi/html/includes/components/priorityobjects -type f -exec chmod 644 {} \;
The component calculates priority using ServiceNow's impact/urgency matrix from custom variables:
- Configure custom variable names (default:
_impactand_urgency) - Set impact and urgency values (1-4) as custom variables on hosts/services
- Priority is calculated using ServiceNow matrix:
- Priority 1 (Critical): Impact 1 + Urgency 1
- Priority 2 (High): Impact 1 + Urgency 2, or Impact 2 + Urgency 1
- Priority 3 (Medium): Impact 2 + Urgency 2, or Impact 3 + Urgency 1, or Impact 1 + Urgency 3
- Priority 4 (Low): All other combinations
- Navigate to Core Configuration Manager > Hosts/Services
- Select your config
- Choose a host or service
- Go to Custom Variables section
- Add custom variables:
_impact(or your custom name): Value 1-4_urgency(or your custom name): Value 1-4
Custom variables can be set in templates and will properly inherit to all hosts/services using that template, making it easy to configure priority for groups of related objects.
- Navigate to Home menu in Nagios XI
- Click Details section to expand it
- Click Priority Objects in the Details section
- The component will load and display priority objects based on your configuration
- Object Type: Show hosts only, services only, or both
- Priority Filter: Select which priority levels to display (1-4)
- Show Nested Services: Group services under their parent hosts
- Collapsible Filters: Click "Filter Options" header to collapse/expand filter controls (state persists across page reloads)
- Sortable Columns: Click column headers to sort
- Priority Badges: Color-coded badges (1=Red, 2=Orange, 3=Yellow, 4=Green)
- Status Indicators: Standard Nagios XI status colors and icons
- Action Links: Quick access to host/service detail pages
- Performance Graphs: Click the graph icon in the Actions column to view performance data in a modal
- Pagination: Navigate through large result sets
The component includes a self-contained performance graph viewer that displays RRD data directly in a modal window:
- Self-Contained: Uses custom graph template, no dependencies on other components
- Direct RRD Access: Uses
utils-graphs.inc.php(fetch_rrd()) for direct performance data retrieval - Highcharts Integration: Full Highcharts functionality including zoom, export, and tooltips
- Host and Service Support: Works for both host and service performance data
- URL-Encoded Names: Properly handles service names with spaces
- Error Handling: Gracefully displays message when no performance data is available
The component includes a state history viewer that displays a visual timeline of state changes for hosts and services:
- Timeline Visualization: Interactive Gantt chart showing state changes over time with colored blocks
- 12-Hour Lookback: Default 12-hour lookback period for optimal performance (configurable)
- Soft/Hard State Filtering: Toggle to show/hide soft states and hard states independently
- Visual Distinction: Soft states appear with reduced opacity, hard states are solid
- Detailed Tooltips: Hover over timeline blocks to see detailed information including:
- State type (OK, WARNING, CRITICAL, etc.)
- Start and end times
- Duration of each state
- Check attempt information
- Status output text
- Access: Click the state history icon in the Actions column to open the modal
- Host and Service Support: Works for both host and service state history
- Interactive Features: Zoom, pan, and export capabilities via Highcharts
| Impact\Urgency | 1 (Critical) | 2 (High) | 3 (Medium) | 4 (Low) |
|---|---|---|---|---|
| 1 (Critical) | Priority 1 | Priority 2 | Priority 3 | Priority 4 |
| 2 (High) | Priority 2 | Priority 3 | Priority 3 | Priority 4 |
| 3 (Medium) | Priority 3 | Priority 3 | Priority 4 | Priority 4 |
| 4 (Low) | Priority 4 | Priority 4 | Priority 4 | Priority 4 |
- Max Results: Default limit of 500 objects (configurable up to 5000)
- Pagination: Default 50 records per page (configurable: 10, 25, 50, 100, 200)
- Caching: Priority calculations are cached for performance
- Lazy Loading: Data loads via AJAX to prevent page blocking
- Auto-Refresh: Configurable auto-refresh interval (default: 30 seconds) preserves scroll position during updates
- Check that objects have impact and urgency custom variables configured
- Verify custom variable names match your configuration
- Ensure custom variable values are set to 1-4
- Check minimum priority filter setting
- Ensure objects meet the priority threshold
- Reduce max results limit
- Use more specific filters
- Increase pagination page size
- Check Nagios XI backend performance
- Verify custom variable names in component configuration
- Check that custom variables are set on objects (not just templates)
- Ensure custom variable values are numeric (1-4)
- Check object permissions
For issues, questions, or feature requests, please contact:
- Author: SNapier
- Company: NRDS
Copyright (c) 2025 NRDS. All rights reserved.
See CHANGELOG.txt for detailed version history.