All Products
Search
Document Center

Simple Log Service:Gunakan Terraform untuk membuat konfigurasi Logtail

Last Updated:Oct 23, 2025

Terraform adalah alat open source yang memungkinkan Anda melihat pratinjau, mengonfigurasi, dan mengelola infrastruktur cloud serta sumber daya secara aman dan efisien. Topik ini menjelaskan cara menggunakan Terraform untuk membuat konfigurasi Logtail.

Catatan

Anda dapat menjalankan kode contoh dalam topik ini hanya dengan beberapa klik. Untuk informasi lebih lanjut, kunjungi Terraform Explorer.

Prasyarat

  • Simple Log Service (SLS) telah diaktifkan. Untuk informasi lebih lanjut, lihat Gambaran Manajemen Sumber Daya.

  • Disarankan untuk menggunakan Pengguna Resource Access Management (RAM) dengan izin minimum yang diperlukan untuk melakukan operasi dalam topik ini. Ini mengurangi risiko kebocoran Pasangan Kunci Akses Akun Alibaba Cloud Anda. Untuk informasi tentang cara menyambungkan kebijakan minimum yang diperlukan kepada Pengguna RAM, lihat Buat Pengguna RAM dan Berikan Izin kepada Pengguna RAM. Kebijakan berikut disediakan untuk topik ini:

    {
      "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": "*"
        }
      ]
    }
  • Lingkungan runtime untuk Terraform dipersiapkan dengan menggunakan salah satu metode berikut:

    • Explorer: Alibaba Cloud menyediakan lingkungan runtime online untuk Terraform. Anda dapat masuk ke lingkungan tersebut dan menggunakan Terraform tanpa perlu menginstalnya. Cocok untuk skenario di mana Anda perlu menggunakan dan men-debug Terraform secara hemat biaya, efisien, dan nyaman.

    • Cloud Shell: Cloud Shell sudah terinstal dengan Terraform dan dikonfigurasi dengan kredensial identitas Anda. Anda dapat menjalankan perintah Terraform di Cloud Shell. Cocok untuk skenario di mana Anda perlu menggunakan dan mengakses Terraform secara hemat biaya, efisien, dan nyaman.

    • Instal dan Konfigurasikan Terraform pada Mesin Lokal Anda: Cocok untuk skenario di mana koneksi jaringan tidak stabil atau lingkungan pengembangan kustom diperlukan.

Catatan

Anda akan dikenakan biaya untuk sumber daya tertentu. Jika Anda tidak lagi memerlukan sumber daya tersebut, segera lepaskan atau hentikan langganan dari sumber daya tersebut.

Sumber daya yang diperlukan

Langkah 1: Buat proyek

  1. Buat direktori kerja. Kemudian, buat file konfigurasi bernama main.tf di direktori tersebut. Salin kode berikut ke file konfigurasi main.tf.

    variable "region" {
      default = "cn-hangzhou"
    }
    
    variable "identify_list" {
      type        = list(string)
      description = "Alamat IP mesin yang termasuk dalam kelompok mesin"
      default     = ["10.0.0.1", "10.0.0.2"]
    }
    
    provider "alicloud" {
      region = var.region
    }
    
    resource "random_integer" "default" {
      min = 10000
      max = 99999
    }
    
    # Proyek.
    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

    Jika informasi berikut dikembalikan, Terraform telah diinisialisasi:

    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 rencana eksekusi yang dihasilkan:

    terraform apply

    Selama proses, masukkan yes saat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai dijalankan. Jika informasi berikut dikembalikan, rencana eksekusi telah diterapkan.

    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.

    Lihat hasilnya dengan menjalankan perintah terraform show

    Jalankan perintah berikut di direktori kerja untuk menanyakan detail proyek yang dibuat menggunakan Terraform:

    terraform show

    image

    Lihat hasilnya di Konsol SLS

    Masuk ke Konsol SLS dan lihat proyek yang telah dibuat.

    image

