Operating System
NMIS 9 supports the following Linux distributions:
Supported Distributions
RedHat/CentOS
- RHEL 7, 8, 9
- CentOS 7, 8
- Rocky Linux 8, 9
Debian/Ubuntu
- Debian 9 (Stretch), 10 (Buster), 11 (Bullseye), 12 (Bookworm)
- Ubuntu 16.04 (Xenial), 18.04 (Bionic), 20.04 (Focal), 22.04 (Jammy), 23.04 (Lunar)
The installer automatically detects your OS and installs appropriate dependencies.
Software Dependencies
Core Requirements
Perl
- Version: 5.10.1 or higher (5.32.1 recommended)
- Required for all NMIS components
MongoDB
- Version: 6.0 or 7.0
- Used for node configuration, events, and inventory data
- WiredTiger storage engine
RRDtool
- Version: 1.4 or higher
- Used for performance data storage and graphing
Perl Modules
The installer automatically installs required CPAN modules:
Critical Modules
# Core framework
Mojolicious >= 8.11
MongoDB >= 2.2.0
# Database
Config::AutoConf >= 0.3
Path::Tiny
DateTime::Locale
# Networking
IO::Socket::IP
Socket >= 1.97
Net::SNMP
Net::DNS
# Security
IO::Socket::SSL
Crypt::PasswdMD5
Crypt::Rijndael
Digest::SHA
# Data Processing
JSON::XS
JSON::PP
Time::Local >= 1.2
Excel::Writer::XLSX
Optional Modules
For extended authentication methods:
Net::LDAP # LDAP authentication
Net::LDAPS # LDAP over SSL
Crypt::UnixCrypt # Unix password hashing
Authen::TacacsPlus # TACACS+ auth
Authen::Simple::RADIUS # RADIUS auth
The installer uses cpanm to install modules. If installation fails, modules can be installed manually:
Hardware Requirements
Hardware needs scale based on the number of monitored devices:
Small Deployment (1-100 devices)
| Component | Specification |
|---|
| CPU | 2 cores, 2.0 GHz |
| RAM | 4 GB |
| Disk | 50 GB |
| Network | 100 Mbps |
Medium Deployment (100-500 devices)
| Component | Specification |
|---|
| CPU | 4 cores, 2.5 GHz |
| RAM | 8 GB |
| Disk | 200 GB (SSD recommended) |
| Network | 1 Gbps |
Large Deployment (500-2000 devices)
| Component | Specification |
|---|
| CPU | 8 cores, 3.0 GHz |
| RAM | 16 GB |
| Disk | 500 GB SSD |
| Network | 1 Gbps |
Enterprise Deployment (2000+ devices)
| Component | Specification |
|---|
| CPU | 16+ cores, 3.0+ GHz |
| RAM | 32+ GB |
| Disk | 1 TB+ SSD (NVMe preferred) |
| Network | 10 Gbps |
These are minimum requirements. Actual needs depend on:
- Polling interval (default: 5 minutes)
- Number of interfaces per device
- Data retention period
- Number of concurrent web users
Disk Space Planning
RRD Storage
Each interface generates approximately 150 KB of RRD data.
Example calculation for 500 devices with average 24 interfaces:
500 devices × 24 interfaces × 150 KB = 1.8 GB
Add 50% buffer for system metrics (CPU, memory, etc.):
1.8 GB × 1.5 = 2.7 GB for RRD data
MongoDB Database
Database size depends on:
- Number of nodes: ~50 KB per node
- Inventory items: ~10 KB per interface
- Events: ~2 KB per event
Example for 500 devices:
Nodes: 500 × 50 KB = 25 MB
Inventory: 500 × 24 × 10 KB = 120 MB
Events: 10,000 × 2 KB = 20 MB
Total: ~165 MB + indexes (~50 MB) = 215 MB
Log Files
Log rotation is enabled by default:
- Application logs: 100 MB max
- Web server logs: 100 MB max
- Rotated logs kept for 30 days
Network Requirements
Firewall Rules
Inbound (NMIS Server)
| Port | Protocol | Purpose | Required |
|---|
| 8080 | TCP | NMIS web interface | Yes |
| 161 | UDP | SNMP trap receiver | Optional |
| 162 | UDP | SNMP trap receiver | Optional |
| 2055 | UDP | NetFlow collector | Optional |
| 514 | UDP | Syslog receiver | Optional |
Outbound (NMIS Server)
| Port | Protocol | Purpose | Required |
|---|
| 161 | UDP | SNMP polling | Yes |
| 22 | TCP | SSH (for device config backup) | Optional |
| 443 | TCP | HTTPS (for cloud APIs) | Optional |
| 25/587 | TCP | SMTP (for email alerts) | Optional |
Bandwidth Requirements
SNMP polling bandwidth per device:
- Average: 5-10 Kbps
- Peak (during discovery): 50-100 Kbps
For 500 devices with 5-minute polling:
500 devices × 10 Kbps / 300 seconds = ~17 Kbps average
Peak during poll cycle: 500 devices × 10 Kbps = 5 Mbps
Bandwidth needs are minimal. Network latency is more important than throughput.
Latency Considerations
- LAN devices: < 1 ms ideal
- WAN devices: < 100 ms acceptable
- Internet devices: < 500 ms maximum
High latency increases SNMP timeouts and polling duration.
MongoDB
Allocate 50% of system RAM to MongoDB:
# /etc/mongod.conf
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 8 # For 16 GB system
RRD Updates
For systems with many devices, enable RRD caching:
# Start rrdcached
rrdcached -l unix:/var/run/rrdcached.sock -w 1800 -z 1800
Use threaded Perl for better concurrency:
perl -V:usethreads # Should show 'define'
Virtual Machine Recommendations
VMware
- Use paravirtualized SCSI controller (VMware Paravirtual)
- Enable memory reservation (100% of allocated RAM)
- Use thick-provisioned disks for database
- Disable memory ballooning for database VM
KVM/QEMU
- Use virtio drivers for disk and network
- Enable CPU pinning for large deployments
- Use host-passthrough CPU mode
Hyper-V
- Use Generation 2 VMs
- Enable Dynamic Memory with minimum = maximum
- Use fixed-size VHD for database
Docker Requirements
For containerized deployment:
Docker Engine
- Version: 20.10 or higher
- Storage driver: overlay2
Docker Compose
Host Resources
- Same CPU/RAM requirements as bare metal
- Add 2 GB overhead for containers
Browser Requirements
For accessing the web interface:
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
JavaScript must be enabled.
Internet Explorer is not supported.
Security Requirements
User Accounts
NMIS runs as the nmis user:
uid=10001(nmis) gid=10001(nmis)
The installer creates this account automatically.
File Permissions
Critical directories:
/usr/local/nmis9/conf # 0750, nmis:nmis
/usr/local/nmis9/var # 0755, nmis:nmis
/usr/local/nmis9/database # 0750, nmis:nmis
SELinux
If SELinux is enabled, the installer sets appropriate contexts:
semanage fcontext -a -t httpd_sys_content_t "/usr/local/nmis9/htdocs(/.*)?"
restorecon -R /usr/local/nmis9
Monitoring NMIS Itself
System Metrics
Monitor these metrics on the NMIS server:
- CPU usage: Should be < 70% average
- Memory usage: MongoDB should use ~50% of RAM
- Disk I/O: Watch for RRD write bottlenecks
- Network: Monitor SNMP polling latency
NMIS Health Check
/usr/local/nmis9/bin/nmis-cli act=status
Expected output:
nmisd: running (pid 1234)
Polling: active
Last poll: 2 minutes ago
Database: connected
Upgrade Paths
From NMIS 8
Migration requires:
- MongoDB 4.x or higher
- Perl 5.10.1 or higher
- Migration tools provided
See NMIS 8 Migration Guide for details.
From NMIS 9.x to 9.y
In-place upgrade supported:
sudo ./nmis9-installer.run
Backup before upgrading.
See Also