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.
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.
Alguns recursos deste tutorial geram cobranças. Libere-os quando não forem mais necessários para evitar cobranças inesperadas.
Recursos
alicloud_log_project: um projeto.
alicloud_log_machine_group: um grupo de máquinas.
alicloud_log_store: um Logstore.
alicloud_logtail_config: uma configuração do Logtail.
alicloud_logtail_attachment: uma associação do Logtail.
Etapa 1: Criar um projeto
-
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" } -
Execute o comando a seguir para inicializar o ambiente de execução do Terraform.
terraform initA 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. -
Execute o comando a seguir para aplicar a configuração.
terraform applyQuando solicitado, insira
yese 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. -
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
-
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 } -
Crie um plano de execução para visualizar as alterações.
terraform plan -
Execute o comando a seguir para aplicar a configuração.
terraform applyQuando solicitado, insira
yese pressione Enter. A saída a seguir indica que a execução foi bem-sucedida.Apply complete! Resources: 2 added, 0 changed, 0 destroyed. -
Verifique o resultado.
Terraform show
No diretório de trabalho, execute o comando a seguir e visualize os detalhes do 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
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.
No painel de navegação à esquerda, escolha e visualize o grupo de máquinas.
Etapa 3: Configure a coleta do Logtail
-
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 } -
Crie um plano de execução para visualizar as alterações.
terraform plan -
Execute o comando a seguir para aplicar a configuração.
terraform applyQuando solicitado, insira
yese pressione Enter. A saída a seguir indica que a execução foi bem-sucedida.Apply complete! Resources: 2 added, 0 changed, 0 destroyed. -
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
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.
-
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
Execute o código de exemplo deste tutorial com um único clique. execute agora.
Código de exemplo
Referências
Para mais informações sobre o Terraform, consulte What is Alibaba Cloud Terraform?.