Plugin cambio configuración switches

Con este plugin puedes monitorizar la configuración de los switches, pudiendo saber si estos han tenido cambios o no.

Introducción

Ver. 22-02-2023

Con este plugin puedes monitorizar la configuración de los switches, pudiendo saber si estos han tenido cambios o no.

Tipo: Plug-in de servidor

Matriz de compatibilidad

Sistemas donde se ha probado

CentOS 7, Fedora, rocky linux

Sistemas donde debería funcionar

Cualquier sistema linux 

Pre requisitos

Parámetros

Parámetros 

--address IP o nombre de host del switch
--username Nombre de usuario
--sshpassword Contraseña SSH del switch
--enablepassword Enable password del switch
--sleep Tiempo de espera entre órdenes
--command Comando Ssh a ejecutar
--path_dir Ruta donde se guardará el archivo de salida.Ruta donde se guardará el archivo, por ejemplo : /tmp/.  Por defecto:/tmp/  Importante debe terminar en /.
--path_log --path_log", help="ruta donde se guardará el archivo de registro.por ejemplo : /tmp/ .Por defecto:/tmp/ .Importante debe terminar en /.
--last_line Última línea de la configuración esperada, esto evitará posibles fallos al recibir el comando, en caso de que la salida no se devuelva completa. (Opcional)

Parámetros configuración pandora

--agent_name Nombre del agente.
--tentacle_port Puerto de tentacle.Por defecto 41121(opcional)
--tentacle_address Ip del servidor tentacle al que mandar los datos(opcional)
-g, --group' Grupo de destino de Pandora FMS (opcional)
--data_dir Directorio de datos de Pandora FMS. Por defecto es /var/spool/pandora/data_in/ (opcional)
--as_agent_plugin Es opcional, si quieres que el plugin sea de agente y te meta los módulos en el agente de pandora, ejecuta esto con un 1 (opcional)

* El comando a usar en el parámetro cambia según el tipo de switch a monitorizar

por ejemplo en los de alcatel es :

show configuration status

pero en las de cisco es :

show running-config

* El parámetro path dir si no se funciona se usara tmp por defecto.

* Es importante crear un archivo para los logs como se especifica en el apartado requisitos previos y darle permisos para que el plugin pueda escribir en el si ocurriera un fallo.

* El parámetro last line es opcional, si la devolución de la configuración esperada siempre suele tener la misma estructura y acaba siempre con la misma línea (por ejemplo en cisco es end), puede ser útil para evitar falsos cambios debido a una ejecucion a la que no le ha dado tiempo a obtener la salida completa.

 

Ejecución manual

 

python3 check-config-changes.py --address <ip> --username <username> --sshpassword <password> --enablepassword <enable pass> --agent-name <nombre agente> --command <comando a ejecutar> --as_agent_plugin 1 --sleep <segundos entre comandos>

Ejemplo salida si no hay diferencias:

image-1679402416602.png

Ejemplo de salida con diferencias:

image-1679402457114.png

Configuración en PandoraFMS

Como plugin de servidor

Instalación manual

Iremos a servidores > plugins:

image-1629974405286.png

Pinchamos en añadir:

image-1629974430627.png

Le ponemos en nombre y la descripción que se prefiera.

Metemos como comando la ejecución con la ruta del plugin:

/path check-config-changes.py

Recuerda que la ruta recomendada para el uso de los plugins de servidor es: /usr/share/pandora_server/util/plugin/

Y en parámetros del plugin introduciremos estos seguidos de la macro "_field_ <N>_",  son obligatorios los parámetros de --address, --username, --sshpassword, --enablepassword, --command y --agent_name. 

Recuerda usar el parámetro --agent_name , para indicar el agente en el que se crearan los módulos o el que se creará por defecto.

Es recomendable usar el parámetro --sleep con 1 e ir investigando que configuración es la mejor adecuada para cada caso en el uso de este parámetro. Para algunos switches quizás sea 1 pero otros pueden necesitar uno más alto.

 

Una vez hecho esto, daremos a "crear".

Una vez hecho esto, solo queda llamarlo por lo que iremos a la vista de algún agente y crearemos un módulo de complementos:

image-1646741530197.png

Le daremos un nombre y en el apartado "plugin" pondremos el que acabamos de configurar.

Una vez hecho esto, damos a crear.

Si el modulo se muestra con 1, quiere decir que se esta ejecutando correctamente.

Módulos generados por el plugin

El plugin creará un agente con el módulo de diferencias o meterá este en un agente ya existente. Para las dos opciones se usa el paŕametro --agent_name.

 

Ejemplo de módulo de diferencias.

image-1679401692071.png

 

De no haber cambios el plugin no creará ningún módulo y solo imprimirá un 1 en el modulo de plugin que se haya creado en el agente para la ejecución de este plugin.