当前位置:网站首页>AWS SES 的监控和告警
AWS SES 的监控和告警
2022-08-04 19:43:00 【51CTO】
简单的记录一下最近完成的一个任务。
AWS SES服务可以允许开发人员在软件中发送批量的邮件通知。具体怎么配置的,这里就简单概述一下,主要是记录一下他的监控和日志的配置和实现。
配置
AWS 控制台 -> Services - > SES
创建域名,确认DKIM,更新DNS记录
配置SMTP
联系AWS客服移除SES邮件限制
监控和告警
下面看看重点。SES批量发送邮件很容易被对方的邮件判断成垃圾邮件,因此他有Metrics里面两个指标,一个是bounce rate,一个是 complaint rate。前者是接收方的邮箱不存在或者无法发送导致反弹回来,后者是对方认为SES是垃圾邮件,回复一个抗议的信息。当bounce rate和 complaint rate超过一定的比例之后,AWS会发送通知,如果置之不理,那么再达到临界值,这个服务就会被AWS禁止掉。豆子公司就曾经发生过这种意外,导致服务被AWS强制停止,折腾了1个晚上才恢复。

为了避免这种事情发生,我们需要定期的监控,如果发现指标接近临界值,就立刻给管理员发送警告。管理员收到警告之后,需要能够查看日志记录,定位出问题的邮件。在极端情况下,如果账号泄露导致发送大量异常垃圾邮件,而AWS又真的停止了这个服务,需要和客服交流,更换所有的IAM role,限制IP等操作,再要求AWS放行。
监控Metric的警报在cloudwatch里面就可以很容易的实现。当警报触发时候,发送给对应的邮件通知SNS Topic就可以了。

当然,我们也可以用第三方的软件,比如Nagios,他本身有很多针对AWS的插件,也可以用来监控。Nagios的好处是他的告警系统很强,可以给值班的人发送短信通知,而且价格比aws的便宜。

记录SES的邮件
这个是重点。目前豆子公司对于发送出去的SES邮件,每次都会触发 SNS的 一个Topic,这个Topic 又绑定了2个不同的lambda 函数,分别把这个邮件写入 Dynamodb 和 S3 中保存

SES里面的notification 发送对应的事件给SNS topic

SNS里面的topic,一个是发邮件给teams channel,一个是触发Lambda
Dynamodb
SES记录到Dynamodb的示意图

首先创建一个dynamoDB的表,包括下面的属性
Table-name: SESNotifications.
primary Partition key: SESMessageId.
primary Sort key: SnsPublishTime.
然后,为了快速查询,我们需要添加secondary index。毕竟dynamodb的卖点就在于快速查询,如果只有SESMessageID来扫描的话就太慢了
Index name Partition key Sort key
SESMessageType-Index SESMessageType (String) SnsPublishTime (String)
SESMessageComplaintType-Index SESComplaintFeedbackType (String) SnsPublishTime (String)
第三步,配置IAM Role
IAM Role
最后是 Lambda 脚本
结果如下所示

S3
类似的,我可以配置把当天的邮件汇总写入S3的一个key中
S3 bucket access policy
Lambda 权限
创建一个role 绑定默认 AWSLambdaBasicExecutionRole的 Policy即可
S3的效果图
汇总的报告
有的时候,需要看看最近一段时间的SES的Metric状态,可以通过AWS CLI来获取。下面的命令可以输出一个状态报告,因为他的结果本身是一个JSON格式,我们可以直接在Excel里面转换打开,一目了然。

边栏推荐
- SAP UI5 的初始化过程
- MogDB学习笔记-环境准备及单实例安装
- Industrial CCD and CMOS camera
- 入门:人脸专集1 | 级联卷积神经网络用于人脸检测(文末福利)
- [Awards for Essays] Autumn recruitment special training to create your exclusive product experience
- SAP UI5 ensures that the control id is globally unique implementation method
- 成品升级程序
- awk statistical difference record
- 华为WLAN技术:AP上线及相关模板的配置实验
- openharmony初体验(1)
猜你喜欢

seata源码解析:seata server各种消息处理流程

openharmony代码框架初识(2)

2022年7月国产数据库大事记

Openharmony first experience (1)

TritonVM——基于Recursive STARK的虚拟机

openharmony初体验(1)

Defaced Fingerprint Recovery and Identification

百度智能云重庆工业互联网平台正式亮相,深耕重庆,辐射西南

Seata source code analysis: various message processing processes of seata server

性能测试流程
随机推荐
The establishment of simple data cache layer
TikTok如何为独立站引流?
Orthodontic MIA micro-implant anchorage technology China 10th anniversary exchange meeting was held in Shenyang
切换node版本和切换npm源工具
六月 致 -.-- -..- -
按需视觉识别:愿景和初步方案
How to manually download and install SAP Fiori tools - Extension Pack for Visual Studio Code
《支付宝体验设计精髓》一书,跟测试相关性知识记录
【HCIP】MPLS WPN 实验
5G NR 笔记记录
awk 统计平均 最大 最小值
拥抱Cmake小朋友 简单又实用,但是不灵活
2022年7月国产数据库大事记
Seata source code analysis: various message processing processes of seata server
Order of lds links
电脑一键重装系统内存完整性无法打开怎么办
如果是测试 axi dma抓数的话 看这里
污损指纹恢复与识别
seata源码解析:seata server各种消息处理流程
JS: 数组和树的相互转换