Esta Wiki esta enfocada para realizar un procedimiento de carga masiva de nodos desde un servidor Primario, asignando el ID del poller para poder designar donde se agregara el nodo, esto para ayudar con las operaciones de nodos por lotes, NMIS incluye un pequeño script para importar nodos desde un archivo CSV. Desde la versión 9.1.1G en adelante, también hay herramientas más detalladas disponibles, que se describen en la página titulada Herramientas de administración de nodos .

Tener en cuenta que opHA 3.3.3 integra una nueva modalidad de operar nodos, por lo que es necesario que los pollers no tengan nodos, ya que la carga de nodos será a través del servidor master y aquí se indicara a que poller se agregara por lo que si actualmente tiene nodos agregados a los servidores se requerirá que los nodos sean eliminados.



El script de importación masiva se puede encontrar en /usr/local/nmis9/admin/import_nodes.pl  y hay un archivo CSV de muestra /usr/local/nmis9/admin/samples/import_nodes_sample.csv .

Las propiedades mínimas que debe tener para agregar un dispositivo a NMIS son: name,host,group,community,netType,cluster_id,roleType. Técnicamente, puede usar los valores predeterminados para el grupo y el rol y el nombre y el host pueden ser los mismos, por lo que el mínimo absoluto es el host y la comunidad. Este CSV de muestra incluye las cinco propiedades completas y, si es necesario, puede utilizar otras adicionales.

Utilice el campo active.XXX para activar para NMIS, opConfig, opEvents.

Este procedimiento permitirá al cliente realizar una carga masiva de los nodos especificando a que poller se agregara, por lo que al finalizar la carga el servidor primario ejecuta un proceso de distribución facilitando la asignación del destino por medio del atributo cluster_id.


name,host,group,community,netType,cluster_id,roleType,activated.NMIS,activated.opConfig
002_Test_OMK_Plus_Networks_Megacomputo,10.235.8.227,Branches,public,wan,8e3d0d8e-381d-4369-bb4b-6830d39a2670,core,1,0

Para cargar estos dispositivos en NMIS9, ejecute el siguiente comando:

/usr/local/nmis9/admin/import_nodes.pl csv=/usr/local/nmis9/admin/import_nodes_sample.csv simulate=f

Esto tomará el archivo CSV y buscará la existencia del nodo según el nombre / node_uuid. Si el nodo existe, anulará sus propiedades para las propiedades especificadas en el csv.


Obtener el Cluster_ID

Para  obtener el cluster_idde los servidores basta con acceder al modulo opHA en la GUI en la siguiente ruta http://ip_server/es/omk/opHA/peers


El segundo método es ejecutar el siguiente comando desde consola para consultar los datos requeridos.

[root@omk-vm9-centos7 bin]# /usr/local/omk/bin/opha-cli.pl act=list_peers
cluster_id id server_name status
d95af5ee-1bf6-0000-1111-000000000000 614f3ea8626660a3e47f4801 Poller_2 error
8e3d0d8e-381d-0000-1111-000000000000 614f472f626660a3e4887c7a Poller_6 save
9ceb22d9-c713-0000-1111-000000000000 614f819c85acaf93a12ebe86 Poller_3 error
65acfce4-6752-0000-1111-000000000000 614f861285acaf93a138d9fa Poller_5 transfer
c24166fb-79d5-0000-1111-000000000000 6151db4085acaf93a183c947 Poller_4 transfer
f174e362-ebc2-0000-1111-000000000000 6152521c689631c8173dcd4a Poller_1 transfer
bf9d4025-b106-0000-1111-000000000000 61534b43211e79f664076e44 Poller_4 transfer
[root@omk-vm9-centos7 bin]#


Modo de simulación

De forma predeterminada, NMIS se ejecutará en modo de simulación. Al final, podrá ver si el nodo se creará o actualizará. Como salida de ejemplo:

UPDATE: node=newnode host=127.0.0.1 group=DataCenter
    => Node newnode not saved. Simulation mode.
ADDING: node=import_test3 host=127.0.0.1 group=DataCenter
    => Node import_test3 not saved. Simulation mode.
ADDING: node=import_test1 host=127.0.0.1 group=Branches
    => Node import_test1 not saved. Simulation mode.
ADDING: node=import_test2 host=127.0.0.1 group=Sales
    => Node import_test2 not saved. Simulation mode.

Si está listo para ejecutar el comando y aplicar estos cambios en NMIS, debe usar simulate = f. Como salida de ejemplo:

UPDATE: node=newnode host=127.0.0.1 group=DataCenter
    => Successfully updated node newnode.
