Todos os produtos
Search
Central de documentação

Simple Log Service:,

Última atualização: Sep 19, 2026

Use o Terraform para criar um projeto do Simple Log Service, um grupo de máquinas, um Logstore e uma configuração do Logtail como código.

Nota

Execute o código de exemplo deste tutorial com um único clique. execute agora.

Pré-requisitos

  • O Simple Log Service (SLS) está ativado. Para mais informações, consulte Storage resource hierarchy.

  • Por questões de segurança, use um usuário RAM com as permissões mínimas necessárias. Para mais informações, consulte crie um usuário RAM e gerencie permissões de usuário RAM. A política a seguir concede as permissões necessárias:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "log:GetProject",
            "log:ListProject",
            "log:CreateProject",
            "log:DeleteProject",
            "log:UpdateProject",
            "log:GetAppliedMachineGroups",
            "log:GetMachineGroup",
            "log:ListMachineGroup",
            "log:CreateMachineGroup",
            "log:GetLogStore",
            "log:GetLogStoreLogs",
            "log:GetLogStoreMeteringMode",
            "log:ListLogStores",
            "log:CreateLogStore",
            "log:PostLogStoreLogs",
            "log:UpdateLogStore",
            "log:GetLogtailPipelineConfig",
            "log:UpdateLogtailPipelineConfig",
            "log:ListTagResources",
            "log:ListShards",
            "log:ListSavedSearch",
            "log:GetIndex",
            "log:ListDashboard",
            "log:ListConfig",
            "log:CreateConfig",
            "log:GetConfig",
            "log:ApplyConfigToGroup",
            "log:DeleteConfig",
            "log:DeleteMachineGroup",
            "log:GetProjectPolicy",
            "log:DeleteLogStore"
          ],
          "Resource": "*"
        }
      ]
    }
  • Prepare um ambiente do Terraform. Use um dos seguintes métodos para executar o Terraform.

    • Use o Terraform no Terraform Explorer: A Alibaba Cloud oferece um ambiente online para executar o Terraform. Não é necessário instalar o Terraform. Basta fazer login para usar e testar o Terraform online. Este método é ideal para testar e depurar o Terraform de forma rápida, prática e sem custos.

    • cloud Shell: O cloud Shell da Alibaba Cloud já possui os componentes do Terraform pré-instalados e as credenciais de identidade configuradas. Execute comandos do Terraform diretamente no cloud Shell. Este método é recomendado para acessar e usar o Terraform de forma rápida e prática, com baixo custo.

    • Instale e configure o Terraform na sua máquina local: Este método é mais indicado para cenários com conectividade de rede instável ou quando é necessário um ambiente de desenvolvimento personalizado.

Nota

Alguns recursos deste tutorial geram cobranças. Libere-os quando não forem mais necessários para evitar cobranças inesperadas.

Recursos

Etapa 1: Criar um projeto

  1. Crie um diretório de trabalho e, dentro dele, um arquivo de configuração chamado main.tf. Copie o código a seguir para o main.tf.

    variable "region" {
      default = "cn-hangzhou"
    }
    variable "identify_list" {
      type        = list(string)
      description = "The IP addresses of machines in the machine group"
      default     = ["10.0.0.1", "10.0.0.2"]
    }
    provider "alicloud" {
      region = var.region
    }
    resource "random_integer" "default" {
      min = 10000
      max = 99999
    }
    # A project
    resource "alicloud_log_project" "example" {
      project_name = "project-name-${random_integer.default.result}"
      description  = "tf actiontrail example"
    }
  2. Execute o comando a seguir para inicializar o ambiente de execução do Terraform.

    terraform init

    A saída a seguir indica que a inicialização foi bem-sucedida.

    Terraform has been successfully initialized!
    You may now begin working with Terraform. Try running "terraform plan" to see
    any changes that are required for your infrastructure. All Terraform commands
    should now work.
    If you ever set or change modules or backend configuration for Terraform,
    rerun this command to reinitialize your working directory. If you forget, other
    commands will detect it and remind you to do so if necessary.
  3. Execute o comando a seguir para aplicar a configuração.

    terraform apply

    Quando solicitado, insira yes e pressione Enter. A saída a seguir indica que a execução foi bem-sucedida.

    You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure.
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
      Enter a value: yes
    Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
  4. Verifique o resultado.

    Terraform show

    No diretório de trabalho, execute o comando a seguir e visualize os detalhes do recurso:

    terraform show
    # alicloud_log_project.example:
    resource "alicloud_log_project" "example" {
        create_time       = "2024-11-25 14:23:17"
        description       = "tf actiontrail example"
        id                = "project-name-xxx"
        name              = "project-name-xxx"
        project_name      = "project-name-xxx"
        resource_group_id = "rg-xxx"
        status            = "Normal"
    }
    # random_integer.default:
    resource "random_integer" "default" {
        id     = "xxx"
        max    = 99999
        min    = 10000
        result = xxx
    }

    Console

    Faça login no console do Simple Log Service e visualize o projeto.

