Procedimiento para agregar campos a un nodo en los módulos de NMIS9
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.