descobrindo o que causa alta carga média do sendmail

1

Estou investigando um servidor que não configurei, para o qual não há um técnico para responder a perguntas.

O problema é que a média de carga é alta, o que torna o servidor incapaz de enviar e-mails! Acontece periodicamente, algumas vezes várias vezes por minuto, e a média de carga pode chegar a 80!

Percebi que às vezes pode levar uma hora até que um e-mail seja realmente enviado e eu gostaria de entender melhor o que está acontecendo no servidor.

Periodicamente (às vezes várias vezes por minuto e a média de carga pode chegar a 80) recebo mensagens como essa no log de mensagens:

Feb  9 01:37:54 mydomain sm-mta[999]: rejecting connections on daemon MTA-v4: load average: 48

Eu não sei a causa disso, mas parece que os e-mails não estão sendo enviados, então me pergunto o que poderia estar acontecendo.

Ocasionalmente, os e-mails parecem ser enviados. A única coisa que sei é que enviar e-mails é o servidor web, por isso os e-mails enviados de www-data fazem sentido. Eu não sei o que poderia estar enviando isso.

Feb  9 01:54:22 mydomain sendmail[6704]: r1...: from=www-data, size=1380, class=0, nrcpts=1, msgid=<[email protected]>, relay=www-data@localhost
Feb  9 01:54:23 mydomain sm-mta[6706]: r1... from=<[email protected]>, size=1482, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Feb  9 02:01:02 mydomain sendmail[6751]: r1...: from=root, size=323, class=0, nrcpts=1, msgid=<[email protected]>, relay=root@localhost
Feb  9 02:01:02 mydomain sm-mta[6752]: r1...: from=<[email protected]>, size=597, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]

netstat -ntop mostra apenas processos apache2.

Quais poderiam ser algumas maneiras de resolver esse problema?

    
por Robin Manoli 09.02.2013 / 14:41

1 resposta

1

Você deve emitir um mailq e ver quantos e-mails estão na fila. Eu estou supondo que pode haver muito, especialmente se este é um servidor web que executa um aplicativo PHP que envia e-mails (e é abusado por spammers).

Primeiro tente e inverta a configuração padrão de gerenciamento de carga do sendmail :

define(confREFUSE_LA, 8)dnl
define(confQUEUE_LA, 12)dnl

Coloque-os no seu sendmail.mc e gere sendmail.cf e reinicie o sendmail de acordo com as instruções do seu sistema operacional.

Ao inspecionar a saída de mailq , localize os arquivos da fila e inspecione o conteúdo dos e-mails na fila. Isso lhe dará uma idéia de quem está enviando esses e-mails e por quê. Isto é, se muitos emails forem a causa dos seus problemas.

Outras causas podem ser um cliente de email abusivo (mal configurado) (seja POP3 ou IMAP) ou qualquer outra coisa que cause alta carga.

Dependendo do seu progresso, você pode precisar de monitoramento na frente da máquina para ver (e analisar) o que entra e o que sai.

Novamente, dependendo das suas descobertas, talvez seja necessário fazer essa pergunta novamente em security.stackexchange.com.

EDIT: Você deve ter em mente que o sendmail começa a rejeitar solicitações para lidar com e-mail quando a carga da máquina aumenta acima de um certo limite. Para que esse limite seja alcançado, o sendmail pode não ser responsável. Outros processos, como o servidor da web, um cronjob, uma consulta em um MySQL mal configurado que faz com que a máquina troque pode assumir a culpa.

    
por 09.02.2013 / 15:37