我在使用Terraform尝试构建CLB的L7架构,期望能够配置CLB的访问日志,并且通过OSS shipper将对应的日志保存在OSS上。
目前我在最新版的Terraform Provider(1.208.1)中没有找到访问日志配置的相关资源,甚至在ROS以及CLB的API中也没有看到对应的OpenAPI。
想确认下,是不是当前CLB访问日志配置只能通过控制台手动处理,没有办法使用Terraform, ROS 或者 OpenAPI进行自动化配置。
https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/slb
https://www.alibabacloud.com/help/zh/resource-orchestration-service/latest/slb
https://www.alibabacloud.com/help/zh/server-load-balancer/latest/api-slb-2014-05-15-dir-access-logs
非常感谢。
楼主你好,当前确实没有找到Terraform Provider中关于CLB访问日志配置的相关资源。目前的CLB访问日志配置只能通过控制台手动处理,暂时没有办法使用Terraform、ROS或OpenAPI进行自动化配置。
根据您提供的信息,目前最新版的Terraform Provider(1.208.1)中可能确实没有直接支持配置CLB访问日志的资源。此外,在ROS(Resource Orchestration Service)和CLB的API文档中也没有找到对应的OpenAPI。
在这种情况下,您可以考虑以下两种方式来实现CLB访问日志的自动化配置:
自定义资源:您可以使用Terraform的自定义资源功能,通过调用阿里云的API来配置CLB的访问日志。虽然Terraform Provider本身可能没有提供直接支持,但您可以编写自己的Terraform Provider或使用Terraform的外部数据源来实现对阿里云API的调用。这样可以在Terraform中实现CLB访问日志的自动化配置。
脚本或其他自动化工具:如果Terraform无法满足您的需求,您可以考虑使用其他自动化工具,如Shell脚本、Python脚本或SDK来配置CLB的访问日志。这些工具可以直接调用阿里云的API来实现配置。您可以在构建基础设施的过程中集成这些工具,以实现自动化的CLB访问日志配置。
CloudLens for CLB基于实时访问日志进行自动聚合,并提供智能巡检、实时告警等功能。
支持集中管理当前阿里云账号下所有的CLB实例。
支持一键开启实例日志(访问日志)和全局日志(配置审计日志、云监控事件)的采集功能,集中管理日志的采集状态。
访问日志:记录了所有发送到负载均衡的请求的详细信息,包括请求时间、客户端IP地址、延迟、请求路径和服务器响应等。
配置审计日志:包括CLB配置变更日志以及资源不合规日志。
云监控事件:记录SLB证书到期的相关事件。
实时CLB访问日志的实时存储、查询与分析。
提供丰富的可视化报表,包括监控中心、实例巡检等,并支持报表邮件、钉钉群订阅。功能说明
自定义告警配置,告警通知直接对接消息中心、短信、邮件、语音、钉钉,并支持对接自定义WebHook。
基于原始访问日志实时提取各类指标信息,包括PV、请求成功率、平均延迟、P50/P99延迟、出入流量等。并支持多个维度组合,包括slbid、host、method、status。
提供智能巡检功能,支持全局巡检和slbid粒度巡检,并支持在可视化报表中直接标注异常点。
想要实现的 functionality 是可以通过阿里云控制台或者API完成的,但暂时还不支持在Terraform中配置。
主要的原因是:
Terraform Provider是由第三方根据阿里云API开发的。
当前Aliyun Terraform Provider还不支持为CLB配置访问日志的资源。
虽然阿里云API支持为CLB配置访问日志,但Terraform Provider尚未接入该功能。
具体的操作方式是:
通过阿里云控制台为CLB配置访问日志。
选择日志级别、事件类型、日志存储方式等。
将访问日志存储在指定的OSS Bucket中。
配置OSS Shipper将日志传输到其他OSS存储。
目前只能通过控制台或API来为CLB配置访问日志。
Terraform Provider还没有对应的资源支持。
我建议您可以:
通过脚本或API临时实现访问日志的配置。
提供反馈给Terraform Provider维护者,请求增加访问日志的资源支持。
相信随着阿里云API与Terraform Provider的不断升级,未来会支持在Terraform配置中完成CLB访问日志的功能。
使用Terraform配置CLB(负载均衡器)的访问日志转发,可以按照以下步骤进行:
安装Terraform:首先,在本地计算机上安装Terraform。你可以从Terraform官方网站下载适用于你的操作系统的安装程序,并按照说明进行安装。
创建Terraform工程:在一个新目录中创建一个新的Terraform工程。
编写Terraform配置文件:创建一个名为
main.tf
的文件,并使用编辑器打开。在该文件中,编写Terraform配置以定义CLB和相关资源。定义CLB:使用Terraform的
aws_lb
资源来定义负载均衡器。在资源块中指定负载均衡器的名称、监听规则、目标组等。配置访问日志:在CLB资源块中,使用
access_logs
参数来配置访问日志,指定要转发日志的存储位置、格式等。例如:初始化和应用配置:打开命令行终端,导航到Terraform工程所在的目录,并运行以下命令初始化和应用配置:
Terraform将自动下载所需的提供商插件并初始化工程。然后,它将根据配置文件创建和配置CLB及其访问日志转发设置。
验证:等待Terraform完成配置的应用。一旦完成,你可以验证CLB是否已成功配置了访问日志转发。
请注意,以上步骤是一个简单示例,并且假设你已经正确配置了AWS提供商。实际操作中,可能需要根据具体情况进行适当的更改和配置。
目前的确在最新版本的Terraform Provider中,没有直接支持配置CLB访问日志的相关资源。而且根据我所了解,阿里云CLB服务当前也没有对应的OpenAPI或ROS可供调用。
因此,目前来说,你需要通过阿里云控制台手动配置CLB的访问日志,并使用OSS Shipper将日志保存在OSS上。这个过程无法通过Terraform、ROS或OpenAPI进行自动化配置。
不过,Terraform社区和阿里云团队一直在努力扩展和完善Terraform Provider的功能。未来可能会有更新版本提供更多的资源支持,包括CLB访问日志配置。建议你关注Terraform官方文档和Terraform Provider for Alibaba Cloud的更新,以获取最新信息和功能支持。
如果您想要使用Terraform来配置CLB访问日志转发,可以使用以下代码:
如果现有API没有提供的话,可以考虑通过其他方式,比如使用阿里云的SDK来编写自定义脚本来实现。虽然不如Terraform方便,但仍然可以满足自动化