一、云监控架构挑战与突破
传统云监控痛点 :
❌ 多区域/多账户资源分散难统一
❌ 无服务器环境监控盲区(Lambda/API Gateway)
❌ 云账单爆炸式增长
Zabbix-AWS解决方案:

三层监控体系:
-
基础设施层:EC2/EBS/VPC(Zabbix Agent + CloudWatch)
-
平台服务层:S3/RDS/SQS(CloudWatch原生集成)
-
无服务器层:Lambda/API Gateway(SQS事件桥接)
二、环境准备与权限配置
▸ IAM策略关键权限
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudwatch:GetMetricData",
"cloudwatch:ListMetrics",
"ec2:DescribeInstances",
"lambda:ListFunctions"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "sqs:SendMessage",
"Resource": "arn:aws:sqs:us-east-1:123456789012:zabbix-events"
}
]
}
▸ 跨账户监控配置(Organization场景)
# 在主账户创建监控角色
aws iam create-role --role-name ZabbixCrossAccountRole \
--assume-role-policy-document '{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Principal":{"AWS":"arn:aws:iam::主账户ID:root"},
"Action":"sts:AssumeRole"
}]
}'
三、四大核心监控场景实战
▶ 场景1:EC2实例深度监控
传统Agent+CloudWatch双轨制:

关键配置:
-
CloudWatch监控项:
名称:EC2_CPU_CreditBalance 类型:AWS CloudWatch 键值:aws.cloudwatch.get[AmazonEC2,CPUCreditBalance,InstanceId={$AWS.INSTANCE_ID}]
-
自动发现规则:
// 发现EC2实例的LLD规则 { "aws.regions": "us-east-1,us-west-2", "aws.filters": "tag:Env=Production" }
▶ 场景2:RDS性能监控(含Aurora)
多维度采集:
// 监控Aurora读写延迟
aws.cloudwatch.get[AmazonRDS,ReadLatency,DBClusterIdentifier={$DB_CLUSTER}]
aws.cloudwatch.get[AmazonRDS,WriteLatency,DBClusterIdentifier={$DB_CLUSTER}]
存储空间预测:
// 基于趋势预测7天容量
预处理:时间序列预测(linear, 7d)
▶ 场景3:Lambda无服务器监控
事件驱动架构:

Zabbix SQS监听配置:
# /usr/lib/zabbix/externalscripts/aws_sqs_monitor.py
import boto3
sqs = boto3.client('sqs')
queue_url = 'https://sqs.us-east-1.amazonaws.com/123456789012/zabbix-events'
def check_sqs():
response = sqs.receive_message(QueueUrl=queue_url, MaxNumberOfMessages=10)
for message in response.get('Messages', []):
# 解析Lambda错误事件
if 'ERROR' in message['Body']:
zabbix_sender(f"lambda.error[{function_name}]", 1)
▶ 场景4:成本异常监控
对接Cost Explorer API:
// 监控日成本突增
名称:AWS_DailyCostSpike
类型:外部检查
键值:aws.cost.get[DAILY, 0.3] # 30%增长告警
四、高级监控方案
▸ 跨VPC监控拓扑

实现方案:
-
VPC对等连接 + Security Group放行10050端口
-
通过SSM Session Manager实现Agent免密配置
▸ 混合云监控架构

五、性能优化与成本控制
▸ CloudWatch API成本优化
请求合并策略:
// zabbix_server.conf
AWSCloudWatchFrequency=300 # 从60s改为300s
AWSCloudWatchBulkRequests=50 # 批量请求数
智能请求调度:
if 08:00-20:00:
interval = 300 # 日间5分钟
else:
interval = 1800 # 夜间30分钟
▸ 存储分级策略
数据类型 | 保留策略 | 存储引擎 |
---|---|---|
实时监控数据 | 30天 | TimescaleDB |
长期趋势数据 | 5年 | S3 Parquet |
成本报告 | 永久 | Glacier |
六、总结:云监控黄金法则
-
三层监控模型
层级 监控目标 工具 资源层 EC2/EBS Zabbix Agent 服务层 RDS/SQS CloudWatch原生集成 无服务器层 Lambda/Step SQS事件桥接 -
成本控制铁律
"监控成本不超过资源成本的1%"
-
通过API请求合并降低CloudWatch费用
-
使用Infrequent Access存储历史数据
-
-
演进方向
-
AI异常预测:基于历史数据的故障预判
-
FinOps集成:监控数据驱动成本优化决策
-