如何让Oracle Cloud免费层ARM服务器达10TB流量后自动关机?
Oracle Cloud ARM服务器流量超限自动关机实现方案
1. 配置流量监控指标
利用OCI监控服务跟踪实例累计流量:
- 进入OCI控制台「监控」模块,创建自定义查询:
选择目标ARM实例对应的网卡,分别选取vnics.outbound.bytes(出站流量)和vnics.inbound.bytes(入站流量)指标,聚合方式设为SUM,时间范围选择「从实例创建起」,将两个指标的结果相加得到总累计流量。 - 10TB对应的字节数为
10995116277760,后续告警将以此为阈值。
2. 创建流量超限告警规则
在监控服务中创建告警规则,触发流量超限条件:
- 告警触发条件设置为:
SUM(vnics.outbound.bytes) + SUM(vnics.inbound.bytes) >= 10995116277760 - 告警级别设为「紧急」,确保高优先级触发后续动作。
3. 配置自动关机动作
通过OCI Functions实现实例自动停止:
- 编写Python函数调用OCI API停止指定实例,核心代码示例:
import oci def stop_instance(event, context): # 替换为你的实例OCID target_instance_id = "ocid1.instance.oc1.xxx.xxxxxx" config = oci.config.from_file() compute_client = oci.core.ComputeClient(config) compute_client.instance_action(target_instance_id, "STOP") return {"result": "Instance stopped successfully due to traffic limit"} - 将函数部署到OCI Functions(免费层额度足以支撑个人项目使用)。
- 返回告警规则配置页面,添加「调用函数」动作,关联上述停止实例的函数。
4. 验证与缓冲设置
- 测试阶段可将阈值设为较小值(如1GB),验证告警触发与自动关机流程是否正常。
- OCI监控指标存在5-10分钟延迟,建议将实际告警阈值设为9.9TB,避免因延迟导致超额。
额外提示
- 负传输速率属于监控数据校准或延迟问题,不影响累计流量统计,以累计总和为准即可。
- 需为函数配置足够IAM权限:授予
compute instances stop权限,确保能执行关机操作。 - 定期查看监控面板,提前排查异常流量(如攻击、配置错误),减少触发自动关机的概率。
内容的提问来源于stack exchange,提问作者FrankStein
相关产品推荐
相关产品推荐

