日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用Terraform配置Logtail采集配置

Terraform是一種開源工具,用于安全高效地預(yù)覽、配置和管理云基礎(chǔ)架構(gòu)和資源。本文介紹如何使用Terraform調(diào)用接口創(chuàng)建Logtail采集配置。

前提條件

已安裝Terraform

  • 在Cloud Shell中使用Terraform:Cloud Shell默認安裝配置了Terraform和阿里云賬號信息,無需任何額外配置。更多信息,請參見在Cloud Shell中使用Terraform

  • 在本地安裝和配置Terraform:操作步驟請參見在本地安裝和配置Terraform,在第4步中確保registry.terraform.io/aliyun/alicloud版本為1.219.0及以上。

配置步驟

步驟一:配置AccessKey和日志服務(wù)的中心化地域

在環(huán)境變量中配置阿里云賬號AccessKey和日志服務(wù)中心Project所在的地域。

Cloud Shell中使用Terraform

# Region ID
export ALICLOUD_REGION="cn-shanghai"
重要

使用Cloud Shell無需配置身份信息,建議使用RAM用戶登錄阿里云控制臺,降低密鑰泄露造成的安全風險。

參數(shù)

說明

ALICLOUD_REGION

日志服務(wù)Project所在地域,更多信息,請參考開服地域

在本地使用Terraform

# alicloud AK
export ALICLOUD_ACCESS_KEY="AccessKey ID"
export ALICLOUD_SECRET_KEY="AccessKey Secret"
# Region ID
export ALICLOUD_REGION="cn-shanghai"

參數(shù)

說明

ALICLOUD_ACCESS_KEY

阿里云賬號的訪問密鑰AccessKey ID。更多信息,請參見訪問密鑰

重要

建議使用RAM用戶的AccessKey ID和AccessKey Secret,降低密鑰泄露造成的安全風險。

ALICLOUD_SECRET_KEY

阿里云賬號的訪問密鑰AccessKey Secret。更多信息,請參見訪問密鑰

ALICLOUD_REGION

日志服務(wù)Project所在地域,更多信息,請參考開服地域

步驟二:創(chuàng)建日志服務(wù)Project

  1. 執(zhí)行以下命令,創(chuàng)建一個Terraform工作目錄,名稱例如sls

    mkdir sls
  2. 執(zhí)行以下命令,切換到剛創(chuàng)建的目錄下。

    cd sls
  3. 在該目錄下創(chuàng)建一個文件,名稱例如terraform.tf

    touch terraform.tf
  4. terraform.tf文件中,添加如下內(nèi)容。

    resource "alicloud_log_project" "project_example" {
      project_name = "terraform-example"
      description = "terraform-example"
    }

    alicloud_log_project為資源類型,相關(guān)參數(shù)說明如下。完整參數(shù)說明,請參見Terraform-Alicloud Log Project

    參數(shù)

    是否必填

    說明

    project_example

    Resource名稱。

    project_name

    SLS日志服務(wù)project 名稱,需要保證唯一性。

    description

    project的描述。

  5. 按下鍵盤上的Esc鍵退出編輯模式,然后輸入:wq保存并退出文件。

  6. 在工作目錄sls下,執(zhí)行如下命令,初始化Terraform工作目錄。

    terraform init

    返回如下結(jié)果,表示初始化成功。

    Terraform has been successfully initialized!
  7. 在工作目錄sls下,執(zhí)行如下命令,創(chuàng)建日志服務(wù)Project。

    terraform apply

    返回如下信息,表示成功創(chuàng)建Project。

    alicloud_log_project.project_example: Creating...
    alicloud_log_project.project_example: Creation complete after 2s [id=terraform-example]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

步驟三:創(chuàng)建Logstore

  1. terraform.tf文件中,新增如下內(nèi)容。

    resource "alicloud_log_store" "logstore_example" {
      project_name = alicloud_log_project.project_example.project_name
      logstore_name = "logstore_example"
      retention_period = 3
    }

    其中alicloud_log_store為資源類型,相關(guān)參數(shù)說明如下,完整參數(shù)說明,請參見Terraform-Alicloud Log Store

    參數(shù)

    是否必填

    說明

    logstore_example

    Resource名稱。

    project_name

    LogStore所屬的Project名,此處例子引用的是alicloud_log_project類型資源下的project_example Resource的project_name屬性值。

    logstore_name

    LogStore的名稱。

    retention_period

    數(shù)據(jù)保留時間(以天為單位),默認30天。

  2. 在您所創(chuàng)建的工作目錄sls下,執(zhí)行如下命令,創(chuàng)建Logstore

    terraform apply

    返回如下結(jié)果,表示初始化成功。

    alicloud_log_project.project_example: Creating...
    alicloud_log_project.project_example: Creation complete after 2s [id=terraform-example]
    alicloud_log_store.logstore_example: Creating...
    alicloud_log_store.logstore_example: Creation complete after 1s [id=terraform-example:logstore_example]
    
    Apply complete! Resources: 2 added, 0 changed, 0 destroyed.

