<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dashlet &#8211; Nagios Library</title>
	<atom:link href="https://library.nagios.com/tag/dashlet/feed/" rel="self" type="application/rss+xml" />
	<link>https://library.nagios.com</link>
	<description>Complete Nagios monitoring resources and documentation</description>
	<lastBuildDate>Tue, 31 Mar 2026 15:08:31 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://library.nagios.com/wp-content/uploads/2024/11/Nagios-Blue-N.svg</url>
	<title>Dashlet &#8211; Nagios Library</title>
	<link>https://library.nagios.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Experience Smart Dashboards in Nagios XI 2026</title>
		<link>https://library.nagios.com/documentation/smart-dashboards/</link>
		
		<dc:creator><![CDATA[Matthew Martinson]]></dc:creator>
		<pubDate>Fri, 17 Oct 2025 13:45:00 +0000</pubDate>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Nagios Updates]]></category>
		<category><![CDATA[Dashboards]]></category>
		<category><![CDATA[Dashlet]]></category>
		<guid isPermaLink="false">https://library.nagios.com/?p=64571</guid>

					<description><![CDATA[Nagios XI 2026 marks a new chapter in the evolution of monitoring and visualization.This release introduces Smart Dashboards, a reimagined way to view, organize, and act on monitoring data. Designed from the ground up, Smart Dashboards combine modern design, advanced customization, and team collaboration into a unified, dynamic interface. For years, Nagios dashboards have been [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Nagios XI 2026 marks a new chapter in the evolution of monitoring and visualization.<br>This release introduces <strong>Smart Dashboards</strong>, a reimagined way to view, organize, and act on monitoring data. Designed from the ground up, Smart Dashboards combine modern design, advanced customization, and team collaboration into a unified, dynamic interface.</p>



<figure class="wp-block-image aligncenter size-full"><img fetchpriority="high" decoding="async" width="719" height="404" src="https://library.nagios.com/wp-content/uploads/2025/10/image-14.png" alt="Image of Nagios XI 2026 Interface, showing Smart Dasboards" class="wp-image-64615" title="Experience Smart Dashboards in Nagios XI 2026 1" srcset="https://library.nagios.com/wp-content/uploads/2025/10/image-14.png 719w, https://library.nagios.com/wp-content/uploads/2025/10/image-14-300x169.png 300w" sizes="(max-width: 719px) 100vw, 719px" /><figcaption class="wp-element-caption"><em>New Layout of Smart Dashboards in XI 2026</em>.</figcaption></figure>



<p class="has-text-align-left">For years, Nagios dashboards have been the foundation of monitoring visibility, helping teams make informed decisions at a glance. Now, that experience has evolved even further. XI 2026 introduces up-to-date, customizable control centers built for modern infrastructure demands.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>A Smarter Way to Visualize Data</strong></h3>



<p>At the heart of Smart Dashboards lies one goal: turning complex data into clear insight.<br>Every dashboard can be tailored to highlight the metrics and systems that matter most, with flexible layouts and a growing library of powerful dashlets.</p>



<p>Whether tracking uptime across distributed systems, comparing host performance, or visualizing alert patterns, Smart Dashboards make it effortless to understand the state of your network at a glance.</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="720" height="343" src="https://library.nagios.com/wp-content/uploads/2025/10/image-13.png" alt="Image of the Treemap Dashlet in the Nagios XI 2026 interface" class="wp-image-64613" title="Experience Smart Dashboards in Nagios XI 2026 2" srcset="https://library.nagios.com/wp-content/uploads/2025/10/image-13.png 720w, https://library.nagios.com/wp-content/uploads/2025/10/image-13-300x143.png 300w" sizes="(max-width: 720px) 100vw, 720px" /><figcaption class="wp-element-caption"><em>The Treemap Dashlet provides a color-coded view of host and service health to quickly highlight issues.</em></figcaption></figure>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="720" height="446" src="https://library.nagios.com/wp-content/uploads/2025/10/image-16.png" alt=" Image of the Bar Chart Dashlet in the Nagios XI 2026 interface" class="wp-image-64617" title="Experience Smart Dashboards in Nagios XI 2026 3" srcset="https://library.nagios.com/wp-content/uploads/2025/10/image-16.png 720w, https://library.nagios.com/wp-content/uploads/2025/10/image-16-300x186.png 300w" sizes="(max-width: 720px) 100vw, 720px" /><figcaption class="wp-element-caption"><em>The Bar Chart Dashlet provides a clear comparison of host and service statuses, highlighting trends and helping teams monitor performance changes over time</em>.</figcaption></figure>



<p>Smart Dashboards help reduce the time between detection and action by making system health obvious at first glance.</p>



<h3 class="wp-block-heading"><strong>Introducing the New Dashlets</strong></h3>



<p>Smart Dashboards launch alongside a suite of new and improved dashlets, each built to deliver faster insights, cleaner visuals, and greater interactivity.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<ul class="wp-block-list">
<li><strong>Graph Dashlet</strong> – Visualize performance data over time, ideal for trend analysis.</li>



<li><strong>Bar Chart Dashlet</strong> – Compare hosts or services side by side for fast context.</li>



<li><strong>Gauge Dashlet</strong> – Monitor thresholds and utilization through an easy-to-read gauge.</li>



<li><strong>Pie Chart Dashlet</strong> – Display percentages and proportional data for quick breakdowns.</li>



<li><strong>Statistic Dashlet</strong> – Highlight key figures such as counts, totals, or averages.</li>



<li><strong>Text Dashlet</strong> – Add notes, context, or documentation directly to your dashboards.</li>



<li><strong>Treemap Dashlet</strong> – Understand hierarchical relationships and health status instantly.</li>



<li><strong>URL Dashlet</strong> – Embed external reports, internal tools, or live data sources.</li>



<li><strong>Alert Heatmap Dashlet</strong> – Identify recurring alerts and visualize problem frequency patterns over time.</li>
</ul>



<p>Each dashlet is crafted to improve clarity and engagement, giving administrators the ability to design dashboards that are as informative as they are intuitive.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="478" height="1012" src="https://library.nagios.com/wp-content/uploads/2025/10/image-18.png" alt="Image of dashlets in the Nagios XI 2026 interface" class="wp-image-64619" style="width:314px;height:auto" title="Experience Smart Dashboards in Nagios XI 2026 4" srcset="https://library.nagios.com/wp-content/uploads/2025/10/image-18.png 478w, https://library.nagios.com/wp-content/uploads/2025/10/image-18-142x300.png 142w" sizes="(max-width: 478px) 100vw, 478px" /><figcaption class="wp-element-caption"><em>New &amp; Improved Dashlets in XI 2026.</em></figcaption></figure>
</div>
</div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Enhanced Customization and Collaboration</strong></h3>



<p>Beyond the visual improvements, <a href="https://www.nagios.com/products/nagios-xi/" target="_blank" rel="noopener">Nagios XI 2026</a> introduces new features that make Smart Dashboards more versatile and collaborative than ever:</p>



<ul class="wp-block-list">
<li><strong>Global Dashboard Setting</strong> – Enable team-wide dashboards for unified visibility across departments and roles.</li>



<li><strong>Dashboard Wizards</strong> – Rapidly create and configure dashboards, supporting both Smart and Legacy types for a seamless experience.</li>



<li><strong>Custom Dashboard Icons and Colors</strong> – In the <strong>Neptune Theme</strong>, users can personalize icons and adjust color palettes for consistency and readability.</li>



<li><strong>Updated Dashboard Menu</strong> – Easily navigate between Smart and Legacy Dashboards across both the Modern and Neptune themes.</li>
</ul>



<p>These additions make Smart Dashboards a shared monitoring experience rather than a personal view, empowering teams to coordinate, communicate, and respond faster to emerging issues.</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="379" height="341" src="https://library.nagios.com/wp-content/uploads/2025/10/image-19.png" alt="Image of the Dashboard Wizard in Nagios Xi 2026 interface" class="wp-image-64620" style="width:421px;height:auto" title="Experience Smart Dashboards in Nagios XI 2026 5" srcset="https://library.nagios.com/wp-content/uploads/2025/10/image-19.png 379w, https://library.nagios.com/wp-content/uploads/2025/10/image-19-300x270.png 300w" sizes="(max-width: 379px) 100vw, 379px" /><figcaption class="wp-element-caption"><em>Dashboard Wizard</em>.</figcaption></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Smart Dashboards and Legacy Compatibility</strong></h3>



<p>While Smart Dashboards represent the future of visualization in Nagios XI, <strong>Legacy Dashboards remain fully supported</strong>. This ensures that longtime users can continue relying on their existing workflows while exploring the new Smart Dashboard framework at their own pace. Legacy Dashboards still provide the classic layout and functionality that Nagios XI veterans trust, while Smart Dashboards introduce the next generation of interactivity, customization, and performance. Together, they offer a seamless bridge between past reliability and future innovation.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Why Smart Dashboards Matter</strong></h3>



<p>The introduction of Smart Dashboards isn’t just about aesthetics; it’s about efficiency and insight. In environments where rapid detection and resolution are critical, visual clarity can make the difference between proactive management and reactive firefighting. By combining intuitive layouts and global visibility, Smart Dashboards give teams a centralized, intelligent command center. The result is faster response times, clearer communication, and a more connected view of system health across the enterprise.</p>



<p>Nagios XI 2026 doesn’t just display data; it helps you understand it, prioritize it, and act on it faster.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>The Future of Monitoring Visualization</strong></h3>



<p>From new dashlets and collaborative features to extensive customization, while still supporting legacy systems, this release sets a new standard for dashboards. Smart Dashboards bring together everything Nagios is known for: reliability, clarity, and control, all in a modern, intuitive interface.<br></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Resources</h3>



<p>If you are interested in using any of these great new dashboards and dashlets, below is a link to documentation to help get you started.</p>



<p><a href="https://assets.nagios.com/downloads/nagiosxi/docs/Understanding-and-Using-Dashboards-in-Nagios-XI-2026.pdf" target="_blank" rel="noreferrer noopener">Understanding and Using Dashboards in Nagios XI 2026</a></p>



<p>You can also check out this video to learn more about creating and managing Smart Dashboards: </p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Nagios XI 2026: Smart Dashboards" width="800" height="450" src="https://www.youtube.com/embed/0__8cPgXQWg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p></p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Make Custom Dashlets in Nagios XI</title>
		<link>https://library.nagios.com/tutorials/how-to-make-dashlets/</link>
		
		<dc:creator><![CDATA[Ayub Huruse]]></dc:creator>
		<pubDate>Mon, 08 Sep 2025 18:36:49 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Dashlet]]></category>
		<guid isPermaLink="false">https://library.nagios.com/?p=63707</guid>

					<description><![CDATA[Nagios XI lets you build custom dashlets for your monitoring goals. Dashlets place the metrics, visuals, and insights you need on the dashboard where your team can act. This guide shows you how to build, package, install, and customize a dashlet. For illustration, we&#8217;ll use a practical example: a dashlet that displays the top 10 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Nagios XI lets you build custom dashlets for your monitoring goals. Dashlets place the metrics, visuals, and insights you need on the dashboard where your team can act. This guide shows you how to build, package, install, and customize a dashlet. For illustration, we&#8217;ll use a practical example: a dashlet that displays the top 10 problem services in the last hour, which helps identify services frequently entering non-OK states (WARNING, CRITICAL, or UNKNOWN).</p>



<h2 class="wp-block-heading">Prerequisites</h2>



<ul class="wp-block-list">
<li>Nagios XI admin access. </li>



<li>Shell access to the XI server (optional for ZIP uploads via UI; recommended for packaging and troubleshooting). </li>



<li>Basic knowledge of PHP, SQL (if querying the database), and HTML.</li>
</ul>



<p><strong>Default Install Path:</strong> Dashlets live in <code>/usr/local/nagiosxi/html/includes/dashlets/</code>.</p>



<h2 class="wp-block-heading">Step 1: Create the Dashlet Folder</h2>



<p>Custom dashlets in Nagios XI are organized in dedicated folders under the dashlets directory. This structure keeps your code modular and easy to manage.</p>



<p>On your XI server (or locally, then ZIP and upload), set up a folder for your dashlet with the following core files:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Geist-Mono" style="font-size:.875rem;font-family:Code-Pro-Geist-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>/usr/local/nagiosxi/html/includes/dashlets/your_dashlet_name/
├─ your_dashlet_name.inc.php                      # Contains registration and rendering logic
├─ preview.png                                    # Default preview thumbnail
├─ neptune_preview.png                            # Preview for Neptune theme
├─ your_dashlet_name_neptune_light_preview.png    # Preview for Neptune Light theme</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">/usr/local/nagiosxi/html/includes/dashlets/your_dashlet_name/</span></span>
<span class="line"><span style="color: #D4D4D4">├─ your_dashlet_name.inc.php                      # Contains registration and rendering logic</span></span>
<span class="line"><span style="color: #D4D4D4">├─ preview.png                                    # Default preview thumbnail</span></span>
<span class="line"><span style="color: #D4D4D4">├─ neptune_preview.png                            # Preview for Neptune theme</span></span>
<span class="line"><span style="color: #D4D4D4">├─ your_dashlet_name_neptune_light_preview.png    # Preview for Neptune Light theme</span></span></code></pre></div>



<p>Replace your_dashlet_name with a unique, lowercase identifier (e.g., top_fails_last_hour for our example).</p>



<p><strong>Removal Tip:</strong> To uninstall a faulty dashlet manually, delete its subfolder under<br><code>/usr/local/nagiosxi/html/includes/dashlets/</code> and reload the XI UI.</p>



<h2 class="wp-block-heading">Step 2: Dashlet Code File</h2>



<p>Custom dashlets are defined in a single .inc.php file that handles registration and rendering (main). Include dashlethelper.inc.php, define an initialization function to register the dashlet and a rendering function to handle output based on modes (e.g., preview, inboard/outboard display).</p>



<p>Example (top_problem_services_last_hour.inc.php):</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Geist-Mono" style="font-size:.875rem;font-family:Code-Pro-Geist-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>&lt;?php
//
// Top Problem Services Dashlet
// Copyright (c) 2025 Your Name. All rights reserved.
//

include_once(dirname(__FILE__) . '/../dashlethelper.inc.php');

// Run the initialization function
top_problem_services_last_hour_init();

function top_problem_services_last_hour_init() {
    $name = 'top_problem_services_last_hour';

    $args = array(
        DASHLET_NAME        => $name,
        DASHLET_TITLE       => _('Top Problem Services (Last Hour)'),
        DASHLET_DESCRIPTION => _('Shows the 10 services with the most non-OK check results in the past hour (WARNING/CRITICAL/UNKNOWN).'),
        DASHLET_VERSION     => '1.0.0',
        DASHLET_DATE        => '09/04/2025',
        DASHLET_AUTHOR      => 'Your Name',
        DASHLET_COPYRIGHT   => '© ' . date('Y') . ' Your Name',
        DASHLET_LICENSE     => 'BSD',
        DASHLET_HOMEPAGE    => 'https://example.com',
        DASHLET_REFRESHRATE => 60,
        DASHLET_FUNCTION    => 'top_problem_services_last_hour_func',
        DASHLET_FILTER_GROUPS => array('custom'),
        DASHLET_OUTBOARD_CLASS => 'custom_outboardclass',
        DASHLET_INBOARD_CLASS  => 'custom_inboardclass',
        DASHLET_PREVIEW_CLASS  => 'custom_previewclass',
        DASHLET_WIDTH       => '520',
        DASHLET_HEIGHT      => '360',
        DASHLET_OPACITY     => '1.0',
        // Optional preview image helps identify it in “Available Dashlets”
        DASHLET_PREVIEW     => get_dashlets_base_url() . 'top_problem_services_last_hour/img/preview.png',
    );

    register_dashlet($name, $args);
}

function top_problem_services_last_hour_func($mode = DASHLET_MODE_PREVIEW, $id = '', $args = null) {
    $output = '';

    switch ($mode) {
        case DASHLET_MODE_GETCONFIGHTML:
            // No configuration needed for this dashlet
            $output = '';
            break;

        case DASHLET_MODE_OUTBOARD:
        case DASHLET_MODE_INBOARD:
            // Renderer logic: Fetch data and generate HTML
            require_once(dirname(__FILE__) . '/../db.inc.php'); // Provides exec_sql_query() and DB_* constants

            dashlets_data_check(); // Basic context/auth guard

            // SQL notes:
            // - Table names have a default prefix "nagios_" (e.g., nagios_servicechecks).
            // - States: 0=OK, 1=WARNING, 2=CRITICAL, 3=UNKNOWN.

            $sql = "
            SELECT
              o.name1  AS host_name,
              o.name2  AS service_desc,
              COUNT(*) AS problem_count,
              MAX(sc.start_time) AS last_problem
            FROM nagios_servicechecks sc
            JOIN nagios_objects o
              ON o.object_id = sc.service_object_id
            WHERE sc.start_time >= NOW() - INTERVAL 1 HOUR
              AND sc.state IN (1,2,3)
            GROUP BY sc.service_object_id, o.name1, o.name2
            ORDER BY problem_count DESC, last_problem DESC
            LIMIT 10";

            $rs = exec_sql_query(DB_NDOUTILS, $sql);
            $rows = [];
            if ($rs &amp;&amp; $rs->num_rows() > 0) {
                while ($r = $rs->fetch_assoc()) {
                    $rows[] = $r;
                }
            }

            // HTML output (heredoc for multi-line string)
            $output = &lt;&lt;&lt;OUTPUT
&lt;div class="pad-lr" style="font-size:13px;">
  &lt;h3 style="margin:6px 0 10px;">Top 10 Problem Services (Last 60 Minutes)&lt;/h3>
  &lt;?php if (empty(\$rows)) : ?>
    &lt;p>No problem services in the last hour.&lt;/p>
  &lt;?php else: ?>
  &lt;table class="table table-condensed table-striped" style="width:100%; border-collapse:collapse;">
    &lt;thead>
      &lt;tr>
        &lt;th style="text-align:left; padding:6px; border-bottom:1px solid #ddd;">#&lt;/th>
        &lt;th style="text-align:left; padding:6px; border-bottom:1px solid #ddd;">Host&lt;/th>
        &lt;th style="text-align:left; padding:6px; border-bottom:1px solid #ddd;">Service&lt;/th>
        &lt;th style="text-align:right; padding:6px; border-bottom:1px solid #ddd;">Problems&lt;/th>
        &lt;th style="text-align:left; padding:6px; border-bottom:1px solid #ddd;">Last Problem&lt;/th>
      &lt;/tr>
    &lt;/thead>
    &lt;tbody>
      &lt;?php \$i=1; foreach (\$rows as \$r): ?>
      &lt;tr>
        &lt;td style="padding:6px; border-bottom:1px solid #eee;">&lt;?php echo (int)\$i++; ?>&lt;/td>
        &lt;td style="padding:6px; border-bottom:1px solid #eee;">&lt;?php echo htmlspecialchars(\$r&#91;'host_name'&#93;); ?>&lt;/td>
        &lt;td style="padding:6px; border-bottom:1px solid #eee;">&lt;?php echo htmlspecialchars(\$r&#91;'service_desc'&#93;); ?>&lt;/td>
        &lt;td style="padding:6px; text-align:right; border-bottom:1px solid #eee;">&lt;?php echo (int)\$r&#91;'problem_count'&#93;; ?>&lt;/td>
        &lt;td style="padding:6px; border-bottom:1px solid #eee;">&lt;?php echo htmlspecialchars(\$r&#91;'last_problem'&#93;); ?>&lt;/td>
      &lt;/tr>
      &lt;?php endforeach; ?>
    &lt;/tbody>
  &lt;/table>
  &lt;?php endif; ?>
  &lt;div style="margin-top:6px; opacity:.8; font-size:12px;">
    &lt;em>Tips:&lt;/em> Adjust refresh in the dashlet settings. Counts are based on individual check results during the last 60 minutes.
  &lt;/div>
&lt;/div>
OUTPUT;
            break;

        case DASHLET_MODE_PREVIEW:
            $output = '&lt;p>Preview of Top 10 Problem Services (Last Hour)&lt;/p>';
            break;
    }

    return $output;
}</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">&lt;?php</span></span>
<span class="line"><span style="color: #D4D4D4">//</span></span>
<span class="line"><span style="color: #D4D4D4">// Top Problem Services Dashlet</span></span>
<span class="line"><span style="color: #D4D4D4">// Copyright (c) 2025 Your Name. All rights reserved.</span></span>
<span class="line"><span style="color: #D4D4D4">//</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">include_once(dirname(__FILE__) . &#39;/../dashlethelper.inc.php&#39;);</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">// Run the initialization function</span></span>
<span class="line"><span style="color: #D4D4D4">top_problem_services_last_hour_init();</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">function top_problem_services_last_hour_init() {</span></span>
<span class="line"><span style="color: #D4D4D4">    $name = &#39;top_problem_services_last_hour&#39;;</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">    $args = array(</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_NAME        =&gt; $name,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_TITLE       =&gt; _(&#39;Top Problem Services (Last Hour)&#39;),</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_DESCRIPTION =&gt; _(&#39;Shows the 10 services with the most non-OK check results in the past hour (WARNING/CRITICAL/UNKNOWN).&#39;),</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_VERSION     =&gt; &#39;1.0.0&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_DATE        =&gt; &#39;09/04/2025&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_AUTHOR      =&gt; &#39;Your Name&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_COPYRIGHT   =&gt; &#39;© &#39; . date(&#39;Y&#39;) . &#39; Your Name&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_LICENSE     =&gt; &#39;BSD&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_HOMEPAGE    =&gt; &#39;https://example.com&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_REFRESHRATE =&gt; 60,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_FUNCTION    =&gt; &#39;top_problem_services_last_hour_func&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_FILTER_GROUPS =&gt; array(&#39;custom&#39;),</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_OUTBOARD_CLASS =&gt; &#39;custom_outboardclass&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_INBOARD_CLASS  =&gt; &#39;custom_inboardclass&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_PREVIEW_CLASS  =&gt; &#39;custom_previewclass&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_WIDTH       =&gt; &#39;520&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_HEIGHT      =&gt; &#39;360&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_OPACITY     =&gt; &#39;1.0&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">        // Optional preview image helps identify it in “Available Dashlets”</span></span>
<span class="line"><span style="color: #D4D4D4">        DASHLET_PREVIEW     =&gt; get_dashlets_base_url() . &#39;top_problem_services_last_hour/img/preview.png&#39;,</span></span>
<span class="line"><span style="color: #D4D4D4">    );</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">    register_dashlet($name, $args);</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">function top_problem_services_last_hour_func($mode = DASHLET_MODE_PREVIEW, $id = &#39;&#39;, $args = null) {</span></span>
<span class="line"><span style="color: #D4D4D4">    $output = &#39;&#39;;</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">    switch ($mode) {</span></span>
<span class="line"><span style="color: #D4D4D4">        case DASHLET_MODE_GETCONFIGHTML:</span></span>
<span class="line"><span style="color: #D4D4D4">            // No configuration needed for this dashlet</span></span>
<span class="line"><span style="color: #D4D4D4">            $output = &#39;&#39;;</span></span>
<span class="line"><span style="color: #D4D4D4">            break;</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">        case DASHLET_MODE_OUTBOARD:</span></span>
<span class="line"><span style="color: #D4D4D4">        case DASHLET_MODE_INBOARD:</span></span>
<span class="line"><span style="color: #D4D4D4">            // Renderer logic: Fetch data and generate HTML</span></span>
<span class="line"><span style="color: #D4D4D4">            require_once(dirname(__FILE__) . &#39;/../db.inc.php&#39;); // Provides exec_sql_query() and DB_* constants</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">            dashlets_data_check(); // Basic context/auth guard</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">            // SQL notes:</span></span>
<span class="line"><span style="color: #D4D4D4">            // - Table names have a default prefix &quot;nagios_&quot; (e.g., nagios_servicechecks).</span></span>
<span class="line"><span style="color: #D4D4D4">            // - States: 0=OK, 1=WARNING, 2=CRITICAL, 3=UNKNOWN.</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">            $sql = &quot;</span></span>
<span class="line"><span style="color: #D4D4D4">            SELECT</span></span>
<span class="line"><span style="color: #D4D4D4">              o.name1  AS host_name,</span></span>
<span class="line"><span style="color: #D4D4D4">              o.name2  AS service_desc,</span></span>
<span class="line"><span style="color: #D4D4D4">              COUNT(*) AS problem_count,</span></span>
<span class="line"><span style="color: #D4D4D4">              MAX(sc.start_time) AS last_problem</span></span>
<span class="line"><span style="color: #D4D4D4">            FROM nagios_servicechecks sc</span></span>
<span class="line"><span style="color: #D4D4D4">            JOIN nagios_objects o</span></span>
<span class="line"><span style="color: #D4D4D4">              ON o.object_id = sc.service_object_id</span></span>
<span class="line"><span style="color: #D4D4D4">            WHERE sc.start_time &gt;= NOW() - INTERVAL 1 HOUR</span></span>
<span class="line"><span style="color: #D4D4D4">              AND sc.state IN (1,2,3)</span></span>
<span class="line"><span style="color: #D4D4D4">            GROUP BY sc.service_object_id, o.name1, o.name2</span></span>
<span class="line"><span style="color: #D4D4D4">            ORDER BY problem_count DESC, last_problem DESC</span></span>
<span class="line"><span style="color: #D4D4D4">            LIMIT 10&quot;;</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">            $rs = exec_sql_query(DB_NDOUTILS, $sql);</span></span>
<span class="line"><span style="color: #D4D4D4">            $rows = [];</span></span>
<span class="line"><span style="color: #D4D4D4">            if ($rs &amp;&amp; $rs-&gt;num_rows() &gt; 0) {</span></span>
<span class="line"><span style="color: #D4D4D4">                while ($r = $rs-&gt;fetch_assoc()) {</span></span>
<span class="line"><span style="color: #D4D4D4">                    $rows[] = $r;</span></span>
<span class="line"><span style="color: #D4D4D4">                }</span></span>
<span class="line"><span style="color: #D4D4D4">            }</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">            // HTML output (heredoc for multi-line string)</span></span>
<span class="line"><span style="color: #D4D4D4">            $output = &lt;&lt;&lt;OUTPUT</span></span>
<span class="line"><span style="color: #D4D4D4">&lt;div class=&quot;pad-lr&quot; style=&quot;font-size:13px;&quot;&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  &lt;h3 style=&quot;margin:6px 0 10px;&quot;&gt;Top 10 Problem Services (Last 60 Minutes)&lt;/h3&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  &lt;?php if (empty(\$rows)) : ?&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    &lt;p&gt;No problem services in the last hour.&lt;/p&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  &lt;?php else: ?&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  &lt;table class=&quot;table table-condensed table-striped&quot; style=&quot;width:100%; border-collapse:collapse;&quot;&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    &lt;thead&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      &lt;tr&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        &lt;th style=&quot;text-align:left; padding:6px; border-bottom:1px solid #ddd;&quot;&gt;#&lt;/th&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        &lt;th style=&quot;text-align:left; padding:6px; border-bottom:1px solid #ddd;&quot;&gt;Host&lt;/th&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        &lt;th style=&quot;text-align:left; padding:6px; border-bottom:1px solid #ddd;&quot;&gt;Service&lt;/th&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        &lt;th style=&quot;text-align:right; padding:6px; border-bottom:1px solid #ddd;&quot;&gt;Problems&lt;/th&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        &lt;th style=&quot;text-align:left; padding:6px; border-bottom:1px solid #ddd;&quot;&gt;Last Problem&lt;/th&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      &lt;/tr&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    &lt;/thead&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    &lt;tbody&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      &lt;?php \$i=1; foreach (\$rows as \$r): ?&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      &lt;tr&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        &lt;td style=&quot;padding:6px; border-bottom:1px solid #eee;&quot;&gt;&lt;?php echo (int)\$i++; ?&gt;&lt;/td&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        &lt;td style=&quot;padding:6px; border-bottom:1px solid #eee;&quot;&gt;&lt;?php echo htmlspecialchars(\$r&#91;&#39;host_name&#39;&#93;); ?&gt;&lt;/td&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        &lt;td style=&quot;padding:6px; border-bottom:1px solid #eee;&quot;&gt;&lt;?php echo htmlspecialchars(\$r&#91;&#39;service_desc&#39;&#93;); ?&gt;&lt;/td&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        &lt;td style=&quot;padding:6px; text-align:right; border-bottom:1px solid #eee;&quot;&gt;&lt;?php echo (int)\$r&#91;&#39;problem_count&#39;&#93;; ?&gt;&lt;/td&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        &lt;td style=&quot;padding:6px; border-bottom:1px solid #eee;&quot;&gt;&lt;?php echo htmlspecialchars(\$r&#91;&#39;last_problem&#39;&#93;); ?&gt;&lt;/td&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      &lt;/tr&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      &lt;?php endforeach; ?&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    &lt;/tbody&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  &lt;/table&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  &lt;?php endif; ?&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  &lt;div style=&quot;margin-top:6px; opacity:.8; font-size:12px;&quot;&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    &lt;em&gt;Tips:&lt;/em&gt; Adjust refresh in the dashlet settings. Counts are based on individual check results during the last 60 minutes.</span></span>
<span class="line"><span style="color: #D4D4D4">  &lt;/div&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">&lt;/div&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">OUTPUT;</span></span>
<span class="line"><span style="color: #D4D4D4">            break;</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">        case DASHLET_MODE_PREVIEW:</span></span>
<span class="line"><span style="color: #D4D4D4">            $output = &#39;&lt;p&gt;Preview of Top 10 Problem Services (Last Hour)&lt;/p&gt;&#39;;</span></span>
<span class="line"><span style="color: #D4D4D4">            break;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4"></span></span>
<span class="line"><span style="color: #D4D4D4">    return $output;</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<p><strong>Key Notes:</strong></p>



<ul class="wp-block-list">
<li>Customize fields like DASHLET_TITLE and DASHLET_DESCRIPTION. </li>



<li>The initialization function registers the dashlet with a unique name and points to the rendering function via DASHLET_FUNCTION. </li>



<li>dashlethelper.inc.php provides registration utilities. </li>



<li>Width and height are suggestions; users can resize.</li>
</ul>



<p>Here&#8217;s a quick reference table for common registration options:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td>DASHLET_NAME</td><td>Unique internal identifier (must be lowercase and unique).</td></tr><tr><td>DASHLET_TITLE</td><td>Display title in the UI.</td></tr><tr><td>DASHLET_DESCRIPTION</td><td>Brief purpose, shown in the UI (supports HTML).</td></tr><tr><td>DASHLET_VERSION</td><td>Version number (e.g., &#8216;1.0.0&#8217;).</td></tr><tr><td>DASHLET_DATE</td><td>Release date (e.g., &#8217;09/04/2025&#8242;).</td></tr><tr><td>DASHLET_AUTHOR</td><td>Author or organization name.</td></tr><tr><td>DASHLET_COPYRIGHT</td><td>Copyright notice.</td></tr><tr><td>DASHLET_LICENSE</td><td>License type (e.g., &#8216;BSD&#8217;).</td></tr><tr><td>DASHLET_HOMEPAGE</td><td>URL to homepage or docs.</td></tr><tr><td>DASHLET_REFRESHRATE</td><td>Default refresh rate in seconds.</td></tr><tr><td>DASHLET_FUNCTION</td><td>PHP function name for rendering.</td></tr><tr><td>DASHLET_FILTER_GROUPS</td><td>Array of groups for filtering in &#8220;Available Dashlets&#8221; (e.g., array(&#8216;custom&#8217;)).</td></tr><tr><td>DASHLET_OUTBOARD_CLASS</td><td>CSS class for outboard view.</td></tr><tr><td>DASHLET_INBOARD_CLASS</td><td>CSS class for inboard view.</td></tr><tr><td>DASHLET_PREVIEW_CLASS</td><td>CSS class for preview thumbnail.</td></tr><tr><td>DASHLET_WIDTH</td><td>Suggested default width in pixels.</td></tr><tr><td>DASHLET_HEIGHT</td><td>Suggested default height in pixels.</td></tr><tr><td>DASHLET_OPACITY</td><td>Opacity level (e.g., &#8216;1.0&#8217;).</td></tr><tr><td>DASHLET_PREVIEW</td><td>Path to preview image.</td></tr></tbody></table></figure>



<p><strong>How It Works</strong>:</p>



<ul class="wp-block-list">
<li>Include helpers for auth and data.</li>



<li>The rendering function handles modes: GETCONFIGHTML (for user inputs, if any), OUTBOARD/INBOARD (main display), PREVIEW (thumbnail view).</li>



<li>Fetch data via SQL on Nagios tables.</li>



<li>Render HTML (tables, charts via JS, etc.).</li>



<li><strong>Security Note</strong>: Use htmlspecialchars() to prevent XSS. Parameterize queries. Nagios XI uses MySQL by default; adjust for PostgreSQL.</li>



<li><strong>Timezone Note</strong>: NOW() uses server time; align OS/DB timezones.</li>
</ul>



<p>For Production (Prepared Statements Example): In the rendering function, replace exec_sql_query() with PDO:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Geist-Mono" style="font-size:.875rem;font-family:Code-Pro-Geist-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>$db = get_ndo_db_connection(); // Assuming PDO handle from db.inc.php
$stmt = $db->prepare($sql);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">$db = get_ndo_db_connection(); // Assuming PDO handle from db.inc.php</span></span>
<span class="line"><span style="color: #D4D4D4">$stmt = $db-&gt;prepare($sql);</span></span>
<span class="line"><span style="color: #D4D4D4">$stmt-&gt;execute();</span></span>
<span class="line"><span style="color: #D4D4D4">$rows = $stmt-&gt;fetchAll(PDO::FETCH_ASSOC);</span></span></code></pre></div>



<h2 class="wp-block-heading">Step 3: Package as ZIP</h2>



<p>To distribute or install your dashlet, package the folder as a ZIP file. This is the standard format for uploading via the Nagios XI UI.</p>



<p>From the dashlets directory:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Geist-Mono" style="font-size:.875rem;font-family:Code-Pro-Geist-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>cd /usr/local/nagiosxi/html/includes/dashlets
zip -r your_dashlet_name.zip your_dashlet_name</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">cd /usr/local/nagiosxi/html/includes/dashlets</span></span>
<span class="line"><span style="color: #D4D4D4">zip -r your_dashlet_name.zip your_dashlet_name</span></span></code></pre></div>



<p>Ensure the ZIP&#8217;s root is the folder (e.g., your_dashlet_name/&#8230;), not just files. Build locally if preferred.</p>



<h2 class="wp-block-heading">Step 4: Install via Web UI</h2>



<ol class="wp-block-list">
<li>Navigate to <strong>Admin &gt; System Extensions &gt; Manage Dashlets</strong>.</li>



<li>Click <strong>Browse</strong>, select your ZIP, and <strong>Upload &amp; Install</strong>.</li>



<li>Verify it appears in the list without errors.</li>
</ol>



<p>For a visual walkthrough of installation and management, watch this video:</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="How To Manage Dashlets in Nagios XI (Neptune Theme)" width="800" height="450" src="https://www.youtube.com/embed/QB4ZQMtzDio?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<div style="height:22px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>Uninstall method for UI</strong>: Use the delete icon in Manage Dashlets, or manually remove the folder and refresh.</p>



<p>You can also refer to this documentation for full details:</p>



<div style="height:22px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-pdfemb-pdf-embedder-viewer"><a href="https://library.nagios.com/wp-content/uploads/2025/08/Installing-Dashlets-in-Nagios-XI-2024.pdf" class="pdfemb-viewer" style="" data-width="max" data-height="max" data-toolbar="bottom" data-toolbar-fixed="off">Installing-Dashlets-in-Nagios-XI-2024</a></div>


<div style="height:22px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Here is a direct link to the PDF as well:</p>



<p><a href="https://assets.nagios.com/downloads/nagiosxi/docs/Installing-Dashlets-in-Nagios-XI-2024.pdf" target="_blank" rel="noopener">Installing-Dashlets-in-Nagios-XI-2024.</a></p>



<h2 class="wp-block-heading">Step 5: Add to a Dashboard</h2>



<h3 class="wp-block-heading">Step 5A: Legacy Method</h3>



<ol class="wp-block-list">
<li>Go to <strong>Dashboards &gt; Available Dashlets</strong>.</li>



<li>Locate your dashlet (e.g., <strong>Top Failing Checks (Last Hour)</strong>) and click <strong>Add This to a Dashboard</strong>.</li>



<li>Select a dashboard, add a title (optional), and click <strong>Add It</strong>.</li>



<li>On the dashboard, resize, move, or set refresh intervals.</li>
</ol>



<p>For a visual walkthrough of adding dashlets to dashboards in Nagios XI:</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Nagios: Adding Dashlets to Dashboards in Nagios XI" width="800" height="450" src="https://www.youtube.com/embed/8tifwJrFrxA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h3 class="wp-block-heading">Step 5B: Smart Method</h3>



<ol class="wp-block-list">
<li>Go to <strong>Dashboards &gt; Available Dashlet</strong> &gt; <strong>Grouped</strong> &gt; <strong>Custom</strong>.</li>



<li>Select your <strong>Dashlet </strong>(e.g., <strong>Top Failing Checks (Last Hour)</strong>) and click <strong>Submit</strong>.</li>



<li>Your Dashboard will automatically appear in the dashboard.</li>



<li>On the dashboard, resize, move, or set refresh intervals.</li>
</ol>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="575" height="685" src="https://library.nagios.com/wp-content/uploads/2025/09/Screenshot-2025-09-04-104649.png" alt="Add dashlet screen in Nagios XI" class="wp-image-63873" title="How to Make Custom Dashlets in Nagios XI 6" srcset="https://library.nagios.com/wp-content/uploads/2025/09/Screenshot-2025-09-04-104649.png 575w, https://library.nagios.com/wp-content/uploads/2025/09/Screenshot-2025-09-04-104649-252x300.png 252w" sizes="(max-width: 575px) 100vw, 575px" /><figcaption class="wp-element-caption">Smart method for adding dashlet</figcaption></figure>



<h2 class="wp-block-heading">Variations and Customizations</h2>



<ul class="wp-block-list">
<li><strong>Current Failures View: </strong>Query <code>nagios_servicestatus</code> with <code>current_state IN (1,2,3)</code> for real-time status instead of counts.</li>



<li><strong>Adjust Time Window: </strong>Replace <code>INTERVAL 1 HOUR</code> with <code>INTERVAL 24 HOUR</code> or custom values.</li>



<li><strong>Add Links:</strong> Link host/service to details:</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Geist-Mono" style="font-size:.875rem;font-family:Code-Pro-Geist-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>&lt;a href="/nagiosxi/includes/components/xicore/status.php?show=servicedetail&amp;host=
&lt;?php echo urlencode($r&#91;'host_name'&#93;); ?>&amp;service=&lt;?php echo
urlencode($r&#91;'service_desc'&#93;); ?>">...&lt;/a></textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">&lt;a href=&quot;/nagiosxi/includes/components/xicore/status.php?show=servicedetail&amp;host=</span></span>
<span class="line"><span style="color: #D4D4D4">&lt;?php echo urlencode($r&#91;&#39;host_name&#39;&#93;); ?&gt;&amp;service=&lt;?php echo</span></span>
<span class="line"><span style="color: #D4D4D4">urlencode($r&#91;&#39;service_desc&#39;&#93;); ?&gt;&quot;&gt;...&lt;/a&gt;</span></span></code></pre></div>



<ul class="wp-block-list">
<li>User Parameters: Add <code>DASHLET_PARAMS</code> in registration for inputs like time windows, read via <code>grab_request_var()</code>.</li>



<li>REST API Alternative: Use <code>/nagiosxi/api/v1/objects/servicestatus</code> for client-side aggregation; SQL is better for history.</li>
</ul>



<p>For a visual walkthrough of how to customize dashboards in Nagios XI, watch this video:</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="How To Customize Dashboards In Nagios XI" width="800" height="450" src="https://www.youtube.com/embed/SO8drYSHBBM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Performance and Security Best Practices</h2>



<ul class="wp-block-list">
<li><strong>Efficiency:</strong> Keep queries light; add indexes to <code>nagios_servicechecks</code> for large datasets.</li>



<li><strong>Security:</strong> Sanitize all outputs and inputs. Only admins can upload dashlets and audit code for vulnerabilities. Ensure PHP 8+ compatibility.</li>



<li><strong>Scalability:</strong> Avoid long-running scripts; use caching for frequent refreshes.</li>
</ul>



<h2 class="wp-block-heading">Troubleshooting</h2>



<ul class="wp-block-list">
<li><strong>Dashlet Not Appearing:</strong> Ensure ZIP has a top-level folder with <code>.inc.php</code> registering correctly.</li>



<li><strong>Errors or White Screen:</strong> Delete the folder and check PHP logs (e.g.,<code>/var/log/httpd/error_log</code>).</li>



<li><strong>Empty Table:</strong> Verify recent failures exist; check DB prefix (default: <code>nagios_</code>).</li>



<li><strong>Additional:</strong> If file permissions are an issue, check SELinux/AppArmor logs. For API issues, confirm keys and endpoints.</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p>You&#8217;ve now built and deployed a custom dashlet that enhances Nagios XI&#8217;s monitoring<br>capabilities. This example is a gateway to more advanced customization experiments<br>with <a href="https://library.nagios.com/apis/" target="_blank" data-type="page" data-id="51338" rel="noreferrer noopener">APIs</a>, charts, or integrations. Share your variations in the comments, and remember:<br>effective monitoring starts with visibility. If you encounter issues, test iteratively and<br>leverage the community.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>User Management Dashlet</title>
		<link>https://library.nagios.com/developer-corner/user-management-dashlet/</link>
		
		<dc:creator><![CDATA[Louie Mattia]]></dc:creator>
		<pubDate>Mon, 28 Apr 2025 14:42:05 +0000</pubDate>
				<category><![CDATA[Developer Corner]]></category>
		<category><![CDATA[Dashlet]]></category>
		<category><![CDATA[User Management]]></category>
		<guid isPermaLink="false">https://library.nagios.com/?p=53628</guid>

					<description><![CDATA[Nagios XI administrators have the capability to create and manage user accounts, each with specific permissions to monitor hosts and services within the Nagios XI instance. For administrators who require quick access to this user information, the User Management Dashlet provides an efficient solution. This Dashlet enables administrators to view, add, and remove users directly [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Nagios XI administrators have the capability to create and manage user accounts, each with specific permissions to monitor hosts and services within the Nagios XI instance. For administrators who require quick access to this user information, the User Management Dashlet provides an efficient solution. This Dashlet enables administrators to view, add, and remove users directly from their dashboards, streamlining the management process and offering a centralized interface for user oversight.</p>



<h2 class="wp-block-heading">How the User Management Dashlet works</h2>



<p>The User Management Dashlet utilizes the Nagios XI API, specifically interacting with the system tree, to retrieve and manage user information. The API endpoint designed for user data includes several details about each user, such as their user ID, username, full name, email address, and account status (enabled/disabled). However, for the dashlet’s intended functionality, only the username and user ID are required, as these are the primary identifiers necessary for adding or removing users.</p>



<p>Upon initialization, the Dashlet queries the API to fetch a list of all users within the Nagios XI instance. This list is then displayed on the administrator&#8217;s dashboard, where the user IDs and usernames are shown in an easily navigable format. With this data in hand, the administrator can efficiently perform actions such as adding new users or removing existing ones directly from the dashboard interface, without needing to navigate through multiple pages or API endpoints.</p>



<figure class="wp-block-image size-full"><a href="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105539.png"><img loading="lazy" decoding="async" width="246" height="80" src="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105539.png" alt="Screenshot 2025 04 02 105539" class="wp-image-54082" title="User Management Dashlet 7"></a><figcaption class="wp-element-caption">List of Existing Users</figcaption></figure>



<p>The user management process is seamless, allowing for immediate updates to the user list in real-time, with all changes being reflected instantly across the Nagios XI environment. The integration with the API ensures that the Dashlet always displays up-to-date information, providing administrators with a reliable and efficient tool to maintain user access.</p>



<p>The other features of this Dashlet allow an administrator to add or delete users in the Nagios XI instance. The buttons won’t do anything immediately, aside from revealing a modal where you can input or select information.</p>



<figure class="wp-block-image size-full"><a href="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-110222.png"><img loading="lazy" decoding="async" width="452" height="76" src="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-110222.png" alt="Screenshot 2025 04 02 110222" class="wp-image-54084" title="User Management Dashlet 8" srcset="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-110222.png 452w, https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-110222-300x50.png 300w" sizes="(max-width: 452px) 100vw, 452px" /></a><figcaption class="wp-element-caption">Add and Delete Buttons</figcaption></figure>



<p>Let’s start with the &#8220;Add Users&#8221; modal. This modal requests the necessary details for creating a user, including their username, full name, email, and a simple password. The password is considered simple because the new user will be prompted to change it upon logging in. Once all information is entered, pressing the button will send the request to the API, officially adding the user to Nagios XI. The newly created user will have basic privileges. This means their API access will be very limited compared to the administrator account, which is only able to view objects. If you want to make a user an administrator, you will have to change permissions in <strong>Admin>Manage Users.</strong></p>



<figure class="wp-block-image size-full"><a href="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105547.png"><img loading="lazy" decoding="async" width="299" height="437" src="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105547.png" alt="Screenshot 2025 04 02 105547" class="wp-image-54085" title="User Management Dashlet 9" srcset="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105547.png 299w, https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105547-205x300.png 205w" sizes="(max-width: 299px) 100vw, 299px" /></a><figcaption class="wp-element-caption">Add Users Modal</figcaption></figure>



<p>The final feature of this dashlet allows you to delete users. It does this fairly simply, it uses a dropdown that collects users in the same way as our earlier list. This means that the list will update when either of the dashlet functions is run. Simply choose a user from the dropdown and click delete, it will ask you to confirm just to make sure you didn&#8217;t select the wrong user, but after you confirm, the user will be deleted.</p>



<figure class="wp-block-image size-full"><a href="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105557.png"><img loading="lazy" decoding="async" width="600" height="234" src="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105557.png" alt="Screenshot 2025 04 02 105557" class="wp-image-54119" title="User Management Dashlet 10" srcset="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105557.png 600w, https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105557-300x117.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption class="wp-element-caption">Delete Users Modal</figcaption></figure>



<figure class="wp-block-image size-full"><a href="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105604.png"><img loading="lazy" decoding="async" width="568" height="137" src="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105604.png" alt="Screenshot 2025 04 02 105604" class="wp-image-54086" title="User Management Dashlet 11" srcset="https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105604.png 568w, https://library.nagios.com/wp-content/uploads/2025/04/Screenshot-2025-04-02-105604-300x72.png 300w" sizes="(max-width: 568px) 100vw, 568px" /></a><figcaption class="wp-element-caption">Delete Users Drop Down</figcaption></figure>



<p>To try the User Management Dashlet, download it <a href="https://github.com/NagiosEnterprises/dashlets-extra/tree/user-management" data-type="link" data-id="https://github.com/NagiosEnterprises/dashlets-extra/tree/user-management" target="_blank" rel="noopener">here</a>. If you&#8217;d like to read more about the Nagios XI API, please read this article: <a href="https://library.nagios.com/training/using-the-nagios-xi-api/" target="_blank" rel="noreferrer noopener">https://library.nagios.com/training/using-the-nagios-xi-api/</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Check Down Hosts at a Glance &#8211; a 2025 Nagios XI Dashlet</title>
		<link>https://library.nagios.com/support-tips/nagios-x-down-hosts-dashlet/</link>
		
		<dc:creator><![CDATA[Louie Mattia]]></dc:creator>
		<pubDate>Tue, 04 Mar 2025 20:18:38 +0000</pubDate>
				<category><![CDATA[Support Tips]]></category>
		<category><![CDATA[Dashlet]]></category>
		<category><![CDATA[Down Host]]></category>
		<guid isPermaLink="false">https://library.nagios.com/?p=43392</guid>

					<description><![CDATA[Nagios XI contains many features and details about your hosts and their services. While you can go into view them in a number of ways, sometimes with everything going on, you want a quick glance to see what the problem areas are. The Down Hosts Dashlet allows users to see in their dashboards which hosts [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Nagios XI contains many features and details about your hosts and their services. While you can go into view them in a number of ways, sometimes with everything going on, you want a quick glance to see what the problem areas are. The Down Hosts Dashlet allows users to see in their dashboards which hosts are down at a glance. We will be going over what the Dashlet does, how it works, as well as how to set it up.</p>



<h2 class="wp-block-heading">What the Hosts Down Dashlet Does &amp; How</h2>



<p>This Dashlet is a useful tool for monitoring the status of your hosts within Nagios XI. It provides a quick overview by scanning through all your hosts and displaying only those that are in a down state. This focused approach helps you identify issues faster, without having to sift through your entire list of hosts.</p>



<p>What makes this Dashlet especially convenient is that each host name is a clickable link, which takes you directly to the host&#8217;s detailed status page. This allows you to quickly investigate the problem and take the necessary actions. It&#8217;s a simple yet effective way to enhance your dashboard and streamline the monitoring process, making it easier to stay on top of any critical issues.</p>



<p>The Hosts Down Dashlet uses Nagios XI&#8217;s built-in API to collect real-time data about the status of your hosts. It queries the API to check the status of all hosts and then filters out those that are marked as down. This process ensures that the Dashlet always provides an accurate list of hosts that are down.</p>



<figure class="wp-block-image size-full"><a href="https://library.nagios.com/wp-content/uploads/2025/02/Screenshot-2025-02-25-113225.png"><img loading="lazy" decoding="async" width="465" height="269" src="https://library.nagios.com/wp-content/uploads/2025/02/Screenshot-2025-02-25-113225.png" alt="Screenshot 2025 02 25 113225" class="wp-image-50157" title="Check Down Hosts at a Glance - a 2025 Nagios XI Dashlet 12" srcset="https://library.nagios.com/wp-content/uploads/2025/02/Screenshot-2025-02-25-113225.png 465w, https://library.nagios.com/wp-content/uploads/2025/02/Screenshot-2025-02-25-113225-300x174.png 300w" sizes="(max-width: 465px) 100vw, 465px" /></a><figcaption class="wp-element-caption">Down Hosts Dashlet in use</figcaption></figure>



<h2 class="wp-block-heading">Setting up the Dashlet</h2>



<p>Once you’ve downloaded and installed the Hosts Down Dashlet on your Nagios XI instance (download <a href="https://github.com/NagiosEnterprises/dashlets-extra/blob/hosts-down/dashlet-down-hosts-dashlet.zip" data-type="link" data-id="https://github.com/NagiosEnterprises/dashlets-extra/blob/hosts-down/dashlet-down-hosts-dashlet.zip" target="_blank" rel="noopener">here</a>), setting it up is quick and easy. First, head to the Admin section to find and copy your API key. This unique code allows the Dashlet to securely access and display the necessary data from your Nagios XI instance. Then, navigate to the Dashboards tab and go to Available Dashlets. From there, locate and click on the &#8220;Down Hosts Dashlet,&#8221; choose the dashboard you want to add it to, and paste your API key in the provided field. Once that’s done, the Dashlet will be ready to show the real-time status of your hosts.</p>



<figure class="wp-block-image size-full"><a href="https://library.nagios.com/wp-content/uploads/2025/02/Screenshot-2025-02-25-113453.png"><img loading="lazy" decoding="async" width="443" height="363" src="https://library.nagios.com/wp-content/uploads/2025/02/Screenshot-2025-02-25-113453.png" alt="Screenshot 2025 02 25 113453" class="wp-image-50158" title="Check Down Hosts at a Glance - a 2025 Nagios XI Dashlet 13" srcset="https://library.nagios.com/wp-content/uploads/2025/02/Screenshot-2025-02-25-113453.png 443w, https://library.nagios.com/wp-content/uploads/2025/02/Screenshot-2025-02-25-113453-300x246.png 300w" sizes="(max-width: 443px) 100vw, 443px" /></a><figcaption class="wp-element-caption">Dashlet Setup</figcaption></figure>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Setting up the Hosts Down Dashlet in Nagios XI is a quick and straightforward process that enhances your ability to monitor critical host statuses in real time. With just a few simple steps, you can have the Dashlet up and running, giving you a clear overview of any issues that need immediate attention. For more advanced details on how the API works and how to make the most of it, check <a href="https://library.nagios.com/training/using-the-nagios-xi-api/" data-type="link" data-id="https://library.nagios.com/training/using-the-nagios-xi-api/" target="_blank" rel="noreferrer noopener">here</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PulseView: A Symmetric and Insightful Nagios XI Dashboard</title>
		<link>https://library.nagios.com/monitoring/pulseview-a-symmetric-and-insightful-nagios-xi-dashboard/</link>
		
		<dc:creator><![CDATA[Ayoub Louragli]]></dc:creator>
		<pubDate>Wed, 12 Feb 2025 13:53:50 +0000</pubDate>
				<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Dashboards]]></category>
		<category><![CDATA[Dashlet]]></category>
		<guid isPermaLink="false">https://library.nagios.com/?p=45447</guid>

					<description><![CDATA[PulseView is a custom-built Nagios XI dashboard designed for optimal monitoring and visualization of network and server health. With a focus on symmetry and clarity, PulseView integrates multiple dashlets to provide real-time insights into system performance, security threats, and overall infrastructure health. This article explores its key components and how they contribute to effective monitoring. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong>PulseView</strong> is a custom-built Nagios XI dashboard designed for optimal monitoring and visualization of network and server health. With a focus on symmetry and clarity, PulseView integrates multiple dashlets to provide real-time insights into system performance, security threats, and overall infrastructure health. This article explores its key components and how they contribute to effective monitoring.</p>



<h3 class="wp-block-heading">Design Philosophy</h3>



<p>PulseView was designed with symmetry in mind, ensuring a visually balanced layout that improves readability and ease of use. The dashboard consolidates essential monitoring metrics in an intuitive arrangement, reducing the need for excessive navigation.</p>



<h3 class="wp-block-heading">Key Dashlets Utilized</h3>



<h4 class="wp-block-heading">1. <strong>Alert History</strong></h4>



<ul class="wp-block-list">
<li>Displays historical alerts to track recurring issues.</li>



<li>Helps identify patterns in system failures and service disruptions.</li>
</ul>



<h4 class="wp-block-heading">2. <strong>Highchart Dashlet</strong></h4>



<ul class="wp-block-list">
<li>Provides dynamic visual representations of performance metrics.</li>



<li>Enables interactive exploration of data trends over time.</li>
</ul>



<h4 class="wp-block-heading">3. <strong>Internet Traffic Report</strong></h4>



<ul class="wp-block-list">
<li>Shows global internet performance indicators.</li>



<li>Assists in determining external network influences on system performance.</li>
</ul>



<h4 class="wp-block-heading">4. <strong>SANS Internet Storm Center Top 10 Rising Ports</strong></h4>



<ul class="wp-block-list">
<li>Identifies ports with increasing traffic, useful for security analysis.</li>



<li>Helps in proactive defense against emerging cyber threats.</li>
</ul>



<h4 class="wp-block-heading">5. <strong>Monitoring Engine Performance</strong></h4>



<ul class="wp-block-list">
<li>Provides real-time monitoring of the Nagios engine.</li>



<li>Displays process state, runtime, and active checks status.</li>
</ul>



<h4 class="wp-block-heading">6. <strong>Monitoring Engine Stats</strong></h4>



<ul class="wp-block-list">
<li>Tracks key performance indicators such as CPU load, memory usage, and disk utilization.</li>



<li>Ensures the monitoring system itself is functioning optimally.</li>
</ul>



<h4 class="wp-block-heading">7. <strong>Host Status Summary</strong></h4>



<ul class="wp-block-list">
<li>Categorizes monitored hosts into OK, Warning, Unknown, and Critical statuses.</li>



<li>Facilitates quick assessment of infrastructure health.</li>
</ul>



<h4 class="wp-block-heading">8. <strong>Minemap</strong></h4>



<ul class="wp-block-list">
<li>A heatmap representation of service and host status.</li>



<li>Highlights problem areas for immediate attention.</li>
</ul>



<h4 class="wp-block-heading">9. <strong>Metrics Overview</strong></h4>



<ul class="wp-block-list">
<li>Summarizes core system statistics like CPU usage, disk space, and memory allocation.</li>



<li>Helps optimize resource allocation and troubleshooting.</li>
</ul>



<h4 class="wp-block-heading">10. <strong>BBMap</strong></h4>



<ul class="wp-block-list">
<li>Provides a geographical view of monitored hosts.</li>



<li>Useful for tracking global infrastructure performance.</li>
</ul>



<h2 class="wp-block-heading">PulseView in Action</h2>



<p>With its structured layout and comprehensive data presentation, PulseView enables IT administrators to monitor their network effectively. Whether it’s tracking security threats, diagnosing system issues, or analyzing performance trends, PulseView serves as a reliable hub for real-time insights.</p>



<p>You can download PulseView dashboard from <a href="https://github.com/NagiosEnterprises/dashboards-extra/tree/Ayoub-Dashboard" data-type="link" data-id="https://github.com/NagiosEnterprises/dashboards-extra/tree/Ayoub-Dashboard" target="_blank" rel="noopener">here</a>.</p>



<p>On Nagios XI go to <strong>Dashboards > Manage My Dashboards > Import</strong> and then add the file.</p>



<figure class="wp-block-image size-large"><a href="https://library.nagios.com/wp-content/uploads/2025/02/image-157.png"><img loading="lazy" decoding="async" width="1024" height="499" src="https://library.nagios.com/wp-content/uploads/2025/02/image-157-1024x499.png" alt="image 157" class="wp-image-45992" title="PulseView: A Symmetric and Insightful Nagios XI Dashboard 14" srcset="https://library.nagios.com/wp-content/uploads/2025/02/image-157-1024x499.png 1024w, https://library.nagios.com/wp-content/uploads/2025/02/image-157-300x146.png 300w, https://library.nagios.com/wp-content/uploads/2025/02/image-157-768x375.png 768w, https://library.nagios.com/wp-content/uploads/2025/02/image-157.png 1218w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Import your Dashboard</figcaption></figure>



<h3 class="wp-block-heading">Conclusion</h3>



<p>PulseView is a testament to the power of Nagios XI’s customization capabilities. By leveraging multiple dashlets and a well-organized design, it offers a comprehensive monitoring experience that enhances operational efficiency and security. As IT environments grow more complex, dashboards like PulseView will continue to play a crucial role in maintaining system stability and performance.</p>



<p></p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Custom Space Weather Live Image Dashlet Nagios XI</title>
		<link>https://library.nagios.com/monitoring/custom-space-weather-live-image-dashlet-nagios-xi/</link>
		
		<dc:creator><![CDATA[Caleb DePaulis]]></dc:creator>
		<pubDate>Fri, 07 Feb 2025 20:10:29 +0000</pubDate>
				<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Dashlet]]></category>
		<guid isPermaLink="false">https://library.nagios.com/?p=44498</guid>

					<description><![CDATA[The Nagios Custom Space Weather Live Image Dashlet is a versatile tool that offers various options for viewing the sun and other space weather-related images. Currently, it provides 18 different images, including aurora oval images for both the northern and southern hemispheres, as well as detailed views of the sun showcasing features like sunspots, coronal [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>The Nagios Custom Space Weather Live Image Dashlet is a versatile tool that offers various options for viewing the sun and other space weather-related images. Currently, it provides 18 different images, including aurora oval images for both the northern and southern hemispheres, as well as detailed views of the sun showcasing features like sunspots, coronal holes, solar flares, and coronal mass ejections.</p>



<p>Before exploring the Dashlet, if you&#8217;d like to learn more about the importance of monitoring space weather, click <a href="https://library.nagios.com/monitoring/why-to-monitor-space-weather/" target="_blank" rel="noreferrer noopener">here </a>for an in-depth article on the topic. For those interested in tracking space weather metrics and receiving alerts, click <a href="https://library.nagios.com/monitoring/nagios-xi-space-weather-plugin/" target="_blank" rel="noreferrer noopener">here</a> to read about the plugin that helps monitor these metrics.</p>



<h2 class="wp-block-heading">The Space Weather Live Image Dashlet</h2>



<p>As mentioned earlier, the Space Weather Live Image Dashlet provides 18 different real-time images to track solar activity. It includes views of aurora ovals, sunspots, solar flares, and coronal mass ejections. This dashlet allows you to monitor space weather from both hemispheres, offering a visual way to stay informed about solar events and their potential effects on Earth.</p>



<h2 class="wp-block-heading">Different Types of Images Provided</h2>



<p>There are many different images on the space weather Dashlet. This section will list what images there are and a brief description on what the image shows or what its typical purpose is.</p>



<h3 class="wp-block-heading">Aurora Oval Map</h3>



<figure class="wp-block-image aligncenter"><img loading="lazy" decoding="async" width="800" height="800" src="https://library.nagios.com/wp-content/uploads/2025/02/image-93.png" alt="Northern Hemisphere aurora forecast map" class="wp-image-44666" title="Custom Space Weather Live Image Dashlet Nagios XI 15" srcset="https://library.nagios.com/wp-content/uploads/2025/02/image-93.png 800w, https://library.nagios.com/wp-content/uploads/2025/02/image-93-300x300.png 300w, https://library.nagios.com/wp-content/uploads/2025/02/image-93-150x150.png 150w, https://library.nagios.com/wp-content/uploads/2025/02/image-93-768x768.png 768w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Northern Hemisphere Auroral Oval Map</figcaption></figure>



<p>The two Aurora Oval Maps provide real-time insights into aurora conditions for both the northern and southern hemispheres. They show the likelihood of auroras being visible in different locations, helping users gauge the best places to spot auroras.</p>



<h3 class="wp-block-heading">Helioseismic and Magnetic Imager (HMI) Solar Images</h3>



<figure class="wp-block-image aligncenter"><img loading="lazy" decoding="async" width="512" height="512" src="https://library.nagios.com/wp-content/uploads/2025/02/image-92.png" alt="HMI Magnetogram Image" class="wp-image-44664" title="Custom Space Weather Live Image Dashlet Nagios XI 16" srcset="https://library.nagios.com/wp-content/uploads/2025/02/image-92.png 512w, https://library.nagios.com/wp-content/uploads/2025/02/image-92-300x300.png 300w, https://library.nagios.com/wp-content/uploads/2025/02/image-92-150x150.png 150w" sizes="(max-width: 512px) 100vw, 512px" /><figcaption class="wp-element-caption">HMI Magnetogram</figcaption></figure>



<p>There are three different HMI live images of the sun: Intensitygram, Magnetogram, and Magnetogram AIA (Atmospheric Imaging Assembly) 171.</p>



<ul class="wp-block-list">
<li><strong>Intensitygram</strong>: This image highlights sunspots on the sun&#8217;s surface, showing their distinct locations and labels for easy identification.</li>



<li><strong>Magnetogram</strong>: This image captures the magnetic fields of sunspots, revealing whether the sunspot has a north, south, or a combination of both magnetic regions.</li>



<li><strong>Magnetogram AIA 171</strong>: This provides a detailed view of the sun&#8217;s atmosphere, showing the magnetic activity in a broader context.</li>
</ul>



<p>The Magnetogram’s magnetic field data is particularly useful for understanding sunspot activity. Sunspots with both north and south magnetic regions are often more active and potentially more dangerous, as they are linked to higher solar flare and coronal mass ejection risks.</p>



<h3 class="wp-block-heading">Lasco C3 Coronagraph</h3>



<figure class="wp-block-image aligncenter"><img loading="lazy" decoding="async" width="512" height="512" src="https://library.nagios.com/wp-content/uploads/2025/02/image-91.png" alt="Lasco C3 Coronagraph image" class="wp-image-44663" title="Custom Space Weather Live Image Dashlet Nagios XI 17" srcset="https://library.nagios.com/wp-content/uploads/2025/02/image-91.png 512w, https://library.nagios.com/wp-content/uploads/2025/02/image-91-300x300.png 300w, https://library.nagios.com/wp-content/uploads/2025/02/image-91-150x150.png 150w" sizes="(max-width: 512px) 100vw, 512px" /></figure>



<p>The <strong>LASCO C3 Coronagraph</strong> captures detailed images of the sun&#8217;s outer atmosphere, known as the corona, by blocking out the bright light from the sun&#8217;s surface. This allows for the observation of solar phenomena such as coronal mass ejections (CMEs) and solar wind structures. The images produced by the C3 are crucial for studying the sun&#8217;s dynamic behavior and understanding solar storms that can impact space weather. By monitoring the corona, this tool helps scientists track solar activity and predict potential impacts on Earth’s magnetosphere, satellite communications, and power grids.</p>



<h3 class="wp-block-heading">Thematic Map</h3>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="819" src="https://library.nagios.com/wp-content/uploads/2025/02/image-90-1024x819.png" alt="Thematic Map of the sun" class="wp-image-44661" title="Custom Space Weather Live Image Dashlet Nagios XI 18" srcset="https://library.nagios.com/wp-content/uploads/2025/02/image-90-1024x819.png 1024w, https://library.nagios.com/wp-content/uploads/2025/02/image-90-300x240.png 300w, https://library.nagios.com/wp-content/uploads/2025/02/image-90-768x614.png 768w, https://library.nagios.com/wp-content/uploads/2025/02/image-90-1536x1229.png 1536w, https://library.nagios.com/wp-content/uploads/2025/02/image-90.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>The Thematic Map of the sun offers a detailed, dynamic snapshot of solar activity, highlighting various features on its surface and atmosphere. It showcases solar flares, prominences, and filaments, while also marking the quiet regions and bright spots that reveal intense solar activity. Coronal holes and the sun&#8217;s limbs are clearly outlined, giving insight into the sun&#8217;s ever-changing behavior. This map provides a visual guide to understanding the sun&#8217;s diverse regions, helping researchers track solar events and better predict their potential effects on space weather and Earth.</p>



<h3 class="wp-block-heading">Coronal Hole Map</h3>



<figure class="wp-block-image aligncenter"><img loading="lazy" decoding="async" width="512" height="512" src="https://library.nagios.com/wp-content/uploads/2025/02/image-85.png" alt="Image of the Coronal Hole Map" class="wp-image-44651" title="Custom Space Weather Live Image Dashlet Nagios XI 19" srcset="https://library.nagios.com/wp-content/uploads/2025/02/image-85.png 512w, https://library.nagios.com/wp-content/uploads/2025/02/image-85-300x300.png 300w, https://library.nagios.com/wp-content/uploads/2025/02/image-85-150x150.png 150w" sizes="(max-width: 512px) 100vw, 512px" /></figure>



<p>The Coronal Hole Image highlights the locations of coronal holes on the sun&#8217;s surface. These regions are significant because they release high-speed solar winds, which can impact Earth when they are directed toward our planet. The solar winds from coronal holes can trigger geomagnetic storms, potentially disrupting satellite communications, navigation systems, and power grids. Monitoring these holes is crucial for understanding and predicting space weather events.</p>



<h3 class="wp-block-heading">SDO AIA Images</h3>



<figure class="wp-block-image aligncenter"><img loading="lazy" decoding="async" width="512" height="512" src="https://library.nagios.com/wp-content/uploads/2025/02/image-86.png" alt="Image of AIA 1600" class="wp-image-44652" title="Custom Space Weather Live Image Dashlet Nagios XI 20" srcset="https://library.nagios.com/wp-content/uploads/2025/02/image-86.png 512w, https://library.nagios.com/wp-content/uploads/2025/02/image-86-300x300.png 300w, https://library.nagios.com/wp-content/uploads/2025/02/image-86-150x150.png 150w" sizes="(max-width: 512px) 100vw, 512px" /><figcaption class="wp-element-caption">NASA AIA 1700</figcaption></figure>



<figure class="wp-block-image aligncenter"><img loading="lazy" decoding="async" width="512" height="512" src="https://library.nagios.com/wp-content/uploads/2025/02/image-88.png" alt="Image of AIA 131" class="wp-image-44656" title="Custom Space Weather Live Image Dashlet Nagios XI 21" srcset="https://library.nagios.com/wp-content/uploads/2025/02/image-88.png 512w, https://library.nagios.com/wp-content/uploads/2025/02/image-88-300x300.png 300w, https://library.nagios.com/wp-content/uploads/2025/02/image-88-150x150.png 150w" sizes="(max-width: 512px) 100vw, 512px" /><figcaption class="wp-element-caption">NASA AIA 131</figcaption></figure>



<p>The <strong>Solar Dynamics Observatory (SDO)</strong> captures detailed images of the sun through the <strong>Atmospheric Imaging Assembly (AIA)</strong>. Each wavelength provides valuable insights into different solar phenomena and space weather conditions.</p>



<ul class="wp-block-list">
<li><strong>AIA 094</strong>: Captured at 94 Ångströms, this image highlights the sun&#8217;s corona and active regions, making it ideal for observing solar flares and high-energy events.</li>



<li><strong>AIA 131</strong>: Captured at 131 Ångströms, it focuses on the hotter regions of the sun, showing solar flares, prominences, and magnetic activity in the lower corona.</li>



<li><strong>AIA 171</strong>: Captured at 171 Ångströms, this image provides a clear view of the sun’s corona, revealing coronal holes, loops, and quieter areas, helping track solar magnetic activity.</li>



<li><strong>AIA 193</strong>: Captured at 193 Ångströms, this image reveals the hotter layers of the sun’s atmosphere, highlighting solar flares, active regions, and coronal mass ejections.</li>



<li><strong>AIA 211</strong>: Captured at 211 Ångströms, it shows larger solar structures like coronal loops and magnetic field lines, aiding the study of solar wind and space weather.</li>



<li><strong>AIA 304</strong>: Captured at 304 Ångströms, it highlights cooler areas of the sun such as prominences and filaments, providing insights into solar material ejections.</li>



<li><strong>AIA 335</strong>: Captured at 335 Ångströms, this image focuses on high-energy regions, making it useful for studying solar flares and coronal structures.</li>



<li><strong>AIA 1600</strong>: Captured at 1600 Ångströms, it emphasizes the sun’s photosphere and lower chromosphere, showing sunspots and small-scale magnetic activity.</li>



<li><strong>AIA 1700</strong>: Captured at 1700 Ångströms, it reveals the sun’s photosphere and lower chromosphere, providing a detailed view of sunspots, prominences, and solar granulation.</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p>This dashlet offers a comprehensive and dynamic way to monitor solar activity in real time. By utilizing various images and maps, users can track important solar phenomena like sunspots, solar flares, coronal mass ejections, and auroras. With the ability to visualize these events through different wavelengths and map views, it helps both professionals and enthusiasts better understand space weather and its potential impact on Earth. Whether you&#8217;re studying the sun&#8217;s intricate behavior or keeping an eye on geomagnetic activity, this tool serves as a vital resource for staying informed and prepared.</p>



<h2 class="wp-block-heading">Want to Download the Dashlet?</h2>



<p>The dashlet is available for download on Nagios Enterprises&#8217; GitHub page linked <a href="https://github.com/NagiosEnterprises/dashlets-extra/tree/main/spaceweatherdashlet" target="_blank" rel="noopener">here</a>. Simply download the ZIP folder, then go to <strong>Admin &gt; System Extensions &gt; Manage Dashlets</strong> in Nagios XI. Click <strong>Browse</strong>, upload the ZIP file, and you&#8217;ll gain access to all the live images, which you can easily add to your dashboards.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Installing XI Dashlets</title>
		<link>https://library.nagios.com/documentation/installing-xi-dashlets/</link>
		
		<dc:creator><![CDATA[Ethan Galstad]]></dc:creator>
		<pubDate>Mon, 21 Jun 2010 19:43:53 +0000</pubDate>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Dashlet]]></category>
		<guid isPermaLink="false">https://libtest.nagios.com/library/products/nagios-xi/documentation/installing-xi-dashlets/</guid>

					<description><![CDATA[Dashlets are addons for Nagios XI that are used as &#8220;containers&#8221; to display specific information in UI. Once installed, users can add dashlets to one or more of their dashboards, allowing them to customize the look and feel of the information they find most useful. This document describes how to upload and install new dashlets [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Dashlets are addons for Nagios XI that are used as &#8220;containers&#8221; to display specific information in UI. Once installed, users can add dashlets to one or more of their dashboards, allowing them to customize the look and feel of the information they find most useful. This document describes how to upload and install new dashlets in Nagios XI.</p>



<p><strong>Installing Dashlets in Nagios XI &#8211; 2024 &amp; 2026</strong></p>



<p><a href="https://assets.nagios.com/downloads/nagiosxi/docs/Installing-Dashlets-in-Nagios-XI-2024.pdf" target="_blank" rel="noopener">Installing Dashlets in XI 2026</a></p>



<p><strong>Installing Dashlets in Nagios XI &#8211;  v5 (Legacy) </strong></p>



<p><a href="https://assets.nagios.com/downloads/nagiosxi/docs/Installing_XI_Dashlets.pdf" target="_blank" rel="noreferrer noopener">Installing Dashlets in X 5</a></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
