Feature Overview
NMIS supports custom fields, or custom attributes for managed nodes. For example; some organisations may find that a Country attribute is important to them. Once a custom filed is provisioned in NMIS it may be extended to opCharts.
Configuration
Configure NMIS
Modify Table-Nodes.nmis
Adding a custom field to NMIS is accomplished by modifying /usr/local/nmis8/conf/Table-Nodes.nmis. Notice that this file contains a hash with a Nodes section. For this example we will add a Country field. Several fields may be added if required. Put the new field between the 'extra_options' entry and the 'advanced_options' entry. Observe the new country field in the code block below.
--snip %hash = ( Nodes => [ # using an array for fixed order of fields { name => { mandatory => 'true', header => 'Name',display => 'key,header,text',value => [""] }}, { host => { mandatory => 'true', header => 'Name/IP Address',display => 'header,text',value => [""] }}, { group => { mandatory => 'true', header => 'Group',display => 'header,popup',value => [ @groups] }}, { community => { mandatory => 'true', header => 'SNMP Community',display => 'text',value => ["$C->{default_communityRO}"] }}, { extra_options => { special => 'separator', header => 'Extra Options'}}, { country => { header => 'Country', display => 'header,text',value => [""] }}, { netType => { header => 'Net Type', display => 'popup',value => ["wan", "lan"] }}, { roleType => { header => 'Role Type', display => 'popup',value => ["core", "distribution", "access"] }}, { location => { header => 'Location',display => 'header,popup',value => [ sort keys %{loadGenericTable('Locations')}] }}, { advanced_options => { special => 'separator', header => 'Advanced Options'}}, --snip
Verify Table-Nodes.nmis
Using the NMIS GUI navigate to System -> System Configuration -> NMIS Nodes. This should render the Table Nodes widget displaying the new field. If it does not; restore the original Table-Nodes.nmis file and try again paying close attention to syntax.
Modify Config.nmis
Modify the node_summary_field_list list attribute in /usr/local/nmis8/conf/Config.nmis. Add the new field key value previously added to Table-Nodes.nmis to this list. The code block below adds the country attribute.
--snip 'node_summary_field_list' => 'host,uuid,country,customer,businessService,serviceStatus,snmpdown,wmidown,remote_connection_name,remote_connection_url,host_addr', --snip
Verify Config.nmis
No Idea !?! What does this do?
Configure opCharts
Modify opCommon.nmis
Add the new field to the following attributes in /usr/local/omk/conf/opCommon.nmis.
- opcharts_gui_node_list_table_columns
- opcharts_node_selector_sections
- opcharts_gui_node_summary_list
Examples of modifing each of these attributes may be found in the code block below.
--snip 'opcharts_gui_node_list_table_columns' => [ { 'cell' => 'NodeLinkCell', 'comment' => 'must be present for NodeLinkCell to work on any column, use renderable => 0 to hide', 'label' => 'Name', 'name' => 'node_name', 'renderable' => 1 }, { 'cell' => 'String', 'label' => 'Host', 'name' => 'node_summary.host' }, { 'cell' => 'String', 'label' => 'Country', 'name' => 'node_summary.country' }, { 'cell' => 'NodeStatusCell', 'label' => 'Node Status', 'name' => 'node_summary.nodestatus' }, --snip 'opcharts_node_selector_sections' => [ { 'key' => 'nodestatus', 'name' => 'Node Status' }, { 'key' => 'group', 'name' => 'Group' }, { 'key' => 'roleType', 'name' => 'Node Role' }, { 'key' => 'nodeType', 'name' => 'Node Type' }, { 'key' => 'nodeVendor', 'name' => 'Node Vendor' }, { 'key' => 'country', 'name' => 'Country' } ], --snip 'opcharts_gui_node_summary_list' => [ 'name', 'country', 'group', 'host', 'host_addr', --snip
Verify opCommon.nmis
- Restart the omkd service.
- Open a browser to the opCharts GUI.
- The new field should be found as in the example below.
If any comfortableness in experienced restore the original opCommon.nmis