Hoy vamos a ver la forma de integrar en el sistema de monitorización Big Brother la supervisión del estado de la cola de correos de exim. Todo ello gracias al script bb-exim.sh creado por Carl C. Inglis.
Es un script fácil de entender, modificar y personalizar a nuestros requerimientos. Lo más básico a conocer es que podemos realizar y monitorizar lo siguiente:
# Tests are: # RUN - Test if the daemon is running # QUEUE - Check the size of the queue (see below) # REJECT - Check to see if the reject log is > 0 bytes long # PANIC - Check to see if the panic log is > 0 bytes long # FROZEN - Check to see if there are any frozen messages # IGNOREFROZENERRS - Ignore frozen messages with a sender # of "<>". (i.e., error responses.) TESTRUN="y" TESTQUEUE="y" TESTREJECT="n" TESTPANIC="y" TESTFROZEN="y" IGNOREFROZENERRS="y"
Como veis, por defecto revisa que el demonio de exim está corriendo, así como el tamaño de la cola de correo, el tamaño de los logs panic y reject (no por defecto para el reject)así como el número de correo en estado frozen o sin destinatario válido. Después, hay dos variables para seleccionar el umbral de aviso para warning y panic con el número de correos en cola:
TESTQUEUEALERT="50" TESTQUEUEPANIC="100"
Revisad también que la ruta al binario de exim es la correcta, a los logs, etc:
EXIMBINARY="/usr/sbin/exim" EXIMREJECT="/var/log/exim/rejectlog" EXIMPANIC="/var/log/exim/paniclog"
La instalación es igual que cualquier extensión de Big Brother, ubicáis el script en la carpeta ext/, le asignais permisos de ejecución para el usuario y después lo añadís en el fichero bb-bbext y reiniciamos Big Brother:
# vim /ruta_a_big_brother/ext/bb-exim.sh # chmod 0750 /ruta_a_big_brother/ext/bb-exim.sh # chown usuariobb. /ruta_a_big_brother/ext/bb-exim.sh # vim /ruta_a_big_brother/etc/bb-bbexttab localhost : : bb-exim.sh
Personalmente he realizado unas cuantas modificaciones para adecuarlo a mis necesidades. Entre ellas la necesidad de usar sudo ya que el usuario Big Brother no tiene privilegios, otra de ellas la visualización de la cola de correo. En lugar de mostrar la lista de mensajes como se vería con un exim -bp, la parseo mediante exiqsumm -c para que sea agradable a la vista y más rápido de visualizar y claro:
# exim -bp 2h 5.9K xx-0000ko-HA xxx_70@xxx.com 2h 6.0K xx-0000kt-OZ xxx_70@xxx.com 76m 9.3K xx-0003Ee-OO xxx@xxx.org 51m 7.8K xx-0005cQ-Te xxx.xxx@xxx.org
# exim -bp | exiqsumm -c Count Volume Oldest Newest Domain ----- ------ ------ ------ ------ 279 23MB 63h 30m xxx.org 2 12KB 2h 2h xxx.com 2 272KB 14h 12h xxx.com --------------------------------------------------------------- 289 28MB 63h 20m TOTAL
El resultado final, podría ser algo así: