当前位置:网站首页>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里面转换打开,一目了然。
边栏推荐
猜你喜欢
笔记本WIFI无法上网(无Internet访问权限)
hash和history路由的区别
[Sql brush topic] Query information data--Day1
In July 2022, domestic database memorabilia
我的四周年创作纪念日
Use "green computing" technology to promote sustainable development of computing power
对比几类主流的跨端技术方案
量化交易机器人系统开发
Regular expression is incomplete
Pedestrian fall detection experiment based on YOLOV5
随机推荐
Finished product upgrade program
ERC20转账压缩
量化交易机器人系统开发
【Attention演变史】翻译模型seq2seq (第二弹)
hash和history路由的区别
seata源码解析:seata server各种消息处理流程
Orthodontic MIA micro-implant anchorage technology China 10th anniversary exchange meeting was held in Shenyang
A complete cross-compilation environment records the shell scripts generated by peta
按需视觉识别:愿景和初步方案
性能测试流程
运维就业现状怎么样?技能要求高吗?
Pedestrian fall detection experiment based on YOLOV5
really time ntp服务启动命令
awk statistical average max min
拥抱Cmake小朋友 简单又实用,但是不灵活
[Latest Information] 2 new regions will announce the registration time for the soft exam in the second half of 2022
密码学系列之:PEM和PKCS7,PKCS8,PKCS12
什么是内部客户服务?
小软件大作用 | 如何省时省力进行Gerber图层快速对比?
awk statistical difference record