All Products
Search
Document Center

Simple Log Service:Konfigurasikan pengumpulan Logtail dengan Terraform

Last Updated:Jun 18, 2026

Terraform adalah alat open-source untuk menyediakan dan mengelola infrastruktur cloud. Anda dapat menggunakan Terraform untuk mengonfigurasi pengumpulan Logtail pada Simple Log Service.

Catatan

Anda dapat menjalankan kode contoh dalam tutorial ini dengan satu klik. Jalankan sekarang.

Prasyarat

  • Simple Log Service (SLS) telah diaktifkan. Untuk informasi selengkapnya, lihat Hierarki resource penyimpanan.

  • Untuk keamanan, gunakan RAM user dengan izin minimum yang diperlukan. Untuk informasi selengkapnya, lihat Buat RAM user dan Kelola izin RAM user. Kebijakan berikut memberikan izin yang diperlukan:

    {
      "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": "*"
        }
      ]
    }
  • Persiapkan lingkungan Terraform. Anda dapat menggunakan salah satu metode berikut untuk menjalankan Terraform.

    • Gunakan Terraform di Terraform Explorer: Alibaba Cloud menyediakan lingkungan online untuk menjalankan Terraform. Anda tidak perlu menginstal Terraform. Anda dapat login untuk menggunakan dan mencoba Terraform secara online. Metode ini cocok untuk skenario ketika Anda ingin mencoba dan men-debug Terraform dengan cepat dan nyaman tanpa biaya.

    • Cloud Shell: Alibaba Cloud Cloud Shell telah memiliki komponen Terraform yang pra-instal dan kredensial identitas yang dikonfigurasi. Anda dapat langsung menjalankan perintah Terraform di Cloud Shell. Metode ini cocok untuk skenario ketika Anda ingin mengakses dan menggunakan Terraform dengan cepat dan nyaman dengan biaya rendah.

    • Instal dan konfigurasi Terraform di mesin lokal Anda: Metode ini cocok untuk skenario dengan konektivitas jaringan yang buruk atau ketika Anda memerlukan lingkungan pengembangan kustom.

Catatan

Beberapa resource dalam tutorial ini dikenai biaya. Hapus resource tersebut saat Anda tidak lagi membutuhkannya untuk menghindari tagihan tak terduga.

Sumber Daya

Langkah 1: Buat project

  1. Buat direktori kerja dan buat file konfigurasi bernama main.tf di dalamnya. Salin kode berikut ke dalam main.tf.

    variable "region" {
      default = "cn-hangzhou"
    }
    variable "identify_list" {
      type        = list(string)
      description = "Alamat IP mesin dalam machine group"
      default     = ["10.0.0.1", "10.0.0.2"]
    }
    provider "alicloud" {
      region = var.region
    }
    resource "random_integer" "default" {
      min = 10000
      max = 99999
    }
    # Sebuah project
    resource "alicloud_log_project" "example" {
      project_name = "project-name-${random_integer.default.result}"
      description  = "tf actiontrail example"
    }
  2. Jalankan perintah berikut untuk menginisialisasi lingkungan runtime Terraform.

    terraform init

    Output berikut menunjukkan inisialisasi berhasil.

    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. Jalankan perintah berikut untuk menerapkan konfigurasi.

    terraform apply

    Saat diminta, masukkan yes dan tekan Enter. Output berikut menunjukkan eksekusi berhasil.

    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. Verifikasi hasilnya.

    Terraform show

    Di direktori kerja, jalankan perintah berikut untuk melihat detail resource:

    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
    }

    Konsol

    Login ke Konsol Simple Log Service untuk melihat project tersebut.

Langkah 2: Buat machine group dan Logstore

  1. Tambahkan kode berikut ke file main.tf.

    # Sebuah 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
    }
    # Sebuah 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. Buat rencana eksekusi untuk melihat pratinjau perubahan.

    terraform plan
  3. Jalankan perintah berikut untuk menerapkan konfigurasi.

    terraform apply

    Saat diminta, masukkan yes dan tekan Enter. Output berikut menunjukkan eksekusi berhasil.

    Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
  4. Verifikasi hasilnya.

    Terraform show

    Di direktori kerja, jalankan perintah berikut untuk melihat detail resource:

    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
    }

    Konsol

    1. Login ke Konsol Simple Log Service. Di bagian Projects, klik nama project tersebut. Di panel navigasi kiri, pilih Log Storage untuk melihat Logstore.

    2. Di panel navigasi kiri, pilih Resources > Machine Groups untuk melihat machine group.

Langkah 3: Konfigurasikan pengumpulan Logtail

  1. Tambahkan kode berikut ke file main.tf.

    # Sebuah konfigurasi Logtail
    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
    	}
      )
    }
    # Sebuah attachment Logtail
    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. Buat rencana eksekusi untuk melihat pratinjau perubahan.

    terraform plan
  3. Jalankan perintah berikut untuk menerapkan konfigurasi.

    terraform apply

    Saat diminta, masukkan yes dan tekan Enter. Output berikut menunjukkan eksekusi berhasil.

    Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
  4. Verifikasi hasilnya.

    Terraform show

    Di direktori kerja, jalankan perintah berikut untuk melihat detail resource:

    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"
    }

    Konsol

    1. Login ke Konsol Simple Log Service. Di bagian Projects, klik nama project tersebut. Di panel navigasi kiri, pilih Log Storage > Logtail Configurations untuk melihat konfigurasi Logtail.

    2. Klik nama Logtail configuration dan buka tab Machine Group Management untuk melihat machine group yang terkait.

      Di panel Applied Machine Groups, temukan machine group dengan nama yang diawali dengan terraform-example-. Hal ini mengonfirmasi bahwa machine group tersebut telah dikaitkan dengan konfigurasi Logtail.

Release resource

Saat Anda tidak lagi memerlukan resource yang dibuat dalam tutorial ini, jalankan perintah berikut untuk menghapusnya. Untuk informasi selengkapnya tentang perintah terraform destroy, lihat Perintah umum.

terraform destroy

Contoh lengkap

Catatan

Anda dapat menjalankan kode contoh dalam tutorial ini dengan satu klik. Jalankan sekarang.

Kode contoh

variable "region" {
  default = "cn-hangzhou"
}
variable "identify_list" {
  type        = list(string)
  description = "Alamat IP mesin dalam machine group"
  default     = ["10.0.0.1", "10.0.0.2"]
}
provider "alicloud" {
  region = var.region
}
resource "random_integer" "default" {
  min = 10000
  max = 99999
}
# Sebuah project
resource "alicloud_log_project" "example" {
  project_name = "project-name-${random_integer.default.result}"
  description  = "tf actiontrail example"
}
# Sebuah 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
}
# Sebuah 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
}
# Sebuah konfigurasi Logtail
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
	}
  )
}
# Sebuah attachment Logtail
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
}

Untuk contoh lainnya, buka folder produk yang diinginkan di Contoh lengkap lainnya.

Referensi