Node Overview
Nodes are the network devices, servers, and equipment monitored by NMIS. Each node has configuration properties that control discovery, polling, and data collection behavior.
Node Properties
Key node configuration properties include:
Basic Properties
- name - Unique node identifier
- host - IP address or hostname
- group - Logical grouping (network, servers, etc.)
- location - Physical location reference
- businessService - Business service association
- customer - Customer or department
- active - Enable/disable monitoring
- collect - Enable/disable data collection
Node Types and Roles
'system' => {
'nodetype_list' => 'default,generic,switch,router,firewall,server',
'roletype_list' => 'default,core,distribution,access',
'nettype_list' => 'default,wan,lan,vpn,man,san,voice'
}
Node type determines:
- Which model files are applied
- What data is collected
- How the device is monitored
Role type affects:
- Event severity mapping
- Threshold levels
- Escalation policies
SNMP Configuration
SNMPv1/v2c Settings
'configuration' => {
'host' => '192.168.1.1',
'version' => 'snmpv2c',
'community' => 'public',
'port' => 161,
'max_repetitions' => 0, # Bulk operations
'timeout' => 5, # Seconds
'retries' => 1
}
SNMPv3 Settings
'configuration' => {
'host' => '192.168.1.1',
'version' => 'snmpv3',
'username' => 'nmisuser',
'authprotocol' => 'sha',
'authkey' => 'authpassword',
'privprotocol' => 'aes',
'privkey' => 'privpassword',
'context' => ''
}
Default SNMP Settings
From Config.nmis:97:
'system' => {
'default_communityRO' => 'public',
'default_username' => '',
'default_authkey' => '',
'default_authpassword' => '',
'default_privkey' => '',
'default_privpassword' => '',
'snmp_timeout' => 5,
'snmp_retries' => 1,
'snmp_max_msg_size' => 1472
}
Always use SNMPv3 with authentication and privacy for production environments. SNMPv1/v2c community strings are transmitted in clear text.
WMI Configuration
For Windows systems using WMI:
'configuration' => {
'host' => '192.168.1.10',
'wmiuser' => 'domain\\username',
'wmipassword' => 'password'
}
Node Groups
Groups organize nodes for:
- Access control
- Bulk operations
- Report generation
- Dashboard views
Default Groups
Common group names:
network - Network infrastructure
servers - Server systems
DataCenter - Data center equipment
Campus - Campus network
Branches - Branch offices
Group-Based Access
From Users.nmis:39:
'dc_ops' => {
'user' => 'dc_ops',
'groups' => 'network,DataCenter,Sales',
'privilege' => 'operator'
}
Node Import from CSV
Use node_admin.pl to bulk import nodes from CSV:
name,host,group,community,location,active,collect
router1,192.168.1.1,network,public,DataCenter,true,true
switch1,192.168.1.2,network,public,DataCenter,true,true
server1,192.168.1.10,servers,,HeadOffice,true,true
Import Command
From node_admin.pl:288:
/usr/local/nmis9/admin/node_admin.pl \
act=import_bulk \
nodes=/path/to/nodes.csv
[
{
"name": "router1",
"configuration": {
"host": "192.168.1.1",
"group": "network",
"community": "public",
"location": "DataCenter",
"active": true,
"collect": true
}
}
]
Import JSON file:
/usr/local/nmis9/admin/node_admin.pl \
act=import \
file=/path/to/nodes.json
Node Operations
Create Node
/usr/local/nmis9/admin/node_admin.pl \
act=create \
file=newnode.json
Update Node
From node_admin.pl:966:
/usr/local/nmis9/admin/node_admin.pl \
act=set \
node=router1 \
entry.configuration.community=private \
entry.configuration.collect=true
List Nodes
# List all nodes
/usr/local/nmis9/admin/node_admin.pl act=list
# List nodes in group
/usr/local/nmis9/admin/node_admin.pl \
act=list \
group=network
# List with UUIDs
/usr/local/nmis9/admin/node_admin.pl \
act=list_uuid
Show Node Details
/usr/local/nmis9/admin/node_admin.pl \
act=show \
node=router1
Export Node
/usr/local/nmis9/admin/node_admin.pl \
act=export \
node=router1 \
file=router1.json
Delete Node
/usr/local/nmis9/admin/node_admin.pl \
act=delete \
node=router1 \
confirm=YES
Node deletion is permanent. Use confirm=YES (uppercase) to prevent accidental deletion.
Node Validation
Name Validation
From Config.nmis:72:
'globals' => {
'node_name_rule' => qr/^[a-zA-Z0-9_. -]+$/ # No '/' allowed
}
Valid node names:
router-1
switch.building.1
Server_01
Invalid node names:
router/1 - Contains /
switch#1 - Contains #
Node Status
Status Fields
- nodestatus - Overall health (up, down, degraded)
- ping - Reachability status
- snmp - SNMP collection status
- wmi - WMI collection status
- last_poll - Last poll timestamp
- last_update - Last update timestamp
Demote Faulty Nodes
From Config.nmis:105:
'system' => {
'demote_faulty_nodes' => 'true' # Poll unreachable nodes once daily
}
Node Polling Control
Polling Policy
Nodes can have assigned polling policies that control:
- Poll frequency
- Collection items
- Threshold settings
Reference: Model-Policy.nmis:44
Manual Polling
# Force update
/usr/local/nmis9/bin/nmis-cli act=update node=router1
# Force collect
/usr/local/nmis9/bin/nmis-cli act=collect node=router1
Node Backup
From node_admin.pl:837:
Dump Node Data
/usr/local/nmis9/admin/node_admin.pl \
act=dump \
node=router1 \
file=/tmp/router1-backup.json
Restore Node Data
/usr/local/nmis9/admin/node_admin.pl \
act=restore \
file=/tmp/router1-backup.json
Advanced Configuration
Node Overrides
Node-specific overrides for model behavior:
'overrides' => {
'ifDescr' => 'GigabitEthernet0/0',
'collect' => 'false' # Don't collect this interface
}
Node Aliases
Alternate names for a node:
'aliases' => [
'router1.example.com',
'core-router-1'
]
IP Addresses
'addresses' => [
'192.168.1.1',
'10.0.0.1',
'172.16.0.1'
]