Nagios – Monitorizando Colas de OTRS
Si en nuestro entorno disponemos de OTRS como sistema de gestión y Nagios o Centreon como sistema de monitorización, podremos integrarlos y hacer auténticas maravillas, en este primer documento veremos algo muy sencillo: Cómo monitorizar las Colas que tengamos en OTRS desde Nagios o Centreon. Y ya seguiremos a futuro con otro tipo de integraciones!
Lo que necesitaremos para esto es muy sencillo, un pequeño script en PHP que descargaremos de Exchange Nagios en nuestra carpeta de plugins (/usr/lib/nagios/plugins) de nuestra máquina con Nagios o Centreon y hacerlo ejecutable. Obviamente, tenemos que tener ya creadas las colas en OTRS, y tiene que ser funcional tanto el OTRS como Nagios/Centreon!
En nuestro servidor OTRS, editaremos el fichero de configuración de MySQL (/etc/mysql/my.cnf) y verificaremos que tenemos los siguientes parámetros en esta sección:
[sourcecode][mysqld]
max_allowed_packet = 20M
query_cache_size = 32M
innodb_log_file_size = 256M[/sourcecode]
Debemos modificar los permisos en MySQL, para ello le damos permisos, ojo que yo lo hago con el usuario ‘root’, que podríamos mejor tener un usuario dedicado. Algo como:
[sourcecode]mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’;
select host from mysql.user where user = ‘root’;
GRANT SELECT ON otrs.* TO ‘root’@’192.168.1.102’;
FLUSH PRIVILEGES;
quit[/sourcecode]
Y tras reiniciar los servicios ya podremos empezar a hacer consultas con el usuario root desde la máquina de Centreon o Nagios!
[sourcecode]/etc/init.mysql restart[/sourcecode]
Y de vuelta a nuestro Nagios, si queremos probarlo, abrimos una shell y vamos al directorio de plugins, ahí habremos descargado el ‘check_otrs.php’, probamos a ejecutarlo!
Con el siguiente comando podremos visualizar el estado de los tickets de una cola, filtrando por Estado y Cola, además de que nos notifique un Warning o un Critical dependiendo del número de Tickets que haya en una Cola:
[sourcecode]./check_otrs.php -H DIRECCION_IP_OTRS -u root -p CONTRASEÑA_ROOT_MYSQL -d BASE_DATOS -t ESTADO -q COLA -w WARNING -c CRITICAL[/sourcecode]
Por tanto, si vamos a nuestro Centreon, tendremos que dar de alta primeramente el Comando que vamos a usar, vamos “Configuration” > “Commands” > “Add” y lo dejamos algo así:
- Command Name: Normalmente le llamamos como el script, check_otrs.php.
- Command Type: Seleccionamos ‘Check’.
- Command Line: Indicamos lo que debe ejecutar cuando se llame a este Comando, nos basamos en el ejemplo anterior que puse, que cumplimentaremos con argumentos:
[sourcecode]$USER1$/check_otrs.php -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d $ARG3$ -t $ARG4$ -q $ARG5$ -w $ARG6$ -c $ARG7$[/sourcecode]
- Argument Descriptions: Debemos cumplimentar los argumentos, para que cuando usemos este Comando desde un Servicio relacionemos qué debemos cumplimentar! El primer argumento será el usuario de MySQL, el segundo será su contraseña, el tercero será la base de datos de OTRS, el cuarto será el Tipo o Estado del Ticket, y el quinto argumento será la Cola de OTRS.
Grabamos con “Save”,
Podemos ya crear las Colas que queremos monitorizar, para ello crearemos un Servicio por Cola, desde “Configuration” > “Services” > “Add…” (o clonamos mejor de uno existente) y añadimos al Host de OTRS cada checkeo. Le indicamos un nombre al servicio que asociaremos a la cola que monitorizamos, le asociamos habitualmente la plantilla de servicio genérica, indicamos que utilice el Comando que acabamos de crear en el paso anterior (check_otrs.php), y cumplimentamos lo que nos pregunta, que se lo pasará como argumentos a la hora de ejecutar este checkeo.
Grabamos con “Save”, exportamos la configuración y recargamos Nagios/Centreon.
Y nada! Ya si volvemos a la vista de “Monitoring” veremos todas las Colas de OTRS que ya tenemos monitorizadas! Facilisimo, no?? Espero que os sea de utilidad, gracias a todos por compartir!!