Terraform adalah alat open-source untuk menyediakan dan mengelola infrastruktur cloud. Anda dapat menggunakan Terraform untuk mengonfigurasi pengumpulan Logtail pada Simple Log Service.
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.
Beberapa resource dalam tutorial ini dikenai biaya. Hapus resource tersebut saat Anda tidak lagi membutuhkannya untuk menghindari tagihan tak terduga.
Sumber Daya
-
alicloud_log_project: sebuah project.
-
alicloud_log_machine_group: sebuah machine group.
-
alicloud_log_store: sebuah Logstore.
-
alicloud_logtail_config: sebuah konfigurasi Logtail.
-
alicloud_logtail_attachment: sebuah attachment Logtail.
Langkah 1: Buat project
-
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" } -
Jalankan perintah berikut untuk menginisialisasi lingkungan runtime Terraform.
terraform initOutput 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. -
Jalankan perintah berikut untuk menerapkan konfigurasi.
terraform applySaat diminta, masukkan
yesdan 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. -
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
-
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 } -
Buat rencana eksekusi untuk melihat pratinjau perubahan.
terraform plan -
Jalankan perintah berikut untuk menerapkan konfigurasi.
terraform applySaat diminta, masukkan
yesdan tekan Enter. Output berikut menunjukkan eksekusi berhasil.Apply complete! Resources: 2 added, 0 changed, 0 destroyed. -
Verifikasi hasilnya.
Terraform show
Di direktori kerja, jalankan perintah berikut untuk melihat detail resource:
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 }Konsol
-
Login ke Konsol Simple Log Service. Di bagian Projects, klik nama project tersebut. Di panel navigasi kiri, pilih Log Storage untuk melihat Logstore.
-
Di panel navigasi kiri, pilih untuk melihat machine group.
-
Langkah 3: Konfigurasikan pengumpulan Logtail
-
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 } -
Buat rencana eksekusi untuk melihat pratinjau perubahan.
terraform plan -
Jalankan perintah berikut untuk menerapkan konfigurasi.
terraform applySaat diminta, masukkan
yesdan tekan Enter. Output berikut menunjukkan eksekusi berhasil.Apply complete! Resources: 2 added, 0 changed, 0 destroyed. -
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
-
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.
-
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
Anda dapat menjalankan kode contoh dalam tutorial ini dengan satu klik. Jalankan sekarang.
Kode contoh
Untuk contoh lainnya, buka folder produk yang diinginkan di Contoh lengkap lainnya.
Referensi
-
Untuk informasi selengkapnya tentang Terraform, lihat Apa itu Alibaba Cloud Terraform?.