当前位置:网站首页>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里面转换打开,一目了然。
边栏推荐
- In July 2022, domestic database memorabilia
- T+Cloud:构建新型生意社交网络和营销关系的“智公司”
- getBoundingClientRect
- MMDetection usage example: from entry to exit
- 「 WAIC 2022 · 黑客马拉松」蚂蚁财富两大赛题邀你来战!
- 什么是内部客户服务?
- The Development and Current Situation of Object Detection
- The difference between Client Side Cache and Server Side Cache
- TritonVM——基于Recursive STARK的虚拟机
- IDEA 自动导入的配置(Auto import)
猜你喜欢
我的四周年创作纪念日
[Sql刷题篇] 查询信息数据--Day1
如何推动乡村振兴的落地
Jmeter - Heap配置原因报错Invalid initial heap size: -Xms1024m -Xmx2048mError
Dragoma (DMA) Metaverse System Development
"WAIC 2022 · hackers marathon" two ants wealth competition invited you to fight!
hash和history路由的区别
Force KouTi (5), the longest text string back
Infrared image filtering
百度智能云重庆工业互联网平台正式亮相,深耕重庆,辐射西南
随机推荐
How to promote the implementation of rural revitalization
Initialization process of SAP UI5
【ASP.NET Core】 中间件
PG网络传输安全SSL介绍及使用示例
存储资源盘活系统助力新基建
密码学系列之:PEM和PKCS7,PKCS8,PKCS12
简易数据缓存层的建立
华为企业组网实例:VRRP+MSTP典型组网配置
really time ntp服务启动命令
The list of Kubernetes - watch mechanism
华为WLAN技术:AP上线及相关模板的配置实验
目标检测的发展与现状
零基础做出高端堆叠极环图
T+Cloud:构建新型生意社交网络和营销关系的“智公司”
Dragoma (DMA) Metaverse System Development
SAP UI5 确保控件 id 全局唯一的实现方法
nr part calculation
T+Cloud: A "Smart Company" for Building New Business Social Networks and Marketing Relationships
备忘录模式
【Attention 演变史】RNN的产生、架构、推广、问题(第一弹)