Skip to content

retigra/netbox-ping

 
 

Repository files navigation

NetBox Ping Plugin

Python NetBox License

A NetBox plugin for pinging and discovering IPs in your network.

Features

  • Ping IPs and subnets directly from NetBox
  • Auto-discover new IPs
  • Track IP status with custom fields and tags
  • Bulk scan operations
  • Dark mode compatible UI

Installation

pip install netbox-ping

Configuration

Add to your configuration.py:

PLUGINS = ['netbox_ping']

PLUGINS_CONFIG = {
    'netbox_ping': {
        'coming_soon': True
    }
}

Usage

  1. Install the plugin
  2. Navigate to Plugins > NetBox Ping
  3. Click "Create Required Fields & Tags"
  4. Start scanning your networks!

Requirements

  • NetBox 4.0 or later
  • Python 3.8 or later
  • ping command available on the system

Installation

Package Installation

  1. Install the package from your NetBox installation path:
    source /opt/netbox/venv/bin/activate
    cd /opt/netbox
    pip install git+https://github.com/DenDanskeMine/netbox-prefix-pinger.git

Enable the Plugin

  1. Add the plugin to PLUGINS in /opt/netbox/netbox/netbox/configuration.py:
    PLUGINS = [
        'netbox_ping',
    ]

Run Migrations

  1. Apply database migrations:
    cd /opt/netbox
    python3 manage.py migrate

Collect Static Files

  1. Collect static files:
    python3 manage.py collectstatic

Restart NetBox

  1. Restart the NetBox service:
    sudo systemctl restart netbox

Usage

  1. Navigate to the "Plugins" menu in NetBox
  2. Select "Network Tools" from the dropdown
  3. You'll see a list of all prefixes in your NetBox instance
  4. Two actions are available for each prefix:
    • Check Status: Checks all existing IPs in the prefix
    • Scan Subnet: Discovers and adds new active IPs

Status Indicators

  • 🟢 Online Tag: IP is responding to ping
  • 🔴 Offline Tag: IP is not responding
  • Custom Field "Up_Down": Boolean indicator of IP status

Configuration

No additional configuration is required. The plugin will automatically:

  • Create required custom fields
  • Create online/offline tags
  • Set up necessary permissions

Permissions

Users need the following permissions to use the plugin:

  • ipam.view_prefix
  • ipam.view_ipaddress

Development

To set up a development environment:

  1. Clone the repository:

    git clone https://github.com/yourusername/netbox-ping.git
    cd netbox-ping
  2. Create a virtual environment:

    python3 -m venv venv
    source venv/bin/activate
  3. Install development dependencies:

    pip install -e .

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

If you have any questions or need help, please:

  1. Open an issue on GitHub
  2. Check existing issues for answers
  3. Contact the maintainer

Acknowledgments

  • Built for NetBox (https://github.com/netbox-community/netbox)
  • Inspired by the need for simple IP status tracking, this is my first plugin for NetBox.
  • I'm not a good python developer, so this is probably not the best way to do this.
  • The plugin netbox-interface-synchronization gave me a lot of inspiration, code wise, as the offical NetBox development repo had some issues, i couldn't get around.
  • The plugin netbox-interface-synchronization is a great plugin, and i recommend using it if you need to synchronize interfaces.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 75.4%
  • HTML 24.6%