ADDING: node=import_test3 host=127.0.0.1 group=DataCenter
    => Successfully created node import_test3.
ADDING: node=import_test1 host=127.0.0.1 group=Branches
    => Successfully created node import_test1.
ADDING: node=import_test2 host=127.0.0.1 group=Sales
    => Successfully created node import_test2.

Una vez que haya agregado nodos o nodos modificados, se requiere una Actualización NMIS que puede ejecutar para todos los nodos o para un solo nodo o simplemente dejarla hasta que venza la próxima actualización programada para ese nodo (predeterminado cada 24 horas).

Si está ejecutando una actualización para todos los nodos, es posible que tarde un poco en completarse. El siguiente comando muestra cómo forzar una actualización para un nodo a la vez (una buena forma de distribuir la carga). También puede programar una actualización para todos los nodos eliminando el argumento job.node.

./bin/nmis-cli act=schedule job.type=update at="now + 5 minutes" job.node=testnode job.force=1

Para ejecutar una actualización de NMIS para un solo nodo, opcionalmente con depuración que dará como resultado archivos de depuración en /tmp/

./bin/nmis-cli act=schedule job.type=update at="now + 5 minutes" job.node=testnode job.force=1 job.verbosity=9

Si agrega una gran cantidad de dispositivos, puede llevar algún tiempo completar la adición. Esto se debe a que la primera vez que se agrega un nodo a NMIS, necesita crear todos los archivos RRD para los datos de rendimiento, esto solo toma unos segundos por archivo, pero cada nodo puede tener 10 archivos RRD o más, por lo que esto se suma a un gran número de segundos muy rápido cuando se agregan miles de dispositivos a la vez.  


Integración de campos personalizados

Si un cliente requiere incluir un campo personalizado a los nodos y desea que esto sea por medio de la carga masiva de nodos, deberá modificar el script /usr/local/nmis9/admin/import_nodes.pl  para poder lograr visualizar el campo en la GUI.

Abrir el archivo /usr/local/nmis9/admin/import_nodes.pl 



-- Snip --
print $t->markTime(). " Processing $node \n" if $time;
die "Invalid node name \"$node\"\n"
#Ubicar el parámetro roleType y duplicar la linea y remplazar por anillo, se deberá ver tal como se muestra
    if ( $newNodes{$node}{name} ne ""
             and $newNodes{$node}{host} ne ""
             and $newNodes{$node}{roleType} ne ""
             and $newNodes{$node}{anillo} ne ""  ## nuevo campo personalizado
             and $newNodes{$node}{cluster_id} ne ""
             and $newNodes{$node}{community} ne ""
    ) {
-- Snip --

    else {
        print STDERR "One of the required node fields is blank\n";
        print STDERR "$node field 'name' is blank\n" if $newNodes{$node}{name} eq "";
        print STDERR "$node field 'host' is blank\n" if $newNodes{$node}{host} eq "";
        print STDERR "$node field 'roleType' is blank\n" if $newNodes{$node}{roleType} eq "";
        print STDERR "$node field 'anillo' is blank\n" if $newNodes{$node}{anillo} eq ""; ## nuevo campo personalizado
        print STDERR "$node field 'cluster_id' is blank\n" if $newNodes{$node}{cluster_id} eq "";
        print STDERR "$node field 'community' is blank\n" if $newNodes{$node}{community} eq "";
    }

-- Snip --



Al finalizar de integrar el campo personalizado para la carga masiva se deberá ajustar otros archivos para asi mostrar el dato correctamente en la GUI, Se anexa el procedimiento aqui.


Pruebas

Una vez ajustado el Script de la carga masiva deberemos agregar la columna del atributo en el Excel de carga, aqui se muestra un ejemplo.

name,host,group,community,netType,anillo,cluster_id,roleType,activated.NMIS,activated.opConfig
022_Test_OMK_Plus_Networks_Megacomputo,10.235.8.227,Branches,public,wan,EDOMEX1_anillo,c24166fb-79d5-4364-adf4-84947f78ac67,core,1,0


Comando a ejecutar:

[root@omk-vm9-centos7 bin]# /usr/local/nmis9/admin/import_nodes.pl csv=/usr/local/nmis9/admin/import_nodes_sample.csv simulate=f
1 nodes processed
1 nodes added
0 nodes updated
0 nodes with error
[root@omk-vm9-centos7 bin]#


Validación opHA Primary.

http://ip_Primary/es/omk/admin/nodes

Validación Poller destino.


Validación de Campo personalizado en server destino.





 


  • No labels