Todos los productos
Search
Centro de documentos

Simple Log Service:,

Última actualización: Sep 19, 2026

Utilice Terraform para crear un proyecto de Simple Log Service, un grupo de máquinas, un logstore y una configuración de Logtail como código.

Nota

Puede ejecutar el código de ejemplo de este tutorial con un solo clic. Ejecutar ahora.

Requisitos previos

  • Simple Log Service (SLS) está activado. Para obtener más información, consulte Storage resource hierarchy.

  • Por motivos de seguridad, utilice un usuario de RAM con los permisos mínimos obligatorios. Para obtener más información, consulte Create a RAM user y Manage RAM user permissions. La siguiente política otorga los permisos necesarios:

    {
      "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 un entorno de Terraform. Puede usar uno de los siguientes métodos para ejecutar Terraform.

    • Usar Terraform en Terraform Explorer: Alibaba Cloud proporciona un entorno en línea para ejecutar Terraform. No necesita instalar nada; basta con iniciar sesión para probarlo. Este método es adecuado cuando desea probar y depurar Terraform de forma rápida, cómoda y sin costo.

    • Cloud Shell: Cloud Shell de Alibaba Cloud incluye los componentes de Terraform preinstalados y las credenciales de identidad configuradas. Los comandos de Terraform se ejecutan directamente desde Cloud Shell. Más indicado para escenarios donde requiere acceder a Terraform rápidamente y con bajo costo.

    • Instalar y configurar Terraform en su computadora local: Recomendado cuando la conectividad de red es deficiente o si necesita un entorno de desarrollo personalizado.

Nota

Algunos recursos de este tutorial generan cargos. Libérelos cuando ya no los necesite para evitar cobros inesperados.

Recursos

Paso 1: Crear un proyecto

  1. Cree un directorio de trabajo y, dentro de él, un archivo de configuración llamado main.tf. Copie el siguiente código en 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. Ejecute el siguiente comando para inicializar el entorno de ejecución de Terraform.

    terraform init

    La siguiente salida indica que la inicialización se completó correctamente.

    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. Ejecute el siguiente comando para aplicar la configuración.

    terraform apply

    Cuando el sistema lo solicite, introduzca yes y presione Enter. La siguiente salida indica que la ejecución se completó correctamente.

    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. Compruebe el resultado.

    Terraform show

    En el directorio de trabajo, ejecute el siguiente comando para consultar los detalles del 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

    Inicie sesión en la consola de Simple Log Service para consultar el proyecto.

Paso 2: Crear un grupo de máquinas y un logstore

  1. Agregue el siguiente código al archivo 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. Genere un plan de ejecución para previsualizar los cambios.

    terraform plan
  3. Ejecute el siguiente comando para aplicar la configuración.

    terraform apply

    Cuando el sistema lo solicite, introduzca yes y presione Enter. La siguiente salida indica que la ejecución se completó correctamente.

    Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
  4. Compruebe el resultado.

    Terraform show

    En el directorio de trabajo, ejecute el siguiente comando para consultar los detalles del 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. Inicie sesión en la consola de Simple Log Service. En la sección Projects, haga clic en el nombre del proyecto. En el panel de navegación izquierdo, elija Log Storage para consultar el logstore.

    2. En el panel de navegación izquierdo, elija Resources > Machine Groups para consultar el grupo de máquinas.

Paso 3: Configurar la recopilación de Logtail

  1. Agregue el siguiente código al archivo 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. Genere un plan de ejecución para previsualizar los cambios.

    terraform plan
  3. Ejecute el siguiente comando para aplicar la configuración.

    terraform apply

    Cuando el sistema lo solicite, introduzca yes y presione Enter. La siguiente salida indica que la ejecución se completó correctamente.

    Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
  4. Compruebe el resultado.

    Terraform show

    En el directorio de trabajo, ejecute el siguiente comando para consultar los detalles del 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. Inicie sesión en la consola de Simple Log Service. En la sección Projects, haga clic en el nombre del proyecto. En el panel de navegación izquierdo, elija Log Storage > Logtail Configurations para consultar la configuración de Logtail.

    2. Haga clic en el nombre de la Logtail configuration y vaya a la pestaña Machine Group Management para consultar el grupo de máquinas asociado.

      En el panel Applied Machine Groups, busque el grupo de máquinas cuyo nombre comience con terraform-example-. Esto confirma que el grupo de máquinas está asociado a la configuración de Logtail.

Liberar recursos

Ejecute el siguiente comando para liberar los recursos que ya no necesite. Para obtener más información sobre el comando terraform destroy, consulte Common commands.

terraform destroy

Ejemplo completo

Nota

Puede ejecutar el código de ejemplo de este tutorial con un solo clic. Ejecutar ahora.

Código de ejemplo

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
}

Referencias