使用Terraform自動化創(chuàng)建跟蹤
您可以使用操作審計創(chuàng)建跟蹤,將操作事件持續(xù)投遞到日志服務(wù)SLS或?qū)ο蟠鎯SS中。Terraform可以完成自動化創(chuàng)建。
前提條件
運行Terraform程序前,請確保您已開通以下云服務(wù):
日志服務(wù)和對象存儲在超出免費額度后,會產(chǎn)生少量費用。更多信息,請參見日志服務(wù)計算說明和對象存儲計算說明。
背景信息
Terraform是一個開源的自動化資源編排工具,幫助您自動化構(gòu)建、配置和管理云上資源。您可以通過Terraform模板創(chuàng)建跟蹤。更多信息,請參見Terraform Alibaba Cloud Provider。
創(chuàng)建跟蹤
您可以通過Terraform程序?qū)⒏櫡謩e投遞到日志服務(wù)SLS或?qū)ο蟠鎯SS,或者同時進(jìn)行投遞。關(guān)于如何選擇存儲服務(wù),請參見將事件持續(xù)投遞到指定服務(wù)。
場景一:僅投遞到SLS
當(dāng)您需要將跟蹤投遞到SLS時,僅需在Cloud Shell部署SLS相關(guān)程序,即可自動創(chuàng)建跟蹤。
在彈出的對話框中,單擊確認(rèn),克隆代碼到CloudShell。
先單擊右上角的編輯器,再單擊左側(cè)目錄的tutorial-actiontrail-createdby-terraform,打開trail-sls目錄下的variables.tf文件。
設(shè)置文件variables.tf中各個參數(shù)的default的值。
region:資源歸屬的地域。
trail_name:跟蹤名稱。
sls_project_name:日志服務(wù)SLS的Project名稱。說明:請您根據(jù)所需設(shè)置該參數(shù),確保其唯一。
account_id:阿里云賬號。
單擊圖標(biāo)。
輸入以下命令,定位用來創(chuàng)建跟蹤的Terraform模板的目錄。
cd ~/tutorial-actiontrail-createdby-terraform/trail-sls
輸入以下命令,加載Terraform Alibaba Cloud Provider。
terraform init
輸入以下命令,創(chuàng)建跟蹤。
terraform apply
如果返回Resources: X added(X表示新增資源的個數(shù)),說明跟蹤創(chuàng)建成功,示例如下。
Apply complete! Resources: 3 added, 0 changed, 0 destroyed. Outputs: sls_project_id = [ [ "tutorial-terraform-actiontrail", ], ] trail_id = [ [ "tutorial-actiontrail", ], ]
場景二:僅投遞到OSS
當(dāng)您需要將跟蹤投遞到OSS時,僅需在Cloud Shell部署OSS相關(guān)程序,即可自動創(chuàng)建跟蹤。
在彈出的對話框中,單擊確認(rèn),克隆代碼到CloudShell。
先單擊右上角的編輯器,再單擊左側(cè)目錄的tutorial-actiontrail-createdby-terraform,打開trail-oss目錄下的variables.tf文件。
設(shè)置文件variables.tf中各個參數(shù)的default的值。
region:資源歸屬的地域。
trail_name:跟蹤名稱。
oss_bucket_name:對象存儲OSS的Bucket名稱。說明:請您根據(jù)所需設(shè)置該參數(shù),確保其唯一。
account_id:阿里云賬號。
單擊圖標(biāo)。
輸入以下命令,定位用來創(chuàng)建跟蹤的Terraform模板的目錄。
cd ~/tutorial-actiontrail-createdby-terraform/trail-oss
輸入以下命令,加載Terraform Alibaba Cloud Provider。
terraform init
輸入以下命令,創(chuàng)建跟蹤。
terraform apply
如果返回Resources: X added(X表示新增資源的個數(shù)),說明跟蹤創(chuàng)建成功,示例如下。
Apply complete! Resources: 2 added, 0 changed, 0 destroyed. Outputs: oss_bucket_id = [ [ "tutorial-terraform-actiontrail", ], ] trail_id = [ [ "tutorial-actiontrail", ], ]
場景三:同時投遞到SLS和OSS
當(dāng)您需要將跟蹤同時投遞到SLS和OSS時,僅需在Cloud Shell部署程序,即可自動創(chuàng)建跟蹤。
在彈出的對話框中,單擊確認(rèn),克隆代碼到CloudShell。
先單擊右上角的編輯器,再單擊左側(cè)目錄的tutorial-actiontrail-createdby-terraform,打開trail目錄下的variables.tf文件。
設(shè)置文件variables.tf中各個參數(shù)的default的值。
region:資源歸屬的地域。
trail_name:跟蹤名稱。
oss_bucket_name:對象存儲OSS的Bucket名稱。說明:請您根據(jù)所需設(shè)置該參數(shù),確保其唯一。
sls_project_name:日志服務(wù)SLS的Project名稱。說明:請您根據(jù)所需設(shè)置該參數(shù),確保其唯一。
account_id:阿里云賬號。
單擊圖標(biāo)。
輸入以下命令,定位用來創(chuàng)建跟蹤的Terraform模板的目錄。
cd ~/tutorial-actiontrail-createdby-terraform/trail
輸入以下命令,加載Terraform Alibaba Cloud Provider。
terraform init
輸入以下命令,創(chuàng)建跟蹤。
terraform apply
如果返回Resources: X added(X表示新增資源的個數(shù)),說明跟蹤創(chuàng)建成功,示例如下。
Apply complete! Resources: 3 added, 0 changed, 0 destroyed. Outputs: oss_bucket_id = [ [ "tutorial-terraform-actiontrail", ], ] sls_project_id = [ [ "tutorial-terraform-actiontrail", ], ] trail_id = [ [ "tutorial-actiontrail", ], ]
(可選)刪除資源
您可以根據(jù)場景選擇不同的資源刪除方法。刪除后,自動投遞跟蹤程序?qū)⑹А?/p> 當(dāng)您需要刪除SLS和跟蹤資源時,僅需輸入刪除命令,即可自動刪除資源。 輸入以下命令,刪除程序中創(chuàng)建的所有資源。刪除后,自動投遞跟蹤程序?qū)⑹А?/p> 如果返回Resources: X destroyed(X表示刪除資源的個數(shù)),說明資源刪除成功,示例如下。 當(dāng)您將跟蹤投遞到OSS時,您需要先停止跟蹤,然后刪除OSS Bucket中的所有文件,最后輸入刪除命令。 輸入以下命令,停止跟蹤。 your_trail_name請?zhí)鎿Q為跟蹤名稱,本文示例中為tutorial-actiontrail。 等待1~2分鐘,然后輸入以下命令,刪除OSS Bucket中的文件。 your_bucket_name請?zhí)鎿Q為OSS Bucket名稱,本文示例中為tutorial-terraform-actiontrail。 輸入以下命令,刪除程序中創(chuàng)建的所有資源。刪除后,自動投遞跟蹤程序?qū)⑹А?/p> 如果返回Resources: X destroyed(X表示刪除資源的個數(shù)),說明資源刪除成功,示例如下。 當(dāng)您將跟蹤同時投遞到SLS和OSS時,您需要先停止跟蹤,然后刪除OSS Bucket中的所有文件,最后輸入刪除命令。 輸入以下命令,停止跟蹤。 your_trail_name請?zhí)鎿Q為跟蹤名稱,本文示例中為tutorial-actiontrail。 等待1~2分鐘,然后輸入以下命令,刪除OSS Bucket中的文件。 your_bucket_name請?zhí)鎿Q為OSS Bucket名稱,本文示例中為tutorial-terraform-actiontrail。 輸入以下命令,刪除程序中創(chuàng)建的所有資源。刪除后,自動投遞跟蹤程序?qū)⑹А?/p> 如果返回Resources: X destroyed(X表示刪除資源的個數(shù)),說明資源刪除成功,示例如下。場景一:僅刪除SLS和跟蹤資源
terraform destroy
Destroy complete! Resources: 3 destroyed.
場景二:僅刪除OSS和跟蹤資源
aliyun actiontrail StopLogging --region cn-hangzhou --Name your_trail_name
aliyun oss rm oss://your_bucket_name -r --region cn-hangzhou
terraform destroy
Destroy complete! Resources: 2 destroyed.
場景三:同時刪除SLS、OSS和跟蹤資源
aliyun actiontrail StopLogging --region cn-hangzhou --Name your_trail_name
aliyun oss rm oss://your_bucket_name -r --region cn-hangzhou
terraform destroy
Destroy complete! Resources: 3 destroyed.
Terraform模板參數(shù)說明
當(dāng)您需要修改Terraform程序中的代碼時,您可以參考如下參數(shù)說明修改Terraform模板。例如:您可以將event_rw設(shè)置為Write,僅跟蹤寫事件。
參數(shù) | 說明 |
trail_name | 跟蹤名稱。 取值范圍: 長度為6~36個字符,必須以小寫英文字母開頭,可包含小寫英文字母、數(shù)字、短劃線(-)和下劃線(_)。 說明 同一個賬號內(nèi)跟蹤名稱不可重復(fù)。 |
event_rw | 阿里云操作事件的類型。取值:
|
oss_bucket_name | OSS Bucket名稱。 說明 oss_bucket_name和sls_project_arn需至少指定其中一個參數(shù)。 |
oss_key_prefix | OSS Bucket中操作事件文件的前綴,默認(rèn)為空。 |
role_name | 用戶允許操作審計服務(wù)扮演的RAM角色名稱,操作審計使用該角色將操作事件投遞到您的存儲服務(wù),默認(rèn)值:aliyunserviceroleforactiontrail。 如果該角色不存在,系統(tǒng)會自動進(jìn)行創(chuàng)建。更多信息,請參見操作審計服務(wù)關(guān)聯(lián)角色。 |
sls_project_arn | 日志服務(wù)Project ARN。格式為 說明 oss_bucket_name和sls_project_arn需至少指定其中一個參數(shù)。 |
sls_write_role_arn | 日志服務(wù)角色ARN。操作審計將用該角色來將操作事件寫入對應(yīng)SLS Logstore,格式為 |
trail_region | 跟蹤地域。默認(rèn)值:All(跟蹤所有地域)。 您也可以指定地域(region_id),多個地域用半角逗號(,)分隔,例如: |
mns_topic_arn | MNS消息主題的ARN。如果設(shè)置了該參數(shù),則當(dāng)操作事件投遞到OSS后,操作審計將向?qū)?yīng)主題發(fā)送一條消息。 |
status | 跟蹤狀態(tài)。取值:
|