Skip to end of banner
Go to start of banner

DRAFT - NMIS/opCharts Integration - Custom Fields

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

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 & Verification

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.

/usr/local/nmis8/conf/Table-Nodes.nmis
--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.

Assuming everything is working as desired we may now click the 'edit' button per device and update the Country attribute.

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.

/usr/local/nmis8/conf/Config.nmis
 --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. 

/usr/local/omk/conf/opCommon.nmis
 --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

  • No labels