Langkah 2: Buat kelompok mesin dan Logstore

  1. Tambahkan kode berikut ke file konfigurasi main.tf:

    # Kelompok mesin.
    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
    }
    
    # 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 dan pratinjau perubahan.

    terraform plan
  3. Jalankan perintah berikut untuk menerapkan rencana eksekusi:

    terraform apply

    Selama proses, masukkan yes saat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai. Jika informasi berikut dikembalikan, rencana eksekusi telah diterapkan.

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

    Lihat hasilnya dengan menjalankan perintah terraform show

    Jalankan perintah berikut di direktori kerja untuk menanyakan detail kelompok mesin dan Logstore yang dibuat menggunakan Terraform:

    terraform show

    image

    Lihat hasilnya di Konsol SLS

    1. Masuk ke Konsol SLS. Di bagian Projects, temukan proyek yang dibuat di Langkah 1 dan klik nama proyek untuk masuk ke halaman detail proyek. Di panel navigasi di sebelah kiri, klik ikon Log Storage. Dalam daftar Logstores, lihat Logstore yang telah dibuat.

      image

    2. Di panel navigasi di sebelah kiri, arahkan pointer ke ikon Resources dan pilih Machine Groups. Dalam daftar Kelompok Mesin, lihat kelompok mesin yang telah dibuat.

      image

Langkah 3: Buat konfigurasi Logtail

  1. Tambahkan kode berikut ke file konfigurasi main.tf:

    # 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
    	}
      )
    }
    
    # Terapkan konfigurasi Logtail ke kelompok mesin.
    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 dan pratinjau perubahan.

    terraform plan
  3. Jalankan perintah berikut untuk menerapkan rencana eksekusi:

    terraform apply

    Selama proses, masukkan yes saat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai dijalankan. Jika informasi berikut dikembalikan, rencana eksekusi telah diterapkan.

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

    Lihat hasilnya dengan menjalankan perintah terraform show

    Jalankan perintah berikut di direktori kerja untuk menanyakan detail konfigurasi Logtail yang dibuat menggunakan Terraform:

    terraform show

    image

    Lihat hasilnya di Konsol SLS

    1. Masuk ke Konsol SLS. Di bagian Projects, temukan proyek yang dibuat di Langkah 1 dan klik nama proyek untuk masuk ke halaman detail proyek. Di panel navigasi di sebelah kiri, klik ikon Log Storage. Dalam daftar Logstores, temukan Logstore yang dibuat di Langkah 2 dan klik Logstore tersebut. Lalu, pilih Pengumpulan Data > Logtail Configuration untuk melihat konfigurasi Logtail dari Logstore.

      image

    2. Di halaman Logtail Configuration, klik nama konfigurasi Logtail. Lalu, klik tab Manage Machine Groups. Di tab ini, lihat kelompok mesin yang diterapkan dengan konfigurasi Logtail.

      image

Lepaskan sumber daya

Jika Anda tidak lagi memerlukan sumber daya yang dibuat atau dikelola menggunakan Terraform, jalankan perintah berikut untuk melepaskan sumber daya: Untuk informasi lebih lanjut tentang perintah terraform destroy, lihat Perintah Umum.

terraform destroy

Contoh

Catatan

Anda dapat menjalankan kode contoh dalam topik ini hanya dengan beberapa klik.

Kode contoh

variable "region" {
  default = "cn-hangzhou"
}

variable "identify_list" {
  type        = list(string)
  description = "Alamat IP mesin yang termasuk dalam kelompok mesin"
  default     = ["10.0.0.1", "10.0.0.2"]
}

provider "alicloud" {
  region = var.region
}

resource "random_integer" "default" {
  min = 10000
  max = 99999
}

# Proyek.
resource "alicloud_log_project" "example" {
  project_name = "project-name-${random_integer.default.result}"
  description  = "tf actiontrail example"
}

# Kelompok mesin.
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
}

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

# 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
	}
  )
}

# Terapkan konfigurasi Logtail ke kelompok mesin.
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 melihat lebih banyak contoh, kunjungi folder Log_Service(SLS) di GitHub.

Referensi