{% extends 'base/layout.html' %} {% load helpers %} {% block title %}NetBox Ping — Settings{% endblock %} {% block header %}

NetBox Ping Settings

{% endblock %} {% block content %} {# ── Page-level context banner ── #}
Site-wide defaults. These settings apply to all prefixes unless overridden. Scheduled scanning, stale detection, and ping routing can each be customised per-prefix from the prefix's Ping Status tab.
{% csrf_token %} {# ── Row 1: Scheduling + Ping Performance ── #}
Scheduled Scanning

Default schedule for all prefixes. Individual prefixes can override these intervals — or disable scanning entirely — from their Ping Status tab.

Ping Existing IPs
{% for field in form %}{% if field.name in 'auto_scan_enabled,auto_scan_interval' %}
{{ field }} {% if field.help_text %}
{{ field.help_text }}
{% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %}
{% endif %}{% endfor %}
Discover New IPs
{% for field in form %}{% if field.name in 'auto_discover_enabled,auto_discover_interval,max_prefix_size' %}
{{ field }} {% if field.help_text %}
{{ field.help_text }}
{% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %}
{% endif %}{% endfor %}
Ping Performance

Control concurrency, timeout, and what to do with reserved IPs. Raise concurrency if your system supports many open file handles.

{% for field in form %}{% if field.name in 'ping_concurrency,ping_timeout,skip_reserved_ips,ping_history_max_records' %}
{{ field }} {% if field.help_text %}
{{ field.help_text }}
{% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %}
{% endif %}{% endfor %}
{# end row 1 #} {# ── SSH Jumphost ── #}
SSH Jumphost
When enabled, all pings and scans run through the selected jumphost.
Covers scheduled auto-scans, manual "Ping All IPs", "Discover New IPs", and single-IP pings. Useful when NetBox cannot reach monitored networks directly.
Per-prefix: set Ping Mode on a prefix's Ping Status tab to Force Local (skip jumphost for that prefix) or Force SSH (use a different jumphost for that prefix only).
{% for field in form %}{% if field.name in 'ssh_jumphost_enabled,default_jumphost,ssh_fallback_to_local' %}
{{ field }} {% if field.help_text %}
{{ field.help_text }}
{% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %}
{% endif %}{% endfor %}
Configured Jumphosts
Add Jumphost
{% if jumphosts %}
{% for jh in jumphosts %} {% endfor %}
Name Host:Port Username
{{ jh.name }} {{ jh.host }}:{{ jh.port }} {{ jh.username }}
{% else %}
No jumphosts configured yet.
Add your first jumphost
{% endif %}
{# ── Row 2: DNS Servers + DNS Sync ── #}
DNS Servers

Up to three resolvers for reverse DNS lookups. Leave blank to use the system resolver.

{% for field in form %}{% if field.name in 'dns_server1,dns_server2,dns_server3,perform_dns_lookup' %}
{{ field }} {% if field.help_text %}
{{ field.help_text }}
{% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %}
{% endif %}{% endfor %}
DNS Sync to NetBox

Write resolved DNS names back to the built-in IPAddress.dns_name field in NetBox.

{% for field in form %}{% if field.name in 'dns_sync_to_netbox,dns_clear_on_missing,dns_preserve_if_alive' %}
{{ field }} {% if field.help_text %}
{{ field.help_text }}
{% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %}
{% endif %}{% endfor %}
{# end row 2 #} {# ── Stale IP Detection ── #}
Stale IP Detection

Tag IPs that have been unreachable for too long, and optionally delete them from NetBox. Use per-prefix Stale Detection mode to exclude critical prefixes.

Stale Tagging
{% for field in form %}{% if field.name in 'stale_enabled,stale_scans_threshold,stale_days_threshold' %}
{{ field }} {% if field.help_text %}
{{ field.help_text }}
{% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %}
{% endif %}{% endfor %}
Auto-Remove
{% for field in form %}{% if field.name in 'stale_remove_enabled,stale_remove_days' %}
{{ field }} {% if field.help_text %}
{{ field.help_text }}
{% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %}
{% endif %}{% endfor %}
Auto-remove permanently deletes IPs from NetBox. Protect critical prefixes by setting their Stale Detection to Exclude.
{# ── Row 3: New IP Badge + Email Notifications ── #}
New IP Badge
{% for field in form %}{% if field.name == 'new_ip_days_threshold' %}
{{ field }} {% if field.help_text %}
{{ field.help_text }}
{% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %}
{% endif %}{% endfor %}
Auto-discovered IPs display a New badge for this many days. Set to 0 to disable.
Email Notifications
{% for field in form %}{% if field.name in 'email_notifications_enabled,email_recipients,email_digest_interval' %}
{{ field }} {% if field.help_text %}
{{ field.help_text }}
{% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %}
{% endif %}{% endfor %}
{% for field in form %}{% if field.name in 'email_include_details,email_utilization_threshold,email_on_change_only' %}
{{ field }} {% if field.help_text %}
{{ field.help_text }}
{% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %}
{% endif %}{% endfor %} {% if settings.email_last_digest_sent %}
Last digest sent: {{ settings.email_last_digest_sent|timesince }} ago
{% endif %}
{# end row 3 #}
{# ── Per-Prefix Schedule Overrides ── #}
Per-Prefix Schedule Overrides Configure from a prefix's Ping Status tab
{% if schedule_data %}
{% for item in schedule_data %} {% endfor %}
Prefix Scan Scan Interval Discover Discover Interval Stale Ping Mode Last Scanned Last Discovered
{{ item.schedule.prefix.prefix }} {% if item.schedule.scan_mode == 'follow_global' %}Global {% elif item.schedule.scan_mode == 'custom_on' %}On {% else %}Off{% endif %} {% if item.schedule.scan_mode == 'custom_on' %}{{ item.schedule.get_scan_interval_display }} {% else %}{% endif %} {% if item.schedule.discover_mode == 'follow_global' %}Global {% elif item.schedule.discover_mode == 'custom_on' %}On {% else %}Off{% endif %} {% if item.schedule.discover_mode == 'custom_on' %}{{ item.schedule.get_discover_interval_display }} {% else %}{% endif %} {% if item.schedule.stale_mode == 'follow_global' %}Global {% else %}Excluded{% endif %} {% if item.schedule.ping_mode == 'follow_global' %}Global {% elif item.schedule.ping_mode == 'force_local' %}Local {% else %}SSH{% if item.schedule.custom_jumphost %}: {{ item.schedule.custom_jumphost.name }}{% endif %}{% endif %} {% if item.scan_result and item.scan_result.last_scanned %}{{ item.scan_result.last_scanned|timesince }} ago {% else %}Never{% endif %} {% if item.scan_result and item.scan_result.last_discovered %}{{ item.scan_result.last_discovered|timesince }} ago {% else %}Never{% endif %}
{% else %}
No per-prefix overrides configured yet.
Set them up from a prefix's Ping Status tab. {% endif %}
{% endblock %}