Con el tiempo, he ido recopilando una serie de herramientas que hacen más fácil la administración de un servidor de correo basado en postfix.
La mejor manera de entender cómo trabaja es ver la salida de su ejecución:
En el eje Y vemos los dominios a los que pertenecen esos correos, ordenados de dominios con mayor número de correos en la cola a dominios con menor número de correos en la cola.
Sin parámetros, la salida corresponde a los correos destino que están en las colas “incoming” y “active“.
En una situación normal, en un servidor de correo no congestionado, estas dos colas estarán prácticamente vacías.
Podemos tener información más útil en muchos casos si consultamos la cola de correos diferidos (deferred):
La opción “-s” muestra el número de correos en función del dominio que envia por lo que logicamente veremos que la gran mayoría de correos que están en la cola diferida son correos enviados por nosotros y que no se han podido entregar por cualquier razón:
Para más información: Postfix Bottleneck Analysis
Es realmente útil para conocer cuáles son los patrones de envío de nuestro servidor o por ejemplo detectar de un vistazo un pico anormalmente alto.
Por ejemplo, las graficas diaria y semanal del estado de las “postfix queues” generado por queuegraph:
Se observa claramente que diariamente, de 9 a 10 de la mañana, es cuando el servidor está más ocupado.
La herramienta es realmente sencilla y consta de un shell script cuya ejecución es necesaria configurar en el crontab cada minuto para que vaya recopilando los datos de las diferentes colas de correo y genere los archivos que serán mostrados por un script CGI que colocaremos en el directorio “cgi-bin” del servidor web.
Ha sido desarrollada por Ralf Hildebrandt y puede descargarse desde su página web.
Tiene opciones muy interesantes como buscar únicamente en una cola determinada, sólo en el remitente, sólo en el destinatario, en el mensaje que explica la razón por la que un mensaje se ha diferido…
Si el mensaje está en la cola active el identificador del mensaje en la cola aparece con un asterisco:
Pfqgrep puede descargarse desde aquí.
Útil, por ejemplo, para saber si ese correo que tenemos en la cola diferida es el que creeemos que es o no.
Por ejemplo:
Permite habilitar el modo debug para el envío desde una o varias IP’s.
Por ejemplo:
Para más información: http://www.postfix.org/postconf.5.html#debug_peer_list
tags: correo, Linux, postfixQshape
qshape es una utilidad que forma parte del paquete de instalación de postfix que sirve de gran ayuda para ver cuán de congestionado está nuestro servidor.La mejor manera de entender cómo trabaja es ver la salida de su ejecución:
[root@desdelaconsola ~]$ qshape
T 5 10 20 40 80 160 320 640 1280 1280+
TOTAL 8 3 4 1 0 0 0 0 0 0 0
miempresa.com 4 3 1 0 0 0 0 0 0 0 0
yopmail.com 3 0 3 0 0 0 0 0 0 0 0
hotmai.es 1 0 0 1 0 0 0 0 0 0 0
El eje X corresponde al tiempo en minutos (5, 10, 20 mintuos, etc) que lleva un correo en una cola determinada.En el eje Y vemos los dominios a los que pertenecen esos correos, ordenados de dominios con mayor número de correos en la cola a dominios con menor número de correos en la cola.
Sin parámetros, la salida corresponde a los correos destino que están en las colas “incoming” y “active“.
En una situación normal, en un servidor de correo no congestionado, estas dos colas estarán prácticamente vacías.
Podemos tener información más útil en muchos casos si consultamos la cola de correos diferidos (deferred):
[root@desdelaconsola ~]# qshape deferred | head -n6
T 5 10 20 40 80 160 320 640 1280 1280+
TOTAL 265 0 0 0 0 0 0 74 39 0 152
heyhihellothere.com 81 0 0 0 0 0 0 29 8 0 44
hotmai.com 11 0 0 0 0 0 0 4 1 0 6
example.com 10 0 0 0 0 0 0 0 0 0 10
groups.msn.com 7 0 0 0 0 0 0 2 1 0 4
Vemos que, por ejemplo, de los 81 correos almacenados en la cola deferred enviados al dominio “heyhihellothere.com“, 44 llevan más de 1280 minutos en ella, lo cual probablemente significará que nuestro servidor de correo no ha podido entregar estos correos por ejemplo porque no existe un MX para el dominio y pasado el tiempo de vida que tengamos definido acabará por borrarlos.La opción “-s” muestra el número de correos en función del dominio que envia por lo que logicamente veremos que la gran mayoría de correos que están en la cola diferida son correos enviados por nosotros y que no se han podido entregar por cualquier razón:
[root@desdelaconsola ~]# qshape -s deferred | head -n6
T 5 10 20 40 80 160 320 640 1280 1280+
TOTAL 200 1 0 0 0 0 0 0 83 0 116
desdelaconsola.es 195 1 0 0 0 0 0 0 83 0 111
exampleo.uk 1 0 0 0 0 0 0 0 0 0 1
bluione.no 1 0 0 0 0 0 0 0 0 0 1
wondsrean.net 1 0 0 0 0 0 0 0 0 0 1
Resumiendo, gracias a qshape sabremos de un vistazo lo ocupado que está nuestro servidor y nos servirá para analizar posibles cuellos de botella.Para más información: Postfix Bottleneck Analysis
Queuegraph
Herramienta basada en rrdtool que muestra de manera gráfica el estado de las colas active, incoming y deferred a lo largo del tiempo (último día, semana, mes y año).Es realmente útil para conocer cuáles son los patrones de envío de nuestro servidor o por ejemplo detectar de un vistazo un pico anormalmente alto.
Por ejemplo, las graficas diaria y semanal del estado de las “postfix queues” generado por queuegraph:
Se observa claramente que diariamente, de 9 a 10 de la mañana, es cuando el servidor está más ocupado.
La herramienta es realmente sencilla y consta de un shell script cuya ejecución es necesaria configurar en el crontab cada minuto para que vaya recopilando los datos de las diferentes colas de correo y genere los archivos que serán mostrados por un script CGI que colocaremos en el directorio “cgi-bin” del servidor web.
Ha sido desarrollada por Ralf Hildebrandt y puede descargarse desde su página web.
pfqgrep
Pfqgrep es un script perl que permite buscar un patrón en la cola de correos y devuelve los mensajes que lo cumplen.Tiene opciones muy interesantes como buscar únicamente en una cola determinada, sólo en el remitente, sólo en el destinatario, en el mensaje que explica la razón por la que un mensaje se ha diferido…
Si el mensaje está en la cola active el identificador del mensaje en la cola aparece con un asterisco:
[root@desdelaconsola ~]# perl pfqgrep.pl -a ivazquez
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
D5B5B1E014E* 1644 Fri Oct 14 14:49:23 ivazquez@desdelaconsola.es
ivazquez@example.com
Mientras que si está en la cola deferred, aparece también la razón por la que se ha diferido el mensaje:[root@desdelaconsola ~]# perl pfqgrep.pl -a ivazquez
D5B5B1E014E 1644 Fri Oct 14 14:49:23 ivazquez@desdelaconsola.es
(connect to example.com[192.0.43.10]:25: Connection timed out)
ivazquez@example.com
Habitualmente uso esta utilidad para obtener el “queue id” de un correo para realizar tareas posteriores como puede ser, volver a reencolarlo:[root@desdelaconsola ~]# postqueue -i queue_idborrar el correo de la cola:
[root@desdelaconsola ~]# postsuper -d queue_idver su contenido, para lo cual usaremos la herramienta pfcat o hacer troubleshooting.
Pfqgrep puede descargarse desde aquí.
pfcat
Pfcat es un sencillo shell script que, dado el “queue id” de un correo, muestra el contenido de dicho correo.Útil, por ejemplo, para saber si ese correo que tenemos en la cola diferida es el que creeemos que es o no.
Por ejemplo:
[root@desdelaconsola ~]# perl pfqgrep.pl -a ivazquez
D5B5B1E014E 1644 Fri Oct 14 14:49:23 ivazquez@desdelaconsola.es
(connect to example.com[192.0.43.10]:25: Connection timed out)
ivazquez@example.com
[root@desdelaconsola ~]# ./pfcat.sh D5B5B1E014E
*** ENVELOPE RECORDS /var/spool/postfix/deferred/D/D5B5B1E014E ***
message_size: 1644 606 1 0 1644
message_arrival_time: Fri Oct 14 14:49:23 2011
create_time: Fri Oct 14 14:49:23 2011
named_attribute: rewrite_context=remote
sender: ivazquez@desdelaconsola.es
named_attribute: log_client_address=172.16.100.199
named_attribute: log_client_port=57612
named_attribute: log_message_origin=unknown[172.16.100.199]:57612
named_attribute: log_helo_name=[172.16.100.199]
named_attribute: log_protocol_name=ESMTP
named_attribute: client_name=correo.desdelaconsola.es
named_attribute: reverse_client_name=correo.desdelaconsola.es
named_attribute: client_address=127.0.0.1
named_attribute: client_port=41197
named_attribute: helo_name=correo.desdelaconsola.es
named_attribute: client_address_type=2
named_attribute: dsn_orig_rcpt=rfc822;ivazquez@example.com
original_recipient: ivazquez@example.com
recipient: ivazquez@example.com
*** MESSAGE CONTENTS /var/spool/postfix/deferred/D/D5B5B1E014E ***
Received: from correo.desdelaconsola.es (correo.desdelaconsola.es [127.0.0.1])
by correo.desdelaconsola.es (Postfix) with ESMTP id D5B5B1E014E
for ; Fri, 14 Oct 2011 14:49:23 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=desdelaconsola.es; h=
message-id:date:from:mime-version:to:subject:content-type
:content-transfer-encoding; s=dkim_sig; bh=RGREqRxsmnpUMcyZ5F0Pitp7q
tE=; b=gb0nZU7BquTw/ezuCP0ZGF21bwyo+JvPioey33WWK9YtsSJ2aTNktADEy
24TB9hdAaZaaI6bigpdQGbDjRsKDFcHHzqyQ1SQ7yvyc53O3mg65BCYWofCKDSJG
W2eD/yUUBdMQlKATpKCCI2pPwQngAY8sE+N2W47YL+XSwccnV4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=desdelaconsola.es; h=message-id
:date:from:mime-version:to:subject:content-type
:content-transfer-encoding; q=dns; s=dkim_sig; b=pu9EkLoErolT2SI78Dp
sz2yUVcxElN53931dQYhYzP8bk8S78bTXB1tUmSl5h9H0iIm6ttpZtM/0HGD/fcH
RqS8YCV5Y1ewFTRDbnNe6+1sYxkfDPcj5r65rWeJ7/oAXUXtv2itbQDANebikmH7
XolXKEL1ulLPniueAbaZihM8=
Received: from [172.16.100.199] (unknown [172.16.100.199])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(No client certificate requested)
by correo.desdelaconsola.es (Postfix) with ESMTPSA id CC53D1E013F
for ; Fri, 14 Oct 2011 14:49:23 +0200 (CEST)
Message-ID: <4E982FD1.101@desdelaconsola.es>
Date: Fri, 14 Oct 2011 14:49:21 +0200
From: Ignacio Vazquez Alvarez
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1
MIME-Version: 1.0
To: ivazquez@example.com
Subject: Hola
X-Enigmail-Version: 1.3.2
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Esto es una prueba
*** HEADER EXTRACTED /var/spool/postfix/deferred/D/D5B5B1E014E ***
*** MESSAGE FILE END /var/spool/postfix/deferred/D/D5B5B1E014E ***
Puedes descargar pfcat desde aquídebug_peer_list
No es una herramienta como tal sino que es una directiva de la configuración de postfix que resulta muy útil al tratar de determinar errores en el envío desde determinados clientes.Permite habilitar el modo debug para el envío desde una o varias IP’s.
Por ejemplo:
debug_peer_list = 192.168.100.50Se puede especificar también un valor de red/máscara o nombres de dominio.
Para más información: http://www.postfix.org/postconf.5.html#debug_peer_list
Escrito en Correo por Ignacio Vazquez
Tomado de: http://desdelaconsola.es/herramientas-utiles-en-la-administracion-de-postfix/


No hay comentarios:
Publicar un comentario