1.- Introducción

En el siguiente apartado describe el procedimiento para agregar campos personalizados a los nodo administarado por la Maquina virtual  y se podran ver reflejados en NMIS9, opCharts 4 y opReports4 dependinetdo las necesidadesd el administrado. 

Como fines prácticos para esta pagina consideraremos como ejemplo que el administrador desea agregar los siguiente campos  “Client_Entry” y “Comments_Entry”. A continuación, se muestran los archivos que se modifican con sus respectivos directorios y parámetros.

Nota: Antes de realizar cualquier cambio en los archivos se debe hacer un respaldo para restablecerlos si es necesario.

2.- Procedimiento para agregar los campos en NMIS9


1.- En el archivo Table-Nodes.nmis se agregan los campos “Client_Entry” y “Comments_Entry”

Directorio:

#El archivo Table-Nodes.nmis se encuentra en la carpeta /conf-default y de sebera transferir a la carpeta /conf para que los cambios sean operativos.
cp /usr/local/nmis9/conf-default/Table-Nodes.nmis /usr/local/nmis9/conf/Table-Nodes.nmis 

#Se abre el archivo para editar
vi /usr/local/nmis9/conf/Table-Nodes.nmis 

  

Código de ejemplo.

         { community => { mandatory => 'true', header => 'SNMP Community',display => 'text',value => ["$C->{default_communityRO}"] }},
#Campos Customizados
         { country => { mandatory => 'true', header => 'Country',display => 'popup', value => ["Panama"]}},
         { latitude => {header => 'Latitude',display => 'header,text',value => [""],}},
         { longitude => {header => 'Longitude',display => 'header,text',value => [""],}},
         { address => {header => 'Address',display => 'header,text',value => [""], }},
         { bandwith => {header => 'Bandwith_Mbps',display => 'header,text',value => [""], }},
         { circuit => {header => 'Circuit_ID',display => 'header,text',value => [""], }},
         { city => {header => 'City',display => 'header,text',value => [""], }},
         { client => {header => 'Client',display => 'header,text',value => [""], }},
         { comments => {header => 'Comments',display => 'header,text',value => [""], }},
         { customer => {header => 'customer',display => 'header,text',value => [""], }},
         { media=> {header => 'Media',display => 'header,text',value => [""], }},
         { anillo=> {header => 'Anillo',display => 'header,text',value => [""], }},
         { wmi => { special=>'separator', header => "WMI Options", } },
         { wmiusername => { header => "WMI Username", display => 'text', value => [''] }},

2.- En el archivo Config.nmis se agregan los campos nuevos que deseamos visualizar.

Directorio:

cd /usr/local/nmis9/conf
vi Config.nmis


Parámetro

Buscar el siguiente parámetro, si utiliza el editor  "vi" puede utilizar la expresión Esc + / para encontrarlo de manera más ágil, enseguida agrega los campos como se muestra en el ejemplo.

'node_summary_field_list'

 Código de ejemplo

'node_summary_field_list' => 'host,uuid,customer,businessService,serviceStatus,snmpdown,wmidown,country,latitude,longitude,address,bandwith,circuit,city,client,comments,customern,media,anillo',


Buscar el siguiente parámetro, enseguida agregar los campos como se muestra en el ejemplo.

'network_viewNode_field_list'

 Código de ejemplo

'network_viewNode_field_list' => 'nodestatus,outage,sysName,host_addr,host_addr_backup,group,latitude,longitude,address,bandwith,circuit,city,client,comments,country,customer,media,location,businessService,serviceStatus,notes,nodeType,nodeModel,polling_policy,sysUpTime,sysLocation,sysContact,sysDescr,ifNumber,last_ping,last_collect,last_update,nodeVendor,sysObjectName,roleType,netType',


3.- Procedimiento para agregar los campos en opCharts

3.- En el archivo opCommon.json se agregan los campos nuevos que deseamos visualizar, para que se pueda ver reflejado en el modulo de opCharts.

Directorio:

cd /usr/local/omk/conf
vi opCommon.json


Buscar el siguiente parámetro, si utiliza el "vi" puede utilizar la expresión /opcharts_node_list_exporttocsv para encontrarlo de manera más ágil.

"opcharts_node_list_exporttocsv"

 Código de ejemplo

      "opcharts_node_list_exporttocsv" : [
         "catchall.data.name",
         "catchall.node_uuid",
         "catchall.data.active",
         "catchall.data.cbqos",
         "catchall.data.collect",
         "catchall.data.customer",
         "catchall.data.group",
         "catchall.data.host",
         "catchall.data.intfCollect",
         "catchall.data.ifNumber",
         "catchall.data.location",
         "catchall.data.model",
         "catchall.data.nodeModel",
         "catchall.data.nodeType",
         "catchall.data.nodestatus",
         "catchall.data.nodeVendor",
         "catchall.data.customern",
         "catchall.data.media",
         "catchall.data.anillo"
      ],
      "opcharts_node_selector_show_more_at" : 6,


En el mismo archivo opCommon.json se busca el Parámetro:

