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
- Matriz de compatibilidad
- Pre requisitos
- Parámetros
- Ejecución manual
- Configuración en PandoraFMS
- Módulos generados por el plugin
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.
Matriz de compatibilidad
Sistemas donde se ha probado |
CentOS 7, Fedora, rocky linux |
Sistemas donde debería funcionar |
Cualquier sistema linux |
Pre requisitos
- Tener el Data Server de Pandora FMS habilitado
- Tener el Plugin Server de Pandora FMS habilitado
- Es necesario crear un archivo con nombre check-config-changes.log y con permisos en /tmp/ o en la ruta que quieras almacenar los log.
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:
Ejemplo de salida con diferencias:
Configuración en PandoraFMS
Como plugin de servidor
Instalación manual
Iremos a servidores > plugins:
Pinchamos en añadir:
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:
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.
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.