Ejecución de comandos remotos en Zabbix

Zabbix es una herramienta de monitorización excelente que permite saber el estado de nuestras máquinas y en función del mismo alertarnos e incluso ejecutar por sí mismo comandos remotos. En caso de que tengamos una máquina con tendencia a que, por ejemplo, Apache, se quede colgado y no responda, podemos hacer que Zabbix ejecute automáticamente cuando esto pasa un restart del servicio. Vamos a ver en este post cómo permitir que Zabbix ejecute comandos en equipos remotos.
Lo primero que necesitamos es editar el fichero de configuración del agente (/etc/zabbix/zabbix_agentd.conf) y habilitar que permita la ejecución de comandos.
EnableRemoteCommands=1
Por defecto, está deshabilitada dicha funcionalidad, así que habilitamos y simplemente hacemos un restart del servicio.
Una vez ya tenemos esto permitido, tenemos que tener en cuenta que en entornos habituales, el agente Zabbix se ejecuta con un usuario sin privilegios (zabbix), por lo tanto no puede hacer todo lo que probablemente queramos. Sí podrá crear un fichero en /tmp, pero no podrá iniciar un servicio, por ejemplo. En este caso, hay dos opciones, ejecutar zabbix-agent como usuario root, lo cual no es aconsejable, o sino incluir en sudo al usuario zabbix con los comandos que nos interese. La segunda opción, más restrictiva, es la mejor de cara a la seguridad.
Entonces, con el paquete sudo instalado, agregamos un nuevo permiso para el usuario zabbix de tal forma que podamos ejecutar lo que nos interese. Siguiendo el ejemplo, reiniciar el servidor Apache. Para ello agregamos la siguiente línea.
zabbix ALL=(ALL) NOPASSWD: service apache2 restart
O en caso de que queramos poder ejecutar todo tipo de comandos sin filtrar, también se podría poner esta línea,
zabbix ALL=NOPASSWD: ALL
Zabbix remote command
Zabbix remote command
Ahora ya tenemos habilitada la ejecución de comandos remotos y también tenemos permisos para hacerlo. Lo único que queda, es establecer la acción que tenga que suceder para ejecutar el comando. Para ello vamos a Configuración/ Acciones y creamos una nueva acción. La parte de Acción y de Condición es la de siempre, como si quisiéramos que nos alertase por e-mail de un error. La parte que cambia es la de operaciones. Concretamente el tipo de operación, que tenemos que ponerlo en "Comando remoto".
En la imagen de la derecha se muestran las partes más esenciales a la hora de configurar una nueva condición para la ejecución del comando. Aunque lo lógico es que un comando se ejecute únicamente cuando hay un fallo en el equipo y no cuando éste se recupera de dicho fallo. Es decir, reiniciaremos el servicio cuando aparezca el "PROBLEM", pero no con el "OK". Puede darse el caso de que tenga que pasar algo de cada vez. En ese caso, simplemente se ejecuta sin condición de estado.
Como podéis observar configurar una acción para que se ejecute un comando remoto no es algo demasiado complicado y lo único a tener en cuenta es la lógica, al igual que para el envío de notificaciones al correo o a jabber.

La entrada Ejecución de comandos remotos en Zabbix la puedes leer en Puppet Linux.


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios