Nossa integração Postfix consolida os dados do servidor de e-mail em uma única visualização, para que você possa rastrear quantos e-mails são enviados, devolvidos ou adiados em um determinado período de tempo. Nossa integração Postfix usa nosso agente de infraestrutura e oferece um dashboard pré-construído com suas métricas Postfix mais importantes, como processo de entrega de e-mail, fila de e-mail e visão geral de mensagens.
Depois de configurar nossa integração Postfix, fornecemos um dashboard para sua métrica Postfix.
Configure a integração do Postfix
Conclua as etapas a seguir para configurar a integração do Postfix:
Instalar o agente de infraestrutura
Para usar a integração do Postfix, você também precisa instalar o agente de infraestrutura no mesmo host. O agente de infraestrutura monitora o próprio host, enquanto a integração que você instalará na próxima etapa amplia seu monitoramento com dados específicos do Postfix.
Exportar dados Postfix
Exporte sua métrica Postfix com pflogsumm
. O agente Postfix usapflogsumm
como analisador log , que se traduz em dados métricos sobre sua atividade Postfix. Isso fornece detalhes suficientes para antecipar possíveis incidentes com administração de e-mail.
Siga estas etapas para usar pflogsumm
.
Execute os seguintes comandos para fazer download e extrair
pflogsumm
:bash$wget https://jimsun.linxnet.com/downloads/pflogsumm-1.1.3.tar.gzbash$tar xvf pflogsumm-1.1.3.tar.gzVá para a pasta
pflogsumm
.bash$cd pflogsumm-*.*.*Copie o arquivo
pflogsumm.pl
para o caminho/usr/local/bin/pflogsumm
:bash$sudo cp pflogsumm.pl /usr/local/bin/pflogsummExecute os seguintes comandos
pflogsumm
para exportar a métrica do Postfix:bash$cat /var/log/mail.log | pflogsumm$cat /var/log/mail.log | pflogsumm -d today
Configurar NRI-Flex para Postfix
Flex, nossa ferramenta de monitoramento aplicativo agnóstico, vem junto com o agente New Relic Infrastructure . Siga estas etapas para criar um arquivo de configuração flexível para seus dados Postfix:
Crie um arquivo chamado
postfix-flex-config.yml
:bash$touch /etc/newrelic-infra/integrations.d/postfix-flex-config.ymlAtualize o arquivo
postfix-flex-config.yml
. Recomendamos que você trabalhe com nosso exemplo de configuração abaixo:---integrations:- name: nri-flexconfig:name: postfixFlexapis:#check if Postfix service is up.- event_type: PostfixUpcommands:- run: echo "value:$(systemctl status postfix | grep 'Active':' active' | wc -l)"split_by: ':'#check if Postfix service is down.- event_type: PostfixDowncommands:- run: echo "value:$(systemctl status postfix | grep 'Active':' active' | wc -l)"split_by: ':'#Read the grand totals messages by using the below script.- event_type: PostfixGrandTotalscommands:- run: cat /var/log/mail.log | pflogsumm | grep -A 21 'Grand Totals'split: horizontalset_header: [metricValue, message]regex_match: truesplit_by: \s+(\d+\w*)\s+(.*)#Read the number of messages delivered & received in bytes.- event_type: PostfixMessageBytescommands:- run: cat /var/log/mail.log | pflogsumm | grep -A 1 'bytes received'split: horizontalset_header: [metricValue, messageBytes]regex_match: truesplit_by: \s+(\d+\w*)\s+(.*)#Read the number of messages held by the user.- event_type: PostfixHeldMessagecommands:- run: echo "value:$(cat /var/mail/<USER> | grep -c 'Subject:')"split_by: ':'#Read the count of SASL authentication failure notifications.- event_type: PostfixSASLauthFailedcommands:- run: echo "value:$(cat /var/log/mail.log | grep 'status=deferred (SASL authentication failed' | wc -l)"split_by: ':'#Read the count of bounced non-delivery notifications.- event_type: PostfixBounceNondeliveryNotificationcommands:- run: echo "value:$(cat /var/log/mail.log | grep 'postfix/bounce' | wc -l)"split_by: ':'#Read the number of messages passed through the email delivery process.- event_type: PostfixEmailDeliveryProcesscommands:- run: echo "PICKUPvalue:$(cat /var/log/mail.log | grep 'pickup' | wc -l)"split_by: ':'- run: echo "CLEANUPvalue:$(cat /var/log/mail.log | grep 'cleanup' | wc -l)"split_by: ':'#Read the number of message inserted in mail queue.- event_type: PostfixMessageInsertedinMailQcommands:- run: echo "Ivalue:$(cat /var/log/mail.log | grep 'queue active'| wc -l)"split_by: ':'#Read the number of message handled by SMTP process.- event_type: PostfixMessageHandledBySMTPcommands:- run: echo "SENTmsg:$(cat /var/log/mail.log | grep 'status=sent' | grep "postfix/smtp" | wc -l)"split_by: ':'- run: echo "BOUNCEDmsg:$(cat /var/log/mail.log | grep 'status=bounced' | grep "postfix/smtp" | wc -l)"split_by: ':'- run: echo "DEFERREDmsg:$(cat /var/log/mail.log | grep 'status=deferred' | grep "postfix/smtp" | wc -l)"split_by: ':'#Read the number of message removed from mail queue.- event_type: PostfixMessageRemovedFromMailQcommands:- run: echo "Rvalue:$(cat /var/log/mail.log | grep 'removed'| wc -l)"split_by: ':'#Read the number of SMTPD connection.- event_type: PostfixSMTPDconnectioncommands:- run: echo "value:$(cat /var/log/mail.log | grep ' connect from' | wc -l)"split_by: ':'#Read the number of SMTPD disconnection.- event_type: PostfixSMTPDdisconnectioncommands:- run: echo "value:$(cat /var/log/mail.log | grep 'disconnect from' | wc -l)"split_by: ':'#Read the number of SMTP connection.- event_type: PostfixSMTPconnectioncommands:- run: echo "value:$(cat /var/log/mail.log | grep ' connect to' | wc -l)"split_by: ':'#Read the number of SMTP disconnection.- event_type: PostfixSMTPdisconnectioncommands:- run: echo "value:$(cat /var/log/mail.log | grep 'disconnect to' | wc -l)"split_by: ':'#Read the number of connection timed out.- event_type: PostfixSMTPDtimedOutcommands:- run: echo "value:$(cat /var/log/mail.log | grep 'timeout after CONNECT' | wc -l)"split_by: ':'#Read the number of connection lost.- event_type: PostfixSMTPDconnectionLostcommands:- run: echo "value:$(cat /var/log/mail.log | grep 'lost connection' | wc -l)"split_by: ':'#Read the per-hour traffic report.- event_type: PostfixMessagePerHourReportcommands:- run: cat /var/log/mail.log | pflogsumm -d today | grep -i 'Per-Hour Traffic Summary' -A 27split: horizontalheader_split_by: \s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(.*)set_header:[time,received.perhour,delivered.perhour,deferred.perhour,bounced.perhour,rejected.perhour,]regex_match: truesplit_by: \s+(\d+-\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)#Read the per-day traffic summary.- event_type: PostfixMessageTrafficPerDaycommands:- run: cat /var/log/mail.log | pflogsumm --zero_fill | grep -C 12 'Per-Day Traffic Summary' -B 0 -A 8 | sed '/Per-Hour Traffic Daily Average/q'split: horizontalheader_split_by: \s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(.*)set_header:[date, received, delivered, deferred, bounced, rejected]regex_match: truesplit_by: \s+(\w+\s+\d+\s+\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)#Read the host/domain summary: message delivery & received.- event_type: PostfixHostSummarycommands:- run: cat /var/log/mail.log | pflogsumm | grep -i 'Host/Domain Summary':' Message Delivery' -A 8 | sed -n '2,9p'split: horizontalheader_split_by: \s+(\w+\s+\w+)\s+(\w+)\s+(\w+)\s+(\w+\s+\w+)\s+(\w+\s+\w+)\s+(.*.)set_header:[sentCount, bytesDelivered, defers, avgDaily, maxDaily, host]regex_match: truesplit_by: \s+(\d+)\s+(\d+\w*)\s+(\d+)\s+(\d+.\d+\s+\w)\s+(\d+.\d+\s+\w)\s+(.*)- run: cat /var/log/mail.log | pflogsumm | grep -A 15 'Host/Domain Summary':' Messages Received' | sed '/Senders by message count/q'split: horizontalheader_split_by: \s+(\w+\s+\w+)\s+(\w+)\s+(.*.)set_header: [msgCount, bytesReceived, hostDetail]regex_match: truesplit_by: \s+(\d+)\s+(\d+\w*)\s+(.*)#Read the senders & recipients with message count.- event_type: PostfixSenderRecipientMessageCountcommands:- run: cat /var/log/mail.log | pflogsumm | grep -C 11 'Senders by message count' -B 1 -A 9 | sed '/Recipients by message count/q'split: horizontalheader_split_by: (.*.)set_header: [sender.msgCount, senders]regex_match: truesplit_by: \s+(\d+)\s+(.*)- run: cat /var/log/mail.log | pflogsumm | grep -C 11 'Recipients by message count' -B 1 -A 9 | sed '/Senders by message size/q'split: horizontalheader_split_by: (.*.)set_header: [recipient.msgCount, recipients]regex_match: truesplit_by: \s+(\d+)\s+(.*)#Read the daemon message details.- event_type: PostfixDaemonMessagecommands:- run: cat /var/log/mail.log | pflogsumm | grep -A 10 'Master daemon messages'split: horizontalset_header: [daemon.msgCount, daemonMessage]regex_match: truesplit_by: \s*(\d+)\s+(\w+.*.)#Read the message deferral details.- event_type: PostfixDeferralMessagecommands:- run: cat /var/log/mail.log | pflogsumm | grep -A 15 'message deferral detail' | sed '/message bounce detail (by relay)/q'split: horizontalheader_split_by: (\s+\w+\s+.*)set_header: [deferral.msgCount, deferralMessage]regex_match: truesplit_by: \s*(\d+)\s+(\w+.*.)#Read the warning message details.- event_type: PostfixWarningMessagecommands:- run: cat /var/log/mail.log | pflogsumm | grep -v 'mail_queue_enter' | grep -C 100 'Warnings' -B 1 -A 10 | sed '/Fatal Errors/q'split: horizontalheader_split_by: \s+(\w+)\s+(.*)set_header: [Warning.msgCount, warningMessage]regex_match: truesplit_by: \s*(\d+)\s\s\s(.*.)#Read the error message details.- event_type: PostfixErrorMessagecommands:- run: cat /var/log/mail.log | pflogsumm | grep -C 15 'Fatal Errors' -B 1 -A 10 | sed '/Panics/q'split: horizontalheader_split_by: \s+(\w+)\s+(.*)set_header: [Fatal.msgCount, fatalMessage]regex_match: truesplit_by: \s*(\d+)\s\s\s(.*.)#Read the message bounce details.- event_type: PostfixBounceMessagecommands:- run: cat /var/log/mail.log | pflogsumm | grep -A 10 'message bounce detail (by relay)' | sed '/message reject detail/q'split: horizontalheader_split_by: \s+(\w+)\s+(.*)set_header: [Bounce.msgCount, bounceMessage]regex_match: truesplit_by: \s*(\d+)\s\s\s(.*.)Se você preferir fazer o seu próprio, certifique-se de que seu arquivo yaml siga o padrão acima. Edite o seguinte atributo conforme necessário:
EVENT_TYPE
: Uma tabela de banco de dados New Relic que você pode consultar usando NRQL.COMMAND
: O comando usado para imprimir métricas no terminal.
Encaminhe seu log do Postfix para o New Relic
Siga estas etapas para encaminhar o log do Postfix para New Relic:
Crie um arquivo denominado
logging.yml
no diretório do agente de infraestrutura:bash$touch /etc/newrelic-infra/logging.d/logging.ymlAdicione o seguinte trecho ao arquivo
logging.yml
:logs:- name: mail.logfile: /var/log/mail.logattributes:logtype: postfix_maillog
Reinicie o agente de infraestrutura
Use as instruções em nossos documentos do agente de infraestrutura para reiniciar seu agente de infraestrutura. Este é um comando básico que deve funcionar para a maioria das pessoas:
$sudo systemctl restart newrelic-infra.service
Encontre e use dados
Siga estas etapas para usar nosso modelo dashboard pré-construído para visualizar facilmente seus dados Postfix:
Vá para
e clique em
+ Integrations & Agents
.
Clique na guia
Dashboards
.
Na caixa de pesquisa, digite
Postfix
.Ao ver nosso dashboard pré-construído, clique nele para instalá-lo em sua conta.
Seu dashboard Postfix é um painel personalizado. Acesse-o na interface Dashboards . Para obter documentos sobre como usar e editar o painel, consulte nossos documentos dashboard .
Para obter mais informações sobre como encontrar e usar seus dados, consulte Compreender os dados de integração. Aqui estão alguns exemplos de consulta NRQL para dados Postfix:
Qual é o próximo?
Para saber mais sobre como construir uma consulta NRQL e gerar um painel, confira estes documentos:
Introdução ao criador de consulta para criação de consultas básicas e avançadas.
Introdução aos dashboards para personalizar seu dashboard e realizar diversas ações.
Gerencie seu dashboard para ajustar o
modo de exibição ou para adicionar mais conteúdo ao dashboard.