步驟四:創(chuàng)建Logtail采集配置

  1. terraform.tf文件中,新增如下內(nèi)容。

    resource "alicloud_logtail_config" "config_test" {
      project     = alicloud_log_store.logstore_example.project_name
      logstore    = alicloud_log_store.logstore_example.logstore_name
      name        = "config-sample"
      input_type  = "file"
      output_type = "LogService"
      input_detail = jsonencode(
      	{
    		"logPath": "/logPath",
    		"filePattern": "access.log",
    		"logType": "json_log",
    		"topicFormat": "default",
    		"discardUnmatch": false,
    		"enableRawLog": true,
    		"fileEncoding": "gbk",
    		"maxDepth": 10
    	}
      )
    }

    其中alicloud_logtail_config為資源類型,相關(guān)參數(shù)說明如下,完整參數(shù)說明,請參見Terraform-Alicloud Logtail Config

    參數(shù)

    是否必填

    說明

    config_test

    Resource名稱。

    project

    config所屬的Project名稱。

    logstore

    config所屬的Logstore名稱。

    name

    Logtail配置的名稱,在其所屬Project內(nèi)必須唯一。創(chuàng)建Logtail配置成功后,無法修改其名稱。

    命名規(guī)則如下:

    • 只能包括小寫字母、數(shù)字、短劃線(-)和下劃線(_)。

    • 必須以小寫字母或數(shù)字開頭和結(jié)尾。

    • 長度必須在2~128個字符之間。

    input_type

    日志輸入的方式。可選值如下:

    • plugin:通過Logtail插件采集日志。

    • file:通過固定模式(正則模式、分隔符模式等)采集文本文件中的日志。

    output_type

    日志輸出的方式,只支持LogService,即只支持將數(shù)據(jù)上傳到日志服務(wù)。

    input_detail

    日志輸入的相關(guān)配置。更多信息,請參見Logtail配置

  2. 在您所創(chuàng)建的工作目錄sls下,執(zhí)行如下命令,創(chuàng)建Logtail配置。

    terraform apply

    返回如下結(jié)果,表示創(chuàng)建成功。

    alicloud_logtail_config.config_test: Creating...
    alicloud_logtail_config.config_test: Creation complete after 0s [id=terraform-example-yangfei:logstore_example:config-sample]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

步驟五:創(chuàng)建機器組

  1. terraform.tf文件中,新增如下內(nèi)容。

    resource "alicloud_log_machine_group" "machine_group_example" {
      project     = alicloud_log_store.logstore_example.project_name
      name          = "terraform-example"
      identify_type = "ip"
      topic         = "terraform"
      identify_list = ["10.0.0.1", "10.0.0.2"]
    }

    其中alicloud_log_machine_group為資源類型,相關(guān)參數(shù)說明如下,完整參數(shù)說明,請參見Terraform-Alicloud Log Machine Group

    參數(shù)

    是否必填

    說明

    machine_group_example

    Resource名稱。自定義配置。

    project

    機器組所屬的project名

    name

    機器組名稱,Project下唯一

    identify_type

    機器標識類型,分為IP和userdefined兩種,默認為IP

    topic

    機器組Topic,默認為空。

    identify_list

    具體的機器標識,可以是IP或userdefined-id。

  2. 在您所創(chuàng)建的工作目錄sls下,執(zhí)行如下命令,創(chuàng)建機器組。

    terraform apply

    返回如下結(jié)果,表示初始化成功。

    alicloud_log_machine_group.machine_group_example: Creating...
    alicloud_log_machine_group.machine_group_example: Creation complete after 0s [id=terraform-example:terraform-example]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

