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.
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.
Algunos recursos de este tutorial generan cargos. Libérelos cuando ya no los necesite para evitar cobros inesperados.
Recursos
alicloud_log_project: un proyecto.
alicloud_log_machine_group: un grupo de máquinas.
alicloud_log_store: un logstore.
alicloud_logtail_config: una configuración de Logtail.
alicloud_logtail_attachment: un archivo adjunto de Logtail.
Paso 1: Crear un proyecto
-
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" } -
Ejecute el siguiente comando para inicializar el entorno de ejecución de Terraform.
terraform initLa 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. -
Ejecute el siguiente comando para aplicar la configuración.
terraform applyCuando el sistema lo solicite, introduzca
yesy 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. -
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
-
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 } -
Genere un plan de ejecución para previsualizar los cambios.
terraform plan -
Ejecute el siguiente comando para aplicar la configuración.
terraform applyCuando el sistema lo solicite, introduzca
yesy presione Enter. La siguiente salida indica que la ejecución se completó correctamente.Apply complete! Resources: 2 added, 0 changed, 0 destroyed. -
Compruebe el resultado.
Terraform show
En el directorio de trabajo, ejecute el siguiente comando para consultar los detalles del recurso:
terraform showshell@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
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.
En el panel de navegación izquierdo, elija para consultar el grupo de máquinas.
Paso 3: Configurar la recopilación de Logtail
-
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 } -
Genere un plan de ejecución para previsualizar los cambios.
terraform plan -
Ejecute el siguiente comando para aplicar la configuración.
terraform applyCuando el sistema lo solicite, introduzca
yesy presione Enter. La siguiente salida indica que la ejecución se completó correctamente.Apply complete! Resources: 2 added, 0 changed, 0 destroyed. -
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
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.
-
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
Puede ejecutar el código de ejemplo de este tutorial con un solo clic. Ejecutar ahora.
Código de ejemplo
Referencias
Para obtener más información sobre Terraform, consulte What is Alibaba Cloud Terraform?.