"opcharts_metric_summarise_by"

 Código de ejemplo

         "opcharts_metric_summarise_by" : [
         {
            "key" : "group",
            "name" : "Group"
         },
         {
            "name" : "Locations",
            "key" : "location"
         },
         {
            "name" : "Node Role",
            "key" : "roleType"
         },
         {
            "key" : "country",
            "name" : "Country"
         },
         {
            "key" : "latitude",
            "name" : "Latitude"
         },
         {
            "key" : "longitude",
            "name" : "Longitude"
         },
         {
            "name" : "Address",
            "key" : "address"
         },
         {
            "name" : "Bandwith_Mbps",
            "key" : "bandwith"
         },
         {
            "key" : "circuit",
            "name" : "circuit"
         },
         {
            "name" : "City",
            "key" : "city"
         },
         {
            "name" : "Client_Entry",
            "key" : "client"
         },
         {
            "name" : "Comments_Entry",
            "key" : "comments"
         },
         {
            "name" : "Customer_name",
            "key" : "customern"
         },
         {
            "name" : "Media",
            "key" : "media"
         },
         {
            "name" : "Anillo",
            "key" : "anillo"
         }
      ],
      "opcharts_gui_business_service_show_pagesize" : 0,


4.- En el archivo opCharts_node-summary-table.json se agregan los campos “Client_Entry” y “Comments_Entry”

Acceder al directorio /table_schemas y editar el siguiente archivo:

cd /usr/local/omk/lib/json/opCharts/table_schemas/
vi opCharts_node-summary-table.json

 Código de ejemplo

[
  "group",
  "host",
  "host_addr",
  "location",
  "nodeVendor",
  "nodeModel",
  "country",
  "latitude",
  "longitude",
  "address",
  "bandwith",
  "circuit",
  "city",
  "client",
  "comments",
  "customern",
  "media",
  "anillo",
  { "name" : "sysDescr", "label": "sysDescr", "cell": "Tooltip", "formatter": "ShortenedString", "maxLength" : 48},



5.- En el archivo opCharts_node-list.json se agregan los campos “Client_Entry” y “Comments_Entry”

Acceder al directorio /table_schemas y editar el siguiente archivo: 

cd /usr/local/omk/lib/json/opCharts/table_schemas
vi opCharts_node-list.json

6.- En el archivo opCharts_business-services-nodes.json se agregan los campos nuevos para que aparezcan en la sección de Servicio de Negocios. 

Acceder al directorio /table_schemas y editar el siguiente archivo: 

cd /usr/local/omk/lib/json/opCharts/table_schemas/
vi opCharts_business-services-nodes.json

Se los nuevos campos requeridos por el cliente. 


 { "name": "catchall.data.nodestatus",
    "label": "Node Status",
    "cell": "NodeStatus",
    "editable" : false
  },
    { "name": "nodes.configuration.country",
    "label": "Country",
    "cell": "String",
    "search" : "regex",
    "editable" : false
  },
  { "name": "nodes.configuration.latitude",
    "label": "Latitude",
    "cell": "String",
    "search" : false,
    "editable" : false
  },
  { "name": "nodes.configuration.longitude",
    "label": "Longitude",
    "cell": "String",
    "search" : false,
    "editable" : false
  },
  { "name": "nodes.configuration.address",
    "label": "Address",
    "cell": "String",
    "search" : "regex",
    "editable" : false
  },
  { "name": "nodes.configuration.bandwith",
    "label": "Bandwith_Mbps",
    "cell": "String",
    "search" : "regex",
    "editable" : false
  },
  { "name": "nodes.configuration.circuit",
    "label": "Circuit_ID",
    "cell": "String",
    "search" : "regex",
    "editable" : false
  },

7.- En el archivo opCharts_node_selector_sections.json se agregan los campos nuevos para que aparezcan en la sección de Node Filter.

Acceder al directorio /table_schemas y editar el siguiente archivo: 

cd /usr/local/omk/lib/json/opCharts/table_schemas/
vi opCharts_node_selector_sections.json
...
  {
    "name" : "catchall.data.nodeVendor",
    "label" : "Node Vendor 2"
  },
  {
    "name" : "catchall.data.country",
    "label" : "Country"
  },
  {
    "name" : "configuration.property",
    "label" : "Property"
  }
...

Se mostrarán los nuevos campos requeridos por el cliente en el área de filtrado.

4.-Procedimiento para agregar los campos en opReports4

6.- En el archivo report_node.html.ep se agregan los campos nuevos que deseamos visualizar, para que se pueda ver reflejado en el módulo de opReports

Acceder al directorio /reports y editar el siguiente archivo: 

cd /usr/local/omk/templates/reports/reports
vi report_node.html.ep

 Código de ejemplo

                        % for my $item ('name','nodestatus','sysName','host_addr','nodeType','nodeModel','sysUpTime','ifNumber','sysLocation', 'sysContact','sysDescr','last_update','nodeVendor','sysObjectName','group','roleType','netType',Country,'Latitude','Longitude','Address','Bandwith_Mbps','Circuit_ID','City','Client_Entry','Comments_Entry','Customer_Name','Media','Anillo') {
                                <tr>
          <td class="report_primhead">


Resultados

Visualización en NMIS9

Visualización en opCharts4





Visualización en opReports 4



NOTA: Antes de realizar una actualización a cualquier módulo de OMK, recomendamos mover todos los archivos de table_schemas modificados a la carpeta /usr/local/omk/conf/form_schemas, esto para evitar que sean reemplazados con las nuevas versiones y se puedan mantener todos los campos personalizados agregados.

  • No labels