colas en zimbra (parte 2 y última)

7 de septiembre de 2008

Las utilidades que postfix proporciona se encuentran dentro de /opt/zimbra/postfix/sbin. No solo encontraremos las utilidades para el manejo de colas sino también el configurador de parámetros, el creador de alias, etc.

La primera utilidad para ver la cantidad de mensajes en cola es la utilidad postqueue. Si la lanzamos con el comando -p nos mostrará los mensajes que hay en proceso (cola deferred y active):

[root@zimbra sbin]# ./postqueue -p
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
1B6FE682F9    22910 Wed Sep  3 17:09:39  MAILER-DAEMON
(connect to mail.member.gocyberlink.com[203.70.119.145]: Connection timed out)
Membership@member.gocyberlink.com

CE801682F8   488323 Wed Sep  3 17:09:38  xxxx@xxxxx.com
(connect to hotamil.com[65.74.135.110]: Connection timed out)
yyyy@hotmail.com

C18C368288    42744 Wed Sep  3 17:09:51  xxxx@xxxxx.com
(connect to hotamil.com[65.74.135.110]: Connection timed out)
yyyyy@hotamil.com

58D796836C   536981 Fri Sep  5 14:22:39  rrrrrr@xxxxx.com
(host mx.poczta.interia.pl[217.74.64.238] said: 450 4.7.1 : Helo command rejected: 
Host not found (in reply to RCPT TO command)) hhhhh@fffff.pl

-- 1066 Kbytes in 4 Requests.
Con esta utilidad podemos hacernos una idea de cuantos mensajes hay pendientes de procesar (4 mensajes) y el tamaño de todos ellos (1066Kb). Si por ejemplo veis que tenéis 125 mensajes por procesar y 450Mb de correo pues es para ver que esta pasando. Yo en este caso movería los correos que más pesan a la cola hold para enviarlos más tarde.

Otra cosa que podemos hacer con postqueue es volver a reintentar enviar todos los correos que se encuentran en deferred. Es decir reintentar el envió o hacer un flush. Esto se hace con el parámetro -f:
[root@zimbra sbin]# ./postqueue -f
Esto es útil cuando tienes un problema en tú línea de Internet y por cualquier motivo los correos no pueden salir. Todos estos correos que no pueden salir iran a parar a la cola deferred. Una vez arreglado el problema en la línea los mensajes seguirán en la cola deferred hasta que el procesador de posfix no vuelva a reintentar el envió. Para no esperar hasta la marca de tiempo se puede utilizar el parámetro -f para forzar el envió.

El siguiente comando interesante es postsuper. Con este comando podemos tocar internamente los mensajes que hay en la cola.
Con el parámetro -d podemos borrar un mensaje de correo que esté identificado por un "queue ID". Para ello primero tenemos que hacer un "postqueue -p" para ver los mensaje que tenemos y buscar el "queue ID" del mensaje que queremos eliminar. Supongamos que queremos eliminar el mensaje "C18C368288".
[root@zimbra sbin]# ./postsuper -d C18C368288
Si por el contrario no lo queremos eliminar pero nos lo queremos quitar de enmedio, lo podemos enviar a la cola hold con el parámetro -h.
[root@zimbra sbin]# ./postsuper -h C18C368288
Si posteriormente queremos poner este mensaje otra vez en circulación haríamos lo mismo pero con el parámetro -H.
[root@zimbra sbin]# ./postsuper -H C18C368288
Otra utilidad para ver colas es el script qshape.pl. Es un script que no utilizo mucho, pero lo que hace es mostrarte un listado de todos los dominios de mensajes que hay por enviar y cuando tiempo hace que estan en la cola.
$ qshape -s hold | head
                         T  5 10 20 40 80 160 320 640 1280 1280+
                 TOTAL 486  0  0  1  0  0   2   4  20   40   419
             yahoo.com  14  0  0  1  0  0   0   0   1    0    12
  extremepricecuts.net  13  0  0  0  0  0   0   0   2    0    11
        ms35.hinet.net  12  0  0  0  0  0   0   0   0    1    11
      winnersdaily.net  12  0  0  0  0  0   0   0   2    0    10
           hotmail.com  11  0  0  0  0  0   0   0   0    1    10
           worldnet.fr   6  0  0  0  0  0   0   0   0    0     6
        ms41.hinet.net   6  0  0  0  0  0   0   0   0    0     6
                osn.de   5  0  0  0  0  0   1   0   0    0     4
En este ejemplo vemos que de mensajes que van para yahoo.com hay 14. De estos 14 mensajes que se tienen que entregar a yahoo.com hay 12 que llevan más de 1280 minutos esperando a salir.

Por ultimo tenemos el comando postconf que nos muestra la configuración activa que hay en postfix. Esta configuración se puede cambiar en /opt/zimbra/conf/main.cf.in. Si queremos ver todos los parámetros relacionados con colas haremos:
[root@zimbra sbin]# ./postconf | grep queue
bounce_queue_lifetime = 5d
hash_queue_depth = 1
hash_queue_names = deferred, defer
maximal_queue_lifetime = 5d
queue_directory = /opt/zimbra/postfix-2.2.9/spool
queue_file_attribute_count_limit = 100
queue_minfree = 0
queue_run_delay = 1000s
queue_service_name = qmgr
Tenemos por ejemplo que numero máximo de días que un mensaje puedes estar sin enviar es de 5 dias (bounce_queue_lifetime) y que la cola de deferred se escanea cada 1000 segundos en busca de mensajes que reenviar (queue_run_delay).

Más información:
+ Colas en zimbra (parte 1)
+ Postfix queue control
+ Postfix Superintendent
+ Postfix configuration parameters
+ QShape tool

1 comentarios:

CooLKilleR dijo...

amperis felicidades por tu blog me esta sirviendo de ayuda para montar mi servidor de correos zimbra en una empresa.

sigue asi,

quisas en un futuro cercano te moleste con una duda jeje. en el grupo de zimbra de gmail =)

por ahora estamos haciendo pruebas.

saludos,