Aws Lambda 收集 CloudWatch 事件
创建一个 Lambda
在 Lambda 控制台创建一个 python 的函数 collect_watch,暂时不需要添加触发器。
import json
def lambda_handler(event, context):
print(json.dumps(event))
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
创建一个警报
在 CloudWatch 控制台创建一个警报,具体创建过程这里不赘述。
我创建了一个 CPU 暂用率的警报。
创建事件规则
在 CloudWatch 控制台左边的菜单栏选择 事件 下的 规则,然后开始创建规则
选择 事件模式
服务名称选择 CloudWatch;
事件类型选择 CloudWatch Alarm State Change
在右侧点击 添加目标
选择 Lambda函数
函数选择前面创建的 collect_watch
点击右下的配置详细信息就创建完成了
去到 Lambda 控制台查看 collect_watch的详细信息就会发现函数自动添加了一个 Event Bridge 触发器。
测试一下
在我添加警报的 ec2 实例上运行一个程序使 CPU 占用率超过警报阈值触发警报,然后去 collect_watch 查看监控信息,查看输出日志,event 输出如下
{
"version": "0",
"id": "61f2d042-7c26-231c-c770-d402bae2ceb2",
"detail-type": "CloudWatch Alarm State Change",
"source": "aws.cloudwatch",
"account": "043138196711",
"time": "2021-05-28T07:52:30Z",
"region": "us-west-2",
"resources": [
"arn:aws:cloudwatch:us-west-2:043138196711:alarm:awsec2-i-0762fa32d4122cdaa-GreaterThanOrEqualToThreshold-CPUUtilization"
],
"detail": {
"alarmName": "awsec2-i-0762fa32d4122cdaa-GreaterThanOrEqualToThreshold-CPUUtilization",
"state": {
"value": "ALARM",
"reason": "Threshold Crossed: 1 out of the last 1 datapoints [99.6610169491529 (28/05/21 07:42:00)] was greater than or equal to the threshold (0.2) (minimum 1 datapoint for OK -> ALARM transition).",
"reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2021-05-28T07:52:30.143+0000\",\"startDate\":\"2021-05-28T07:42:00.000+0000\",\"statistic\":\"Maximum\",\"period\":300,\"recentDatapoints\":[99.6610169491529],\"threshold\":0.2,\"evaluatedDatapoints\":[{\"timestamp\":\"2021-05-28T07:42:00.000+0000\",\"sampleCount\":5.0,\"value\":99.6610169491529}]}",
"timestamp": "2021-05-28T07:52:30.168+0000"
},
"previousState": {
"value": "OK",
"reason": "Threshold Crossed: 1 datapoint [0.10001852366388979 (28/05/21 07:17:00)] was not greater than or equal to the threshold (10.0).",
"reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2021-05-28T07:27:57.752+0000\",\"startDate\":\"2021-05-28T07:17:00.000+0000\",\"statistic\":\"Average\",\"period\":300,\"recentDatapoints\":[0.10001852366388979],\"threshold\":10.0,\"evaluatedDatapoints\":[{\"timestamp\":\"2021-05-28T07:17:00.000+0000\",\"sampleCount\":5.0,\"value\":0.10001852366388979}]}",
"timestamp": "2021-05-28T07:27:57.769+0000"
},
"configuration": {
"description": "从 EC2 控制台创建",
"metrics": [
{
"id": "28bcd8fa-5994-44bf-4931-1f466f7c2b7b",
"metricStat": {
"metric": {
"namespace": "AWS/EC2",
"name": "CPUUtilization",
"dimensions": {
"InstanceId": "i-0762fa32d4122cdaa"
}
},
"period": 300,
"stat": "Maximum"
},
"returnData": true
}
]
}
}
}

浙公网安备 33010602011771号