Skip to content

ChristianV1977/kea-anterius

 
 

Repository files navigation

npm License: MPL 2.0

kea-anterius

  • The Anterius project is developed as part of the Google Summer of Code '18 program, with the objective to create a GUI dashboard for the Kea DHCP server that provides monitoring and configuration capabilities to users.

  • The GUI and base functionality has been adapted from the GLASS dashboard created for ISC DHCP server.

  • Anterius functionality has been modified to support interaction with Kea servers running on remote systems, by incorporating features from the REST API exposed by the Kea Control Agent.

  • Anterius supports monitoring and configuration of both DHCPv4 and DHCPv6 servers (provided they are operational at the selected control agent interface).

  • Anterius is also designed to interface with multiple server host machines by switching between control agent destination addresses.

Features

Dashboard

The home page provides a monitoring dashboard for the connected server that compiles realtime statistics and critical operating information:

  • Current Kea Server Hostname
  • Operational status of Kea servers (DHCP v4/v6) and current selection.
  • DHCP Leases per second / minute
  • Total Active Leases
  • Shared Network Distribution & Utilization
  • Subnet Distribution & Utilization

anterius_screenshots

Network Information

  • A detailed information page can be viewed for each individual shared network and subnet defined by the server that provides entity specific data such as utilization, pools, total, assigned and available no. of leases.

anterius_screenshots

anterius_screenshots

  • Page also presents tables listing the Host Reservations defined in n/w configuration and Lease Information for currently active leases from the network. Shared network page includes a list of subnets contained in the network.

anterius_screenshots

anterius_screenshots

DHCP Config Management

  • The DHCP configuration interface can be used to view and make modifications to the current server config file.

anterius_screenshots

  • Config changes can be validated with the server thru the CA API to test for errors.

anterius_screenshots

  • Updated and validated config files can be applied to the server if confirmed by the user.

anterius_screenshots

  • Anterius also provides a feature to apply configuration changes for specific networks entities (subnet/shared-network) accessible thru the edit config button available in the network detailed info pages.

anterius_screenshots

  • Config modifications can be reviewed from the File Editor tab where changes are highlighted.

anterius_screenshots

  • Config page also provides an option to save a snapshot of the current config file which can be accessed as depicted below.

DHCP Config Snapshots

  • The Snapshot centre provides admins features like viewing previously created config checkpoints and also validate and restore the config files with user confirmation.

anterius_screenshots

anterius_screenshots

DHCP Server Boot Operations

  • Anterius provides a server operation management page to execute start / stop / restart commands for DHCP v4/v6 servers. (Please note this feature is only supported for a local machine server until these commands are added to the Control Agent API)

anterius_screenshots

anterius_screenshots

Kea Log Streaming

  • Anterius includes a Log streaming page displays the syslogd output from Kea servers in real-time allowing admins to review and save logs to a text file. (Please note this feature is only supported for a local machine server, remote log streaming feature is planned to be added in a future release)

anterius_screenshots

Anterius Alerting

  • The alerting function allows admins to set custom thresholds for subnet and shared network utilization

  • Alert Levels:

    • Default 80 (Warning)
    • Default 95 (Critical)

anterius_screenshots

  • Alert Delivery Methods
    • E-Mail
    • SMS

anterius_screenshots

Installation

(Instructions for Debian/Ubuntu based systems)

Prerequisites

Kea Server installation and startup

  • Installation and operational instructions for Kea can be found in the Kea Admin Reference Guide
  • To run the Kea Server with its default configuration or specified config file, use the kea control command as shown below. (*server* = dhcp4 or dhcp6) :
~$ keactrl start -s *server*  
~$ keactrl start -s *server* -c */path/to/kea-*server*.conf* 

Configure Kea Control Agent (CA)

  • Activate the Kea Control Agent using the following command (change -c conf file path if required):
~$ kea-ctrl-agent -c /usr/local/etc/kea/kea-ctrl-agent.conf
  • The CA runs on port 8000 by default, defined in the CA config file. Please refer to the Kea Control Agent Documentation for setting CA parameters and addtional info.

  • Check status of Kea DHCPv4/v6 servers and Kea Control Agent (must be active) using the command:

~$ keactrl status

Setup Hooks Library for Leases Commands

  • Anterius employs a set of commands from the Leases hooks library to fetch current lease information from the server via the CA API. This information would be absent from the dashboard in case this hook is not configured.

  • Add the following lines to the server(v4/v6) config file to enable lease hook library:

"hooks-libraries": [{
        "library": "/usr/local/lib/hooks/libdhcp_lease_cmds.so"
}]

Install NodeJS (primary dependency)

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Anterius Installation

  • Clone source code from Github
git clone https://github.com/isc-projects/kea-anterius.git
cd kea-anterius
  • Install node modules (application dependencies)
sudo npm install
sudo npm start

Configuration with Kea Server

  • Anterius interface can be configured to work with one or more Kea server instances running either on a remote system or the local machine.

  • This characteristic is defined by the address parameter set for the Kea Control Agent that provides API access to the server.

anterius_screenshots

  • To select server host machine, browse to the Anterius Settings option from the menu and select from the list of available hostnames.

  • Navigate to the Kea Hostname List in the settings page to add/edit/delete server host machine details.

    • For local server (default mode), set address = localhost:8000
    • For remote server, set address = <public_ip:port>

anterius_screenshots

About

This is a GSoC project to create a GUI dashboard for Kea

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 76.9%
  • HTML 17.2%
  • CSS 3.0%
  • Python 2.6%
  • Shell 0.3%