0x00 前言
为了监控 ElasticSearch Cluster 被非预期删除、创建等情况,需要搞一个监控,当监控到这种行为时,会触发 SNS 告警。有如下几个思路:
- 写个脚本定期监控 CloudTrail 有非预期API CALL的时候触发SNS
- 将 CloudTrail 中的日志写到 CloudWatch log group 中,然后再自定义 metric 配合 alarm 实现告警
- 利用 CloudWatch Event 监听 elasticsearch 事件实现告警
0x01 思路解读
第一种方法就是将 CloudTrail logs 打到 S3 然后在分析 S3 中存储的 api call 情况,这种需要人工介入的地方还挺多的,不咋优雅,还有优先采用 AWS 自身提供的服务做到这件事,故跳过了。第二种方法可以参考文档[1],直接梭哈。第三种就有意思了,官方文档中没有给出现成的demo[2],需要我们自定义,这里就来聊一聊自定义的思路。
0x02 利用 CloudWatch Event 监听 elasticsearch 事件实现告警
在 CloudWatch Event 的 console 中 service name 并没有ES相关的服务。
在文档[1]中有提及“Creating a CloudWatch Events Rule That Triggers on an AWS API Call Using AWS CloudTrail”,也就是说理论上cloudtrail中记录的log在这里都能实现监控和告警。研究了一下,Event Pattern 内容如下:
1234567891011121314151617 |
{ "source": [ "aws.es" ], "detail-type": [ "AWS API Call via CloudTrail" ], "detail": { "eventSource": [ "es.amazonaws.com" ], "eventName": [ "DeleteElasticsearchDomain", "CreateElasticsearchDomain" ] }} |
思路就是找一个其他服务的 Event Pattern 然后尝试替换为 ES 的 source、eventSource、eventName。效果如下:
不过现在要自己写,没准过段时间,这个功能就加上了呢。
0x03 参考链接
- [1] Creating CloudWatch Alarms for CloudTrail Events: Examples, https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html
- [2] Creating a CloudWatch Events Rule That Triggers on an AWS API Call Using AWS CloudTrail, https://docs.amazonaws.cn/en_us/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html
- source:tonghuaroot.com
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论