Zabbix trigger report

Supongo que no seré el único que muchas veces está trabajando con Zabbix y necesita tener rápidamente un listado de todos los equipos afectados por un determinado trigger. Recientemente desarrollé un pequeño módulo que se agrega a la pestaña Reports de Zabbix y que ofrece un listado de todos aquellos triggers que están activos y una dirección de correo a la que enviar el listado. Si estás trabajando y alguien te pregunta ¿qué equipos tienen la carga alta? Ahora la respuesta será muy sencilla: "Te lo paso por mail".
Si te interesa lo puedes descargar desde aquí y tras copiarlo a tu directorio raíz con el nombre trigger_report.php ya sólo necesitas editar el fichero include/menu.inc.php y agregar estas líneas dentro del array de reports.
array(
   'url' => 'trigger_report.php',
   'label' => _('Trigger reports'),
   'user_type' => USER_TYPE_SUPER_ADMIN
)
El resultado es el que se muestra en la imagen lateral, en la que sólo salen aquellos trigger's que están activos. A continuación nos pide un mail al que enviar los resultados. Tras darle a enviar, haciendo uso de la API de zabbix, se enviará el listado de los equipos afectados por el trigger que se ha seleccionado.






8 comentarios :

  1. Existía un problema de permisos para acceder al fichero. Ya está solucionado y libre para descarga.
    Espero que os sea útil.

    ResponderEliminar
  2. Buenas tardes

    No consigo que me llegue el correo, me dice que ha sido mandado pero no llega

    ResponderEliminar
    Respuestas
    1. Hola Jesus Miguel,

      por defecto el código hace uso del servidor de mail local, pero no comprueba que esté bien instalado ni que funcione correctamente.
      Comprueba que tu servidor de correo local funcione correctamente y que no haya ningún error en (/var/log/mail.log, típicamente).

      Eliminar
    2. Primeramente darte las gracias por responder tan rápido, aunque yo no haya podido comprobarlo hasta hace unos días, por trabajo con otros temas

      Debo poner algún nombre, ip, etc. en alguna línea del fichero .php que has mandado indicando cual es el servidor de correo?

      Nuestro servidor de correo es un Exchange 2003, es válido?

      Saludos

      Eliminar
    3. El fichero .php que compartí hace uso de un servidor de correo local, típicamente postfix, que se encarga de mandar el correo. Si tú quieres emplear un Exchange, tendrás que indicarle a la función que se encarga del envío que se conecte al servidor remoto, autentique, si fuese necesario, y envíe.
      Concretamente deberías de modificar la línea: "mail(...);" para antes realizar las conexiones al servidor remoto.

      Otra opción es que emplees un postfix local y tengas como relay el Exchange.

      Eliminar
  3. Buenos días

    He cambiado todo lo que se me ha ocurrido, ya no sólo en la línea "mail" sino en otros sitios, poniendo el nombre del servidor, la ip, pero cuando lo hago, sale un error en la ventana de triggers referida al dato que he añadido y no envía correos

    ¿puedes indicarme como quedaría?

    Saludos

    ResponderEliminar
    Respuestas
    1. Hola,
      No uso conexiones a servidores Exchange, así que no se cómo quedaría, pero entiendo que lo lógico es que te conectes al servidor remoto primero y luego hagas el envío. En PHP sería algo similar a lo que sigue...

      $host = "mail.example.com";
      $username = "smtp_username";
      $password = "smtp_password";

      $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject);
      $smtp = Mail::factory('smtp', array ('host' => $host, 'auth' => true, 'username' => $username, 'password' => $password));

      $mail = $smtp->send($to, $headers, $body);

      De todas formas, buscando en Google "php exchange conect" salen miles de resultados y los logs del servidor web ayudan a saber cual es el fallo.

      Eliminar
  4. Muchas gracias!
    Funciona perfecto en 2.0!

    ResponderEliminar

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios