DEV Community

Railander Marques for AWS Community Builders

Posted on • Edited on

4

Monitoramento de Eventos no AWS SES com Filtros no CloudWatch Logs

Introdução:

No cenário da gestão de e-mails, a eficiência na monitorização e análise de eventos críticos é fundamental. Para aprimorar esse processo no AWS SES, foram desenvolvidos filtros específicos, utilizando registros do CloudWatch Logs em /aws/ses/monitoring (nome usado no vídeo deste tutorial).

Esses filtros são projetados para fornecer insights técnicos em três áreas-chave: entregas bem-sucedidas, reclamações de destinatários e bounces. Cada filtro extrai dados essenciais, como timestamp, tipo de notificação, remetente, destinatários e assunto do e-mail. Este enfoque técnico facilita a compreensão e administração direta do serviço SES.

A seguir, detalharemos cada filtro, destacando sua finalidade específica e as métricas técnicas fornecidas. Esses filtros não apenas simplificam a interpretação de eventos críticos, mas também capacitam administradores com controle técnico preciso no ambiente AWS SES.


Diagrama - Como funciona a rastreabilidade?
Image description

Link da Implementação: https://youtu.be/G5UDOBfEBZg


Filtro de Entrega:
Este filtro visa identificar eventos relacionados à entrega de e-mails.
Campos selecionados para exibição: timestamp, tipo de notificação, remetente (mail.source), destinatário principal (Recepient1), destinatário secundário (Recepient2) e assunto do e-mail (Subject).
A filtragem é realizada para selecionar apenas eventos do tipo "Delivery".
Os resultados são ordenados de forma descendente com base no timestamp.

fields @timestamp, notificationType, mail.source as Sender, mail.destination.0 as Recepient1, mail.destination.1 as Recepient2, mail.commonHeaders.subject as Subject
| filter notificationType = "Delivery"
| sort @timestamp desc
Enter fullscreen mode Exit fullscreen mode

Filtro de Reclamação (Complaint):
Este filtro tem como objetivo identificar eventos relacionados a reclamações de e-mails por parte dos destinatários.
Campos selecionados para exibição: timestamp, tipo de notificação, remetente (mail.source), destinatário principal (Recepient1), destinatário secundário (Recepient2) e assunto do e-mail (Subject).
A filtragem é realizada para selecionar apenas eventos do tipo "Complaint".
Os resultados são ordenados de forma descendente com base no timestamp.

fields @timestamp, notificationType, mail.source as Sender, mail.destination.0 as Recepient1, mail.destination.1 as Recepient2, mail.commonHeaders.subject as Subject
| filter notificationType = "Complaint"
| sort @timestamp desc
Enter fullscreen mode Exit fullscreen mode

Filtro de Bounce:
Este filtro visa identificar eventos relacionados a e-mails que não foram entregues corretamente e foram devolvidos (bounced).
Campos selecionados para exibição: timestamp, tipo de notificação, remetente (mail.source), destinatário principal (Recepient1), destinatário secundário (Recepient2) e assunto do e-mail (Subject).
A filtragem é realizada para selecionar apenas eventos do tipo "Bounce".
Os resultados são ordenados de forma descendente com base no timestamp.

fields @timestamp, notificationType, mail.source as Sender, mail.destination.0 as Recepient1, mail.destination.1 as Recepient2, mail.commonHeaders.subject as Subject
| filter notificationType = "Bounce"
| sort @timestamp desc
Enter fullscreen mode Exit fullscreen mode

Filtro mais Abrangente:

fields @timestamp,
       notificationType,
       mail.timestamp as mail_timestamp,
       bounce.bouncedRecipients.0.status as code_status,
       mail.source as Remetente,
       mail.destination.0 as Destinatario_1,
       mail.destination.1 as Destinatario_2,
       mail.destination.2 as Destinatario_3,
       mail.commonHeaders.subject as Assunto,
       mail.commonHeaders.date as Data,
       bounce.bounceType as bounce_type,
       bounce.bounceSubType as bounce_sub_type,
       complaint.complaintFeedbackType as complaint_feedback,
       complaint.complaintSubType as complaint_sub_type,
       delivery.processingTimeMillis as delivery_time,
       delivery.smtpResponse as smtp_response,
       coalesce(bounce.bouncedRecipients[0].emailAddress, '') as bounced_email,
       coalesce(complaint.complainedRecipients[0].emailAddress, '') as complained_email,
       mail.messageId
| filter notificationType in ['Bounce', 'Complaint', 'Delivery']
| sort @timestamp desc
Enter fullscreen mode Exit fullscreen mode

Extra:
Meta Redirect usado no Vídeo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="refresh" content="0;url=https://cloudwatch.amazonaws.com/dashboard.html?dashboard=ses-monitoring&context=XXXXXXXXX---TROQUE-SUA-URL---XXXXXXXXX">
    <meta name="robots" content="noindex, nofollow">
    <title></title>
</head>
<body>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

Screenshots:

Image description

Image description

AWS Q Developer image

Your AI Code Assistant

Ask anything about your entire project, code and get answers and even architecture diagrams. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Start free in your IDE

Top comments (0)

Best Practices for Running  Container WordPress on AWS (ECS, EFS, RDS, ELB) using CDK cover image

Best Practices for Running Container WordPress on AWS (ECS, EFS, RDS, ELB) using CDK

This post discusses the process of migrating a growing WordPress eShop business to AWS using AWS CDK for an easily scalable, high availability architecture. The detailed structure encompasses several pillars: Compute, Storage, Database, Cache, CDN, DNS, Security, and Backup.

Read full post

👋 Kindness is contagious

If you found this post helpful, please consider leaving a ❤️ or a kind comment!

Sounds good!