Etapa 2: Criar um grupo de máquinas e um Logstore

  1. Adicione o código a seguir ao arquivo main.tf.

    # A machine group
    resource "alicloud_log_machine_group" "example" {
      project     = alicloud_log_project.example.project_name
      name          = "terraform-example-${random_integer.default.result}"
      identify_type = "ip"
      topic         = "terraform"
      identify_list = var.identify_list
    }
    # A Logstore
    resource "alicloud_log_store" "example" {
      project_name = alicloud_log_project.example.project_name
      logstore_name = "logstore_example_${random_integer.default.result}"
      retention_period = 3
    }
  2. Crie um plano de execução para visualizar as alterações.

    terraform plan
  3. Execute o comando a seguir para aplicar a configuração.

    terraform apply

    Quando solicitado, insira yes e pressione Enter. A saída a seguir indica que a execução foi bem-sucedida.

    Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
  4. Verifique o resultado.

    Terraform show

    No diretório de trabalho, execute o comando a seguir e visualize os detalhes do recurso:

    terraform show
    shell@Alicloud:~/log/1log$ terraform show
    # alicloud_log_machine_group.example:
    resource "alicloud_log_machine_group" "example" {
        id             = "project-name-xxx:terraform-example-xxx"
        identify_list  = [
            "10.0.0.1",
            "10.0.0.2",
        ]
        identify_type  = "ip"
        name           = "terraform-example-xxx"
        project        = "project-name-xxx"
        topic          = "terraform"
    }
    # alicloud_log_project.example:
    resource "alicloud_log_project" "example" {
        create_time       = "2024-11-25 14:23:17"
        description       = "tf actiontrail example"
        id                = "project-name-xxx"
        name              = "project-name-xxx"
        project_name      = "project-name-xxx"
        resource_group_id = "rg-xxx"
        status            = "Normal"
        tags              = {}
    }
    # alicloud_log_store.example:
    resource "alicloud_log_store" "example" {
        append_meta          = true
        auto_split           = false
        create_time          = 1732516271
        enable_web_tracking  = false
        id                   = "project-name-xxx:logstore_example_xxx"
        logstore_name        = "logstore_example_xxx"
        max_split_shard_count = 0
        metering_mode        = "ChargeByDataIngest"
        mode                 = "standard"
        name                 = "logstore_example_xxx"
        project              = "project-name-xxx"
        project_name         = "project-name-xxx"
        retention_period     = 3
        shard_count          = 2
    }

    Console

    1. Faça login no console do Simple Log Service. Na seção Projects, clique em nome do projeto. No painel de navegação à esquerda, escolha Log Storage e visualize o Logstore.

    2. No painel de navegação à esquerda, escolha Resources > Machine Groups e visualize o grupo de máquinas.