步驟六:應(yīng)用Logtail采集配置到機器組

  1. terraform.tf文件中,添加如下內(nèi)容。

    resource "alicloud_logtail_attachment" "example" {
      project     = alicloud_log_store.logstore_example.project_name
      logtail_config_name = alicloud_logtail_config.config_test.name
      machine_group_name  = alicloud_log_machine_group.machine_group_example.name
    }

    其中alicloud_logtail_attachment為資源類型,相關(guān)參數(shù)說明如下,完整參數(shù)說明,請參見Terraform-Alicloud Logtail Attachment

    參數(shù)

    是否必填

    說明

    example

    Resource名稱。自定義配置。

    project

    project名

    logtail_config_name

    Logtail配置名

    machine_group_name

    機器組名

  2. 在您所創(chuàng)建的工作目錄sls下,執(zhí)行如下命令,將Logtail配置應(yīng)用到機器組。

    terraform apply

    返回如下結(jié)果,表示初始化成功。

    alicloud_logtail_attachment.example: Creating...
    alicloud_logtail_attachment.example: Creation complete after 0s [id=terraform-example:config-sample:terraform-example]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

完整配置模板

Terraform模板

resource "alicloud_log_project" "project_example" {
  project_name = "terraform-example"
  description = "terraform-example"
}

resource "alicloud_log_store" "logstore_example" {
  project_name = alicloud_log_project.project_example.project_name
  logstore_name = "logstore_example"
  retention_period = 3
}

resource "alicloud_logtail_config" "config_test" {
  project     = alicloud_log_store.logstore_example.project_name
  logstore    = alicloud_log_store.logstore_example.logstore_name
  name        = "config-sample"
  input_type  = "file"
  output_type = "LogService"
  input_detail = jsonencode(
  	{
		"logPath": "/logPath",
		"filePattern": "access.log",
		"logType": "json_log",
		"topicFormat": "default",
		"discardUnmatch": false,
		"enableRawLog": true,
		"fileEncoding": "gbk",
		"maxDepth": 10
	}
  )
}
resource "alicloud_log_machine_group" "machine_group_example" {
  project     = alicloud_log_store.logstore_example.project_name
  name          = "terraform-example"
  identify_type = "ip"
  topic         = "terraform"
  identify_list = ["10.0.0.1", "10.0.0.2"]
}

resource "alicloud_logtail_attachment" "example" {
  project     = alicloud_log_store.logstore_example.project_name
  logtail_config_name = alicloud_logtail_config.config_test.name
  machine_group_name  = alicloud_log_machine_group.machine_group_example.name
}

配置效果

創(chuàng)建的Project、Logstore和Logtail采集配置

image

Logtail采集配置

image

機器組配置

image

相關(guān)操作

更新Terraform目錄

terraform init --upgrade

導(dǎo)入已有配置

如果您在SLS已創(chuàng)建Project、Logstore等資源,您可以在本地配置好terraform.tf文件后使用terraform import命令導(dǎo)入。

terraform import alicloud_log_project.project_example terraform-example
terraform import alicloud_log_store.logstore_example terraform-example:logstore_example
terraform import alicloud_logtail_config.config_test terraform-example:logstore_example:config-sample
terraform import alicloud_log_machine_group.machine_group_example terraform-example:terraform-example
terraform import alicloud_logtail_attachment.example terraform-example:config-sample:terraform-example

執(zhí)行完畢后,您可以查看terraform工作目錄下的terraform.tfstate文件內(nèi)容。terraform.tfstate文件內(nèi)容即為導(dǎo)入的采集配置。

重要

如果需要將導(dǎo)入的采集配置遷移到terraform.tf文件中,需要手動拷貝,并對格式做適當調(diào)整,滿足terraform.tf文件的格式要求。

如果您已經(jīng)在當前的terraform工作目錄執(zhí)行過terraform apply或者terraform import命令,則此時再次執(zhí)行terraform import命令會失敗。您需要刪除當前目錄下的terraform.tfstate文件后再重新執(zhí)行terraform import命令。

查看當前配置。

terraform show

查看當前terraform.tf文件與已生效的采集配置的差異。

terraform plan

常見問題

為什么出現(xiàn)預(yù)期外的Diff情況?

如果在執(zhí)行terraform planterraform apply時,出現(xiàn)預(yù)期外的diff情況,例如:discardUnmatch在未修改的情況下也出現(xiàn)了diff情況。

請您升級registry.terraform.io/hashicorp/alicloud到1.219.0及以上版本,該問題會在您升級到最新版本且成功terraform apply一次該配置后解決。

相關(guān)文檔