Skip to main content

Installing NMIS

This guide walks you through installing NMIS 9 on a supported Linux distribution.

System Requirements

Supported Operating Systems

NMIS 9 supports the following Linux distributions:
  • RedHat Enterprise Linux (RHEL) 7, 8, 9
  • CentOS 7, 8
  • Rocky Linux 8, 9
  • Debian 9 (Stretch), 10 (Buster), 11 (Bullseye), 12 (Bookworm)
  • Ubuntu 16.04, 18.04, 20.04, 22.04, 23.04

Hardware Requirements

  • CPU: 2+ cores recommended
  • RAM: 4GB minimum, 8GB+ recommended
  • Disk: 20GB minimum for base installation
  • Network: Internet access for installation (or offline packages)

Software Prerequisites

The installer will automatically install most dependencies, but you need:
  • Perl 5.10 or higher
  • MongoDB 4.0 or higher (installer can set this up)
  • Apache web server
  • Root or sudo access
The installation must be run as the root user or with sudo privileges.

Installation Process

1

Download NMIS

Download the latest NMIS installer from the official repository or contact FirstWave for the installation package.The installer is typically named nmis9-<version>.run or available as a source distribution.
2

Prepare the System

Ensure your system has Perl and core Perl modules installed:
sudo yum install perl-core cpan
The pre-installation script (/home/daytona/workspace/source/pre-install.sh:118-122) checks for these requirements automatically.
3

Run the Installer

Make the installer executable and run it:
chmod +x nmis9-<version>.run
sudo ./nmis9-<version>.run
For a non-interactive installation with default options:
sudo ./nmis9-<version>.run -- -y
The -y flag accepts all defaults. For custom installations, run interactively or use a preseed file.
4

Choose Installation Directory

By default, NMIS installs to /usr/local/nmis9. To specify a different location:
sudo ./nmis9-<version>.run -- -t /custom/path
As noted in /home/daytona/workspace/source/installer:73:
my $targetdir = $options{t} || "/usr/local/nmis9";
5

MongoDB Installation

The installer can automatically set up MongoDB. You’ll be prompted whether to install/configure it.To skip MongoDB installation:
sudo ./nmis9-<version>.run -- -m false
If you have an existing MongoDB instance, you can configure NMIS to use it later in the configuration file.
6

Perl Module Dependencies

The installer checks for required Perl modules and offers to install missing ones via CPAN:
# The installer will detect missing modules and prompt:
# "OK to use CPAN to install missing modules?"
From /home/daytona/workspace/source/installer:420-433, the installer checks modules like:
  • MongoDB (Perl driver)
  • Mojolicious (web framework)
  • JSON::XS
  • Time::Local
  • And many more…
You can also install modules manually:
cpan Module::Name
7

Complete Installation

The installer will:
  1. Copy files to the target directory
  2. Set up directory structure
  3. Configure permissions
  4. Run post-installation hooks
  5. Create initial configuration
Installation progress is logged to:
/usr/local/nmis9/install.log

Configuration Files

After installation, key configuration files are located at:

Main Configuration

  • /usr/local/nmis9/conf/Config.nmis - Main NMIS configuration
  • /usr/local/nmis9/conf-default/Config.nmis - Default configuration template

Database Configuration

From /home/daytona/workspace/source/conf-default/Config.nmis:2-9:
'database' => {
  'db_name' => 'nmisng',
  'db_password' => 'op42flow42',
  'db_port' => '27017',
  'db_server' => 'localhost',
  'db_username' => 'opUserRW'
}
Change the default database password in production environments!

Directory Structure

The installation creates the following directory structure (from Config.nmis:25-55):
  • /usr/local/nmis9/bin - Executable scripts and tools
  • /usr/local/nmis9/conf - Configuration files
  • /usr/local/nmis9/models-custom - Custom device models
  • /usr/local/nmis9/models-default - Default device models
  • /usr/local/nmis9/var - Variable data, RRD files, temporary files
  • /usr/local/nmis9/logs - Log files
  • /usr/local/nmis9/htdocs - Web interface files
  • /usr/local/nmis9/cgi-bin - CGI scripts

Post-Installation Steps

1

Fix File Permissions

Ensure correct permissions are set:
sudo /usr/local/nmis9/bin/nmis-cli act=fixperms
This sets the appropriate owner, group, and permissions for all NMIS files.
2

Start NMIS Daemons

Start the NMIS daemon processes:
sudo systemctl start nmisd
sudo systemctl enable nmisd
Verify daemons are running:
/usr/local/nmis9/bin/nmis-cli act=status
3

Configure Apache

Configure Apache to serve the NMIS web interface. Apache configuration files are provided in:
/usr/local/nmis9/conf-default/apache/
Copy the appropriate configuration for your Apache version and enable it.
4

Access Web Interface

Once Apache is configured, access NMIS at:
http://your-server-ip/nmis9/
Default credentials are typically set during installation or use your system authentication.

Installation Options

Non-Interactive Installation

For automated deployments:
sudo ./installer -y -t /usr/local/nmis9

Using a Preseed File

Create a preseed file with your answers:
# Generate preseed template
sudo ./installer -P preseed.txt

# Use preseed file
sudo ./installer -p preseed.txt

Offline Installation

To install without internet access:
sudo ./installer -o
Offline mode requires that all dependencies are already installed or available from local repositories.

Troubleshooting

Installation Fails

Check the installation log:
tail -f /usr/local/nmis9/install.log

Missing Perl Modules

If module installation fails, install manually:
sudo cpan Module::Name

MongoDB Connection Issues

Verify MongoDB is running:
sudo systemctl status mongod
Check database configuration in /usr/local/nmis9/conf/Config.nmis.

Next Steps

Quick Start Guide

Learn how to add your first device and start monitoring

Build docs developers (and LLMs) love