Etapa 3: Configure a coleta do Logtail

  1. Adicione o código a seguir ao arquivo main.tf.

    # A Logtail configuration
    resource "alicloud_logtail_config" "example" {
      project     = alicloud_log_project.example.project_name
      logstore    = alicloud_log_store.example.logstore_name
      name        = "config-sample-${random_integer.default.result}"
      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
    	}
      )
    }
    # A Logtail attachment
    resource "alicloud_logtail_attachment" "example" {
      project     = alicloud_log_project.example.project_name
      logtail_config_name = alicloud_logtail_config.example.name
      machine_group_name  = alicloud_log_machine_group.example.name
    }
  2. Crie um plano de execução para visualizar as alterações.

    terraform plan
  3. Execute o comando a seguir para aplicar a configuração.

    terraform apply

    Quando solicitado, insira yes e pressione Enter. A saída a seguir indica que a execução foi bem-sucedida.

    Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
  4. Verifique o resultado.

    Terraform show

    No diretório de trabalho, execute o comando a seguir e visualize os detalhes do recurso:

    terraform show
    # alicloud_logtail_attachment.example:
    resource "alicloud_logtail_attachment" "example" {
        id                 = "project-name-xxx:config-sample-xxx:terraform-example-xxx"
        logtail_config_name = "config-sample-xxx"
        machine_group_name = "terraform-example-xxx"
        project            = "project-name-xxx"
    }
    # alicloud_logtail_config.example:
    resource "alicloud_logtail_config" "example" {
        id             = "project-name-xxx:logstore_example_xxx:config-sample-xxx"
        input_detail   = jsonencode(
            {
                discardUnmatch = false
                enableRawLog   = true
                fileEncoding   = "gbk"
                filePattern    = "access.log"
                logPath        = "/logPath"
                logType        = "json_log"
                maxDepth       = 10
                topicFormat    = "default"
            }
        )
        input_type       = "file"
        last_modify_time = "1732519340"
        logstore         = "logstore_example_xxx"
        name             = "config-sample-xxx"
        output_type      = "LogService"
        project          = "project-name-xxx"
    }

    Console

    1. Faça login no console do Simple Log Service. Na seção Projects, clique em nome do projeto. No painel de navegação à esquerda, escolha Log Storage > Logtail Configurations e visualize a configuração do Logtail.

    2. Clique em nome da Logtail configuration e acesse a aba Machine Group Management e visualize o grupo de máquinas associado.

      No painel Applied Machine Groups, encontre o grupo de máquinas com o nome prefixado por terraform-example-. Isso confirma que o grupo de máquinas está associado à configuração do Logtail.

Liberar recursos

Execute o comando a seguir para liberar recursos não mais necessários. Para mais informações sobre o comando terraform destroy, consulte Common commands.

terraform destroy

Exemplo completo

Nota

Execute o código de exemplo deste tutorial com um único clique. execute agora.

Código de exemplo

variable "region" {
  default = "cn-hangzhou"
}
variable "identify_list" {
  type        = list(string)
  description = "The IP addresses of machines in the machine group"
  default     = ["10.0.0.1", "10.0.0.2"]
}
provider "alicloud" {
  region = var.region
}
resource "random_integer" "default" {
  min = 10000
  max = 99999
}
# A project
resource "alicloud_log_project" "example" {
  project_name = "project-name-${random_integer.default.result}"
  description  = "tf actiontrail example"
}
# A machine group
resource "alicloud_log_machine_group" "example" {
  project     = alicloud_log_project.example.project_name
  name          = "terraform-example-${random_integer.default.result}"
  identify_type = "ip"
  topic         = "terraform"
  identify_list = var.identify_list
}
# A Logstore
resource "alicloud_log_store" "example" {
  project_name = alicloud_log_project.example.project_name
  logstore_name = "logstore_example_${random_integer.default.result}"
  retention_period = 3
}
# A Logtail configuration
resource "alicloud_logtail_config" "example" {
  project     = alicloud_log_project.example.project_name
  logstore    = alicloud_log_store.example.logstore_name
  name        = "config-sample-${random_integer.default.result}"
  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
	}
  )
}
# A Logtail attachment
resource "alicloud_logtail_attachment" "example" {
  project     = alicloud_log_project.example.project_name
  logtail_config_name = alicloud_logtail_config.example.name
  machine_group_name  = alicloud_log_machine_group.example.name